就像我们定义的方法名一样。在哪里调用。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轴方向。