Unity3D【常用核心类】

创建、克隆、销毁游戏对象


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");

   GameObject  go=GameObject.Find(Player);


2)通过tag标签获取单个游戏对象:


   GameObject  go=GameObject.FindWithTag(Player);

   GameObject go=GameObject..FindGameObjectWithTag (Player);


3)通过游戏标签获取多组游戏对象:


   GameObject[]  go=GameObject.FindGameObjectsWithTag (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 


     Yield语句是一种特殊类型的Return(返回)语句,它可以确保函数在下一次被执行时,不是从头开始,而是从Yield语句处开始。

     可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行

如:

void Start () {

print("Start开始");

StartCoroutine("Do");

print("Do调用后");

}


IEnumerator Do(){

print("Do开始");

yield return  new WaitForSeconds(3.0f);

 print("暂停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);

}

更多精彩请点击 http://www.gopedu.com/

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值