创建、克隆、销毁游戏对象
1、创建游戏对象:CreatePrimitive();
GameObject cube=GameObject.CreatePrimitive(PrimitiveType.Cube);//创建一个cube对象
Cube.name=”cube1”;//设定cube对象的名字
Cube.renderer.material.color=Color.red;//设定cube对象的颜色
2、克隆对象:Instantiate();
GameObject obj=GameObject.Instantiate(cube);//克隆一cube对象
3、销毁对象:Destroy();
Destroy(obj,1);//一秒后cube对象消失
把脚本添加到对象上:
一种是把脚本直接拖到对象上;另一种是通过代码:cube.AddComponent(“script”);
销毁对象的脚本:Destroy(cube.GetComponent(“script”));
1、给游戏物体添加名为FoobarScript的脚本
GameObject.AddComponent ("FoobarScript");
2、给游戏物体添加刚体
Rigidbody rb = GameObject.AddComponent ("Rigidbody");
3、给游戏物体添加球体碰撞器
SphereCollider sc = GameObject.AddComponent ("SphereCollider");
GameObject类:
方法:Find()、FindWithTag()、FindGameObjectsWithTag()等
1)通过名称来查找:
GameObject player = new GameObject("Player");
“Player”);
2)通过tag标签获取单个游戏对象:
“Player”);
“Player”);
3)通过游戏标签获取多组游戏对象:
“Player”);
组件引用函数:
GetComponent 得到组件
GetComponents 得到组件列表(用于多个同类型组件的时候)
GetComponentInChildren 得到对象或对象子物体上的组件
如:
ScriptName other=GameObject.GetComponent<ScriptName>();//在对象上添加脚本
print(other.name);//可以通过对象引用脚本中的名字
Time类
属性:deltaTime
如1:
Float a=3.0f;
Void Update(){
A-=Time.delatTime;//倒计时
Print(a);
}
如2:
按下A键,游戏物体向左移动;按下D键,游戏物体向右移动
float move_h=0;
if (Input.GetKey (KeyCode.A)) {
move_h-=Time.deltaTime;
}
if (Input.GetKey (KeyCode.D)) {
move_h+=Time.deltaTime;
}
transform.Translate(new Vector3(move_h,0,move_v));
协同程序(Coroutine)
协同程序,即在主程序运行时同时开启另一段逻辑处理来协同当前程序的执行。换句话说,开启协同程序就是开启一个线程。
Unity3D中,使用MonoBehaviour.StartCoroutine方法即可开启一个协同程序,也就是说该方法必须在MonoBehaviour或继承于MonoBehaviour的类中调用。
Unity3D中,使用StartCoroutine(string methodName)可以开启一个线程。
Yield
语句是一种特殊类型的Return(返回)语句,它可以确保函数在下一次被执行时,不是从头开始,而是从Yield语句处开始。
可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行
如:
void Start () {
print("Start开始");
StartCoroutine("Do");
print("Do调用后");
}
IEnumerator Do(){
print("Do开始");
yield return new WaitForSeconds(3.0f);
暂停3秒后");
}
运行结果为:Start开始--》Do开始---》Do调用后---》暂停3秒后
Random类(随机数)
float a=Random.value;
int b=Random.Range(0,100) 包括最大和最小
float c=Random.Range(0.0f,1.0f); 包括最小但不包括最大
消息传递函数
GameObject.SendMessage:向自身的脚本中发送消息
GameObject.BroadcastMessag:向自身及子类中发送消息
GameObject.SendMessageUpwards:向自身及父类中发送消息
如:
Sphere:
void Start () {
gameObject.SendMessageUpwards ("Do","向父对象发出信息");
}
Cube:
void Do(string message){
print (message);
}
unity部分关节动画 unity3d关节
转载文章标签 unity部分关节动画 unity 学习unity技术unity视频 unity3d 协同程序 文章分类 游戏开发
-
Android平台Unity3D下如何同时播放多路RTMP|RTSP流?
技术背景好多开发者,提到希望在Unity的Android头显终端,播放2路以上RTMP或RTSP流,在设备性能一般的情况下,对Unity下的RTMP|RTSP播放器提出了更高的要求。实际上,我们在前几年发布Unity下直播播放模块的时候,就已经支持了Android多实例播放RTMP|RTSP,随着大家对这块的技术诉求和性能要求越来越高,我们需要持续考虑如何低资源占用的播放多实例流。实现思路目前,我
Unity3D rtmp播放器 Unity3D rtsp播放器 unity rtsp播放器 unity rtmp播放器 大牛直播SDK -
Unity3D下采集camera场景并推送RTMP服务实现毫秒级延迟直播
技术背景好多开发者,希望我们能够分享下如何实现Unity下的camera场景采集并推送rtmp服务,然后低延迟播放出来。简单来说,在Unity 中实现采集 Camera 场景并推送RTMP的话,先是获取 Camera 场景数据,通过创建 RenderTexture 和读取图像数据到 Texture2D。选择选择合适的RTMP推送库或SDK,并设置推流地址和初始化推流。然后说明了推送数据时需要将图像
Unity3D rtmp推送 unity rtmp推流 unity rtmp unity采集camera rtmp 大牛直播SDK