Unity3D

来源:互联网 发布:windows桌面插件api 编辑:程序博客网 时间:2024/06/07 06:55

Unity中所有使用C#编写的脚本都应该继承自MonoBehaviour

MoonBehaviour常见的必然事件(在特定条件下被调用):

名称 触发条件 用途 Awake 脚本实例被创建时调用 用于游戏对象的初始化,注意Awake的执行早于所有脚本的Start函数 Start Update函数第一次运行前调用 用于游戏对象的初始化 Update 每帧调用一次 用于更新游戏场景和状态(和物理状态有关的更新应该放在FixedUpdate中) FixedUpdate 每个固定物理时间间隔(Physics Time Step)调用一次 用于物理状态更新 LateUpdate 每帧调用一次(在Update调用之后) 用于更新游戏场景和状态,和相机有关的操作一般放这里

MoonBehaviour特定事件的响应函数(模型碰撞、鼠标移动)

事件响应函数 说明 OnMouseEnter 鼠标移入GUI或者碰撞物体时调用 OnMouseOver 鼠标停留在GUI控件或碰撞物体时调用 OnMouseExit 鼠标退出GUI控件或碰撞物体时调用 OnMouseDown 鼠标在GUI控件或物体上按下时调用 OnMouseUp 鼠标按键释放时调用 OnTriggerEnter 当其他碰撞体进入触发器时调用 OnTriggerExit 当其他碰撞体离开触发器时调用 OnTriggerStay 当其他物体停留在触发器时调用 OnCollisionEnter 当碰撞体或者刚体与其他碰撞体或者刚体接触时调用 OnCollisionExit 当碰撞体或刚体与其他碰撞体或刚体停止接触时调用 OnCollisionStay 当碰撞体或刚体与其他碰撞体或刚体保持接触时调用 OnControllerColliderHit 当控制器移动时与碰撞体发生碰撞时调用 OnBecameVisible 对于任意一个相机可见时调用 OnBecameInvisble 对于任意一个相机不可见时调用 OnEnable 对象启用或者激活时调用 OnDisable 对象禁用或者取消激活时调用 OnDestroy 脚本销毁时调用 OnGUI 渲染GUI和处理GUI消息时调用

MoonBehaviour 常用组件及变量

变量列表:

组件名称 变量名 组件作用 Transform transform 设置游戏对象的位置、旋转、缩放 Rigidbody rigidbody 设置物理引擎的刚体属性 Renderer renderer 渲染物体模型 Light light 设置灯光属性 Camera camera 设置相机属性 Collider collider 设置碰撞体属性 Animation animation 设置动画属性 Audio audio 设置声音属性

函数列表

函数名 作用 GetComponent 得到组件 GetComponents 得到组件列表 GetComponentInChildren 得到对象或者对象子物体上的组件 GetComponentsInChindren 得到对象或者对象子物体上的组件列表

需要注意的是,调用GetComponent()函数比较耗时,因此应该尽量避免在Update中调用这些组件获取的函数,而是应该在初始化是把组件的引用保存在变量中。

GameObject访问游戏对象

可以用如下几种方式来访问游戏对象:

通过名称查找GameObject.Find() 如果场景中存在指定名称的游戏对象,那么返回该对象的引用,否则返回空值null。

GameObject player;void Start() {    player = GameObject.Find("MainHero");}

通过标签来查找GameObject.FindWithTag,如果场景中存在指定标签的游戏对象,那么返回该对象的引用否则返回空值null,如果有多个返回第一个。还可以使用GameObject.FindGameObjectsWithTagg()来获取游戏对象数组。

GameObject player;GameObject[] enemies;void Start() {  player = GameObject.FindWithTag("player");  enemies = GameObject.FindGameObjectsWithTag("enemy");}

请注意:以上几个方法都比较耗时,应该避免在Update中调用这些获取Compoent的函数,而是应该在初始化时把组件的引用保存在变量中。