如果我们的脚本需要挂载到游戏对象上,就需要继承于MonoBehaviour
gameObject表示当前脚本组件所挂载的游戏对象
unity中输出到控制台使用print或者Debug.log
每个游戏对象身上都至少有一个组件,叫做Transform
transform表示当前游戏对象身上的Transform组件
继承于MonoBehaviour的类叫做运行时类,运行时类不能手动实例化
using UnityEngine;
using System.Collections;
// 继承于 MonoBehaviour 的类叫做运行时类
// 运行时类都不能手动实例化
public class Test : MonoBehaviour {
// 这些方法都不是 MonoBehaviour 中定义的方法,而是通过反射调用的一些事件
// 这些方法定义了一个脚本从被加载到被销毁的过程中,脚本的生命周期
void Awake() {
Debug.Log("Awake");
// 每当脚本被加载时调用一次
// 在 Awake 中做一些初始化的操作
// 通常在 Awake 中放初始化 public 成员
}
void OnEnable() {
Debug.Log("OnEnable");
// 在每次激活脚本时调用
}
void Start () {
Debug.Log("Start");
// 在第一次调用 Update 之前调用一次 Start
// Start 只会执行一次
// 在Start 中做一些初始化操作
// 在 Start 中放初始化 private 成员
}
void Update () {
Debug.Log("Update");
// 每帧调用一次 Update
}
void LateUpdate() {
Debug.Log("LateUpdate");
// 在Update 方法调用完之后调用,与Update 的调用次数一致
}
void OnDisable() {
Debug.Log("OnDisable");
// 取消激活状态后调用;与OnEnable是对应的
}
void OnDestroy() {
Debug.Log("OnDestroy");
// 脚本被销毁时调用一次
}
void OnGUI() {
Debug.Log("OnGUI");
// 脚本在激活状态下会持续调用
// IMGUI、NGUI、UGUI 代码需要写在 OnGUI 方法中
}
void FixedUpdate() {
Debug.Log("FixedUpdate");
// 以固定的频率调用,不会受到图像刷新帧速率的影响
// 一般我们会把处理物理的代码放在这里
}
}
//public class A {
// public void T() {
// Test t = new Test(); // 这里这样写是错误的,Test是一个运行时类,不能够使用new手动创建对象
// }
//}