就像我们定义的方法名一样。在哪里调用。Unity  MonoBehaviour  脚本文件默认集成的类名,他做了一些设置能识别某些方法。就像tostring()一样。 MonoBehaviour 里面也有一些他能识别的方法名。

UNITY 中系统由自身调用几个比较重要的方法

Update()  正常更新,用于更新逻辑。此方法每帧都会系统调用一次。

LATEUPDTE()  推迟更新,此方法在Update()方法执行完毕后调用,同样每一帧都调用。

Awake()  脚本唤醒 ,此方法为系统执行的第一个方法。用于脚本的初始化,在脚本的生命周期中只执行一次。

FIXEDUpdate()  固定更新  在UNITY导航菜单栏中点击 EDIT→ProjectSetting→Time 菜单项后,右侧的属性面版 其中FIXED Timestep更新频率为0.02s。

Start()  方法 在AWAKE()后面在UPDATE()前面执行。只执行一次

ONDESTROY() 当前脚本销毁时的调用。

 

ONGUI() 绘制界面。同样每帧都在调用。

 

void Awake()
    {
        print("Awake" + Time.time);
    }
 // Use this for initialization
 void Start () {
        print("Start" + Time.time);
 }
 
 // Update is called once per frame
 void Update () {
        print("update" + Time.time);
 }
 
    void LateUpdate()
    {
        print("LateUpdate"+Time.time);
    }
 
    void FixedUpdate()
    {
        print("FixedUpdate" + Time.time);
    
    }
 
    void OnDestroy()
    {
        print("OnDestroy" + Time.time);
    }
 
    void OnGUI()
    {
        print("OnGUI" + Time.time);
    }

 

创建游戏对象

 

创建Cube 的代码

 

//GameObject.CreatePrimitive() 创建基本对象的代码 参数枚举  基本对象
        CubeObj =GameObject.CreatePrimitive(PrimitiveType.Cube);
       //给此对象 添加刚体,用于物理感应。
        CubeObj.AddComponent<Rigidbody>();
        //设置这个游戏对象的名称
        CubeObj.name = "CubeXX";
        //设置此模型的材质的颜色 游戏中设置头发的颜色,就可以用下面的代码实现
        CubeObj.renderer.material.color =Color.yellow;
        //设置模型的位置。
        CubeObj.transform.position = new Vector3(1f, 1f, 1f);

 

1GameObject.CreatePrimitive()  创建游戏初始对象,参数可为立方体,球体,圆柱体。

2. ADDCOMPENT<类型>() 用于给该对象 添加组件

3renderer.material.color   可设置对象材质球的颜色。

4. transform.position  设置对象的位置。

 

 

克隆一个对象

 

INSTANTIATE() 需要三个参数   第一个 为克隆的对象,第二个参数为位置,第三个参数位置为角度。


 

销毁对象以及 销毁对象多少时间后

 

DESTROY (对象)   立即销毁对象

 

DESTROY(对象,多少时间销毁)

 

Object AttackClone = Instantiate(AttackObj, new Vector3(1, 1, Random.Range(1, 5)), transform.rotation);
        Destroy(AttackClone, Time.deltaTime);

获取对象的基本三种方式(其他的还有很多)

 

GameObject.Find();  通过对象名查找对象,可以有父级 CUBE/CUBE1  /这里就是指子级。

 

 GameObject.FindWithTag(); 通过标签 查找单个对象多个的话就取第一个创建的对象

 

GameObject.FindGameObjectsWithTag() 通过标签获取多个对象 。比如某个区域怪物的数量。

 

 

// Destroy(GameObject.Find("Cube/Capsule"), 2f);
 
        Destroy(GameObject.FindWithTag("MyTag"));
 
       ObjList= GameObject.FindGameObjectsWithTag("MyTag");
       foreach (GameObject item in ObjList)
       {
           item.name = Random.Range(1f, 5f).ToString();
       }

 

父类子类,对象体之间的方法调用

 

•gameObject.SendMessageUpwards(“DesObject”, “销毁”),像父类或自身发送方法和信息参数。只要父类或者自身有方法都会调用。问题来了,有多个父类呢也会调用

 

•gameObject.BroadcastMessage(“DesObject”, “销毁”);向子类或者自身发送方法消息参数。多个子类也一样。


 

 

•gameObject.SendMessage (“DesObject”, “销毁”);像自身发送消息。

 

 

用程序设置位置角度,以及长度


 

SphereObj.transform.position = new Vector3(-3, 2, -3);
        SphereObj.transform.localEulerAngles = new Vector3(5f, 6f, 7f);
        SphereObj.transform.localScale = new Vector3(5f, 6f, 7f);

 

•gameObject.transform.Rotate()   设置对象方向,和速度。

•gameObject.transform.RotateAround() 三个参数,围绕对象的位置,旋转方向 ,速度。

 

gameObject.transform.Rotate(Vector3.right, Time.deltaTime * 5);
   gameObject.transform.RotateAround(CubeT.position, Vector3.up, 1f);

三维坐标方向

•Vector3.right: x轴方向

•Vector3.up  Y轴方向

•Vector3.foward Z轴方向。