Unity组件开发:
Unity⼯程结构:
- Assets 存储⼯程所需的所有资源⽂件
- Library ⼯程所需要的所有资源库(类库)(⾃动⽣成的)
- ProjectSetting ⼯程设置⽂件
- Temp 临时⽂件
Unity开发框架:
项⽬->场景->游戏对象->组件->属性
面向组件开发思想
Transform组件:
特点:只要是游戏对象,必须
-
有这个组件,有且只有⼀个功能
- 控制游戏对象的变换
- 包含⽗⼦关系的内容
-
关于坐标:
- 世界坐标 以场景的原点为原点
- 本地坐标(相对于⽗物体的坐标) 以⽗物体的位置为原点
-
关于旋转:
- 世界旋转
- 本地旋转(相对于⽗物体的旋转)
在Transfrom⾯板上
- 显示的是相于父物体的变幻
- 子物体世界坐标=子物体本地坐标+父物体的世界坐标
- 子物体世界旋转=子物体本地旋转+父物体的世界旋转
- 子物体世界缩放=子物体本地缩放*父物体的世界缩放
脚本:
- Unity脚本支持
- C# ⽀持创建
- JS 2017之后不⽀持创建
- 给游戏对象添加脚本
- 组件的最快捷⽅式
- 选中要添加脚本组件的游戏对象
- 点击AddComponent按钮
- 直接在搜索框⾥输⼊要添加的脚本名称
- 直接按两下回⻋即可
- 唯⼀的缺点:脚本⽂件是在Assets⾥的,需要后期挪到Scripts⽂件夹⾥
- 组件的最快捷⽅式
- Unity脚本组件
- 可以将该脚本挂载到游戏对象身上
- 作为该对象的⼀个脚本组件
- 前提条件1:必须直接或间接继承MonoBehaviour
- 前提条件2:⼀个脚本⽂件中必须有⼀个类和⽂件名⼀致
- 前提条件3[规范]:创建的脚本不要和系统或Unity的类同名
- Unity脚本(非组件)
- 可以不继承MonoBehavior
- 也可以类名可以不和脚本名⼀致
Unity脚本
Unity脚本类:
Runtime
在程序运⾏的时候执行的Editor
在程序未运⾏的时候执行-
Unity插件
在Unity当中如何查看API Manual⼿册 面板内容
API 脚本内容
Monobehaviour类 脚本组件⼀定要继承此类-
Unity脚本⽣命周期
- 回调函数执⾏的前提 脚本必须以组件的⽅式挂载到⼀个游戏对象身上
9个回调:
- 游戏开始时调⽤⼀次:
- Awake()
描述:游戏开始后第⼀个调用的回调函数,调用⼀次
特点:当脚本组件处于不可⽤时,依然执⾏。 - OnEnable()
描述:每当脚本组件被设置为可⽤时调⽤⼀次 - Start()
描述:在OnEnable之后调⽤,但在整个游戏过程中,只会执⾏⼀次
- Awake()
- 持续调⽤
- FixedUpdate()
每隔⼀定的时间间隔调⽤⼀次,默认时间间隔0.02s - Update() 每帧调⽤⼀次
- LateUpdate() 每帧调⽤⼀次
- OnGUI() 每帧调⽤两次
- FixedUpdate()
- 收尾
- OnDisable() 每当脚本组件被设置为不可⽤时调⽤⼀次
- OnDestroy() 当脚本组件被销毁,或整个游戏对象销毁时调⽤⼀次
常⽤调试方法:
- 打印
Debug.Log() 引⽤UnityEngine
print Monobehaviour的⽅法 - 划线
DrawLine(Vector3 start, Vector3 end)
DrawRay(Vector3 start, Vector3 dir)
Monobehaviour继承关系
脚本—>Monobehaviour—>Behaviour—>Component—>Object