Unity3D脚本基础
Unity3D中的引用类型
UnityEngine.Object类
在Unity3D的脚本系统中,Unity使用命名空间UnityEngine来盛放Unity3D定义的类型;
其中UnityEngine.Object类是最基本的类,是在Unity3D中所有对象的基类; 所有派生自UnityEngine.Object类的公共变量都会被显示在监视面板中,Unity程序员可通过编辑器来修改这些变量的数值。UnityEngine.Object类提供的类成员:
字段:
- hideFlags: 标识该游戏对象是否被隐藏
- name
公共方法:
- GetInstanceID
- ToString: 返回该游戏对象的名称
静态方法:
- Destory
- DestoryImmediate
- DontDestoryOnLoad
- FindObjectOfType
- FindObjectsOfType
- Instance
UnityEngine.Component类
除了基本的UnityEngine.Object类之外,另一个很重要的UnityEngine.Component类派生自UnityEngine.Object类,它是所有能添加到游戏对象GameObject上组件Component的基类。
UnityEngine.Component类提供的类成员:
字段:
- gameObejct: 该组件所在的游戏对象
- tag: 该组件所在游戏对象的标签
- transform: 该组件所在游戏对象上的Transform组件
公共方法:
- BroadcastMessage
- CompareTag: 返回该对象是否被标签标记
- GetComponent
- GetComponentInChildren
- GetComponentInParent
- GetComponents
- GetComponentsInChildren
- GetComponentsInParent
- SendMessage
- SendMessageUpwards
UnityEngine.Behaviour类
UnityEngine.Behaviour类继承自UnityEngine.Component类,
是一个可以启用或者禁用的组件UnityEngine.Behaviour类提供的类成员:
变量:
- enable: 启用状态下,会执行每帧的更新,禁用状态不会被执行
- isActiveAndEnable: 表示当前Behaviour是否被启用
UnityEngine.MonoBehaviour类
UnityEngine.MonoBehaviour继承自UnityEngine.Behaviour类;在Unity3D游戏引擎中,UnityEngine.MonoBehaviour类是所有Unity3D脚本的基类。
UnityEngine.MonoBehaviour类提供的类成员:
消息:
- Awake
- FixedUpdate
- Update
- LateUpdate
- OnBecameInvisible
- OnBecameVisible
- OnCollisionEnter
- OnCollsionExit
- OnCollisionStay
- OnDestory
- OnDisable
- OnEnable
- OnGUI
- OnLevelWasLoaded
- OnMouseDown
- OnMouseDrag
- OnMouseEnter
- OnMouseExit
- OnMouseOver
- OnMouseUp
- OnMouseUpAsButton
- OnTriggerEnter
- OnTriggerExit
- OnTriggerStay
- OnValidate
- Start
- Reset
公共方法:
- CancelInvoke
- Invoke
- InvokeRepeating
- IsInvoking
- StartCoroutine
- StopAllCoroutine
- StopCoroutine
Unity3D脚本编程时需要注意,在C#中使用new操作符来实例化引用类型,但是在Unity3D中编写脚本时,凡是继承自MonoBehaviour类的类型包括MonoBehaviour本身都无法使用new关键字来进行实例化;
在Unity3D中我们可以通过将脚本以组件的形式挂载在游戏对象上来实现创建类型对象的目的。 当然,不需要继承自MonoBehaviour类的类型,是可以通过new操作符实例化的。Unity3D中的值类型
向量结构
Vector2、Vector3、Vector4这三个结构体分别用来表示二维、三维、四维向量。
向量结构的实例成员:
- magnitude
- normalized
- sqrMagnitude
- x
- y
- z
- w
向量结构的方法:
- Cross
- Dot
- Distance
- Lerp
向量计算
向量之间的点乘:
向量a(x1,y1,z1) 向量b(x2,y2,z2) 公式一:a·b = x1x2 + y1y2 + z1z2
公式二:
a·b = |a||b|cos<a,b>
a·b的几何意义:向量b在向量a所处单位向量方向上的投影长度乘以向量a的模。
向量之间的叉乘:
公式一:
ab = (x1,y1,z1)(x2,y2,z2)
=(y1z2-z1y2,z1x2-x1z2,x1y2-y1x2)公式二:
|a*b| = |a||b|sin<a,b>
其他值类型
- Color
- Color32
- Ray
- Touch
- RaycastHit
- Bounds
- Rect
Plane
REF
Unity3D脚本编程