文章适合新手学习
自学Unity有段两三个月了,边学边做了几个小游戏,但还是不适应,没有上手的感觉,我觉得是未系统地总结起知识框架的原因,所以准备在这篇博客中对 Unity 的 C# 入门编程部分知识点做一个简单的梳理,列举一些基础的运用,也可以方便后来者。
以我的经验,就编程这块来说,学习Unity没必要报什么课买什么书,具体应用查官网API就行。
.
.
C#入门编程知识点总结
.
Unity常用API和函数方法
.
1.MonoBehaviour类
脚本组件必须继承的类
Awake
Awake 在加载场景初始化包含脚本的活动 GameObject 时,或者在将先前非活动的 GameObject 设置为活动时,或者在初始化使用 Instantiate 创建包含脚本的 GameObject 之后调用。因为Awake在先初始化所有GameObject之后,所以可以在Awake中查询其他 GameObject。
Start
在首次调用任何 Update 方法之前启用脚本时,在帧上调用 Start。调用 Awake 在调用 Start 函数之前,所以如果对象 A 的初始化代码需要依赖于已经初始化的对象 B,此时,B 的初始化应在 Awake 中完成,A 则应在 Start 中完成。
Update
每帧调用 Update,这里强调帧的概念:帧是电脑屏幕上不断刷新的图片,每一帧的时间间隔不一定相等。在Update函数中可以使用Time.DeltaTime
得到上一帧持续的时间。
FixedUpdate
每个固定帧率帧调用 FixedUpdate 函数,调用之间的默认时间为 0.02 秒,适用于物理系统的计算。
.
.
2.Transform组件
对象的位置、旋转和缩放
position,localposition
世界空间中的变换位置;
相对于父变换的变换位置。
eulerAngles
以欧拉角表示的旋转(以度为单位)[ 注:一般不使用rotation与localRotation,因为两者以四元数Quaternion表达 ]
localScale
相对于 GameObjects 父对象的变换缩放。
.
.
3.GameObject操作
对游戏实体的禁用/激活,查找组件,对组件的禁用/激活,查看游戏实体的禁用/激活状态,查找、克隆游戏实体
enabled
启用、禁用组件,例:Component.enabled = true;
SetActive
激活、禁用游戏对象,例:gameObject.SetActive(false);
activeSelf,activeInHierarchy
查看 GameObject 是否激活,例:Debug.Log("Active Self: " + myObject.activeSelf);
;
查看 GameObject 在 Scene 中是否处于活动状态。
Find,FindWithTag
按 name 查找 GameObject;返回它找到的具有指定标签的第一个 GameObject。
GetComponent
获取游戏对象指定类型的组件;
GetComponents就是获取指定类型的所有组件
Instantiate
克隆 original 对象并返回克隆对象。
Destroy
销毁游戏对象或组件,可以加延迟秒数参数。
.
.
4. Input输入
访问输入系统的接口
GetMouseButton,GetMouseButtonDown,GetMouseButtonUp
是否按下了给定的鼠标按钮(瞬时);
在用户按下给定鼠标按钮的帧期间返回 true;
在用户释放给定鼠标按钮的帧期间返回 true。
GetKey,GetKeyDown,GetKeyUp
在用户按下 name 标识的键时返回 true,传入参数"KeyCode.X",读取键盘输入;
…
GetButton,GetButtonDown,GetButtonUp
当按住 buttonName 标识的虚拟按钮时返回 true;
…
GetAxis
返回由 axisName 标识的虚拟轴的值,返回值处于 -1…1 的范围内,在Edit->Project Setting->Input Manager设置
.
.
5. Rigidbody刚体 Collider碰撞体
Uniity物理组件
velocity
刚体的速度矢量,矢量格式,使用刚体的velocity属性直接修改速度。
AddForce
向刚体添加力,参数是力矢量和力类型。
AddTorque
向刚体添加扭矩,参数是扭矩矢量和扭矩类型。
OnCollisionEnter、OnCollisionExit
当该碰撞体/刚体已开始接触/停止接触另一个刚体/碰撞体时,调用 OnCollisionEnter/OnCollisionExit 。
.
.
6. UI界面
常用UI组件,Image,Text
Image图片来源更换
Resources.Load:
Sprite sprite = Resources.Load(path,typeof(Sprite)) as Sprite;
Img.sprite = sprite;
Text文字改变
直接修改Text组件的text属性。
button绑定监听
btnTemp.onClick.AddListener(delegate() {/*点击事件*/});
.
.