来源https://www.cnblogs.com/Dearmyh/p/9540511.html,做笔记用,侵删
Character一般用于主角这类用户控制的物体,它不会受到scene的重力影响,不会被其他物体推。
程序中可以使用它的move方法移动它,当他碰到静态物体时,会停下来,遇到动态物体时会推开他,当然,哲学都是可以通过activegroup老控制的,group至多有32组。
character还有上楼梯模式,在某些高度的台阶,可以直接上去(stepOffest)
character还可以设置可以走上去的斜坡(slopeLimit)
由于character不受到场景的重力影响,所以,用户要在move函数中自己添加重力因素,也就是说,character可以悬浮在空中,除非那里有其他的activegroup物体;
角色控制器中的变量:
isGrounded:着地,在最后的移动角色控制器是否接触地面;
velocity:角色当前的相对速度;
cllisionFlags:在最后的characterController.Move调用期间,胶囊提的哪个部分和周围环境相碰撞。
radius:角色胶囊体 的半径,
height:角色胶囊体的高度。
center:相对于变换位置的角色胶囊体的中心。
slopLimit:角色控制器的坡度洗漱限制,
stepOffest:以米为单位的角色控制器的台阶偏移量(台阶高度)
detectCollisions:其他刚体和角色控制器能否能够与本角色控制器相互碰撞。默认值筒仓为enabled;
函数:
SimpleMove:
function SimpleMove (speed : Vector3) : bool
以一定速度移动角色;
Move:
function Move (motion : Vector3) : CollisionFlags,
一个更加复杂的移动函数,每次都绝对移动。
尝试着通过动力移动控制器,动力只受限制于碰撞。它将沿着碰撞器滑动。CollisionFlags 是发生于Move的碰撞的概要。这个函数不应用任何重力。
发送消息:
OnControllerColliderHit:控制器碰撞器相碰,当控制器碰撞一个正在移动的碰撞器时,此函数被调用;
attachedRigidbody
碰撞器附加的刚体。
isTrigger
碰撞器是一个触发器? (是否可以穿越)
material
撞器使用的材质。
sharedMaterial
碰撞器的共享物理材质。
bounds
碰撞器在世界坐标空间的包围盒。
transform
Transform附加到GameObject(游戏物体)(如无附加则为空)。
rigidbody
Rigidbody附加到GameObject(游戏物体)(如无附加则为空)。
camera
Camera附加到GameObject(游戏物体)(如无附加则为空)。
light
Light附加到GameObject(游戏物体)(如无附加则为空)。
animation
Animation附加到GameObject(游戏物体)(如无附加则为空)。
constantForce
ConstantForce附加到GameObject(游戏物体)(如无附加则为空)。
renderer
Renderer附加到GameObject(游戏物体)(如无附加则为空)。
audio
AudioSource附加到GameObject(游戏物体)(如无附加则为空)。
guiText
GUIText附加到GameObject(游戏物体)(如无附加则为空)。
networkView
NetworkView附加到GameObject(游戏物体)(只读)(如无附加则为空)。
guiTexture
GUITexture附加到GameObject(游戏物体)(只读)(如无附加则为空)。
collider
Collider附加到GameObject(游戏物体)(如无附加则为空)。
hingeJoint
HingeJoint附加到GameObject(游戏物体)(如无附加则为空)。
particleEmitter
ParticleEmitter附加到GameObject(游戏物体)(如无附加则为空)。
gameObject
组件附加的游戏物体。一个组件总是被附加到一个游戏物体。
tag
游戏物体的标签。
name
The name of the object. //物体的名字
hideFlags
物体是否被隐藏、保存在场景中或被用户修改?
ClosestPointOnBounds
到附加碰撞器的包围盒最近的点。
Raycast
投射一个光线(Ray),它忽略所有碰撞器,除了这个。
GetComponent
如果游戏物体有一个附加,则返回Type类型的组件,如果没有则为null。
GetComponent.<T>
GetComponent
如果游戏物体有一个附加,则返回名字类型组件,如果没有则为null。
GetComponentInChildren
返回Type类型组件,在GameObject或它的任何子物体使用深度优先搜索,仅返回激活的组件。
GetComponentInChildren.<T>
GetComponentsInChildren
在GameObject或任何它的子物体,返回全部Type类型组件
GetComponentsInChildren.<T>
GetComponents
在游戏物体返回全部Type类型组件。
GetComponents.<T>
CompareTag
Is this game object tagged tag?
游戏物体有被标记标签么?
SendMessageUpwards
在游戏物体每一个MonoBehaviour和每一个behaviour的祖先上调用名为methodName的方法。
SendMessage
在游戏物体每一个MonoBehaviour上调用名为methodName的方法。
BroadcastMessage
在游戏物体每一个MonoBehaviour和它的全部子物体上调用名为methodName的方法。
GetInstanceID
返回物体的实例ID
ToString
返回游戏物体的名称。
OnTriggerEnter
这个消息是发送给触动触发器的碰撞器和刚体(或如果没有刚体的碰撞器)。注意假如一个碰撞物体同时带有一个刚体属性
那么只发送这个触发事件。
当碰撞器other进入触发器时OnTriggerEnter被调用。
OnTriggerExit
这个消息是发送给触动触发器的碰撞器和刚体(或如果没有刚体的碰撞器)。注意假如一个碰撞物体同时带有一个刚体属性
那么只发送这个触发事件。
当碰撞器other停止触动触发器时,OnTriggerExit被调用。
OnTriggerStay
这个消息是发送给触动触发器的碰撞器和刚体(或如果没有刚体的碰撞器)。注意假如一个碰撞物体同时带有一个刚体属性
那么只发送这个触发事件。
注意:OnTriggerStay函数是基于物理计时器,因此它未必每帧都运行。
也就是说OnTriggerStay是在每一个Time.fixedDeltaTime的时间节点上运行,不是Time.deltaTime的时间节点上运行
每个碰撞器other触动触发器,几乎在所有的帧OnTriggerStay被调用。
OnCollisionEnter
相比OnTriggerEnter,OnCollisionEnter传递Collision类而不是Collider。Collision类包含接触点,碰撞速度等信息。在这个函数如果你不使用collisionInfo,删去collisionInfo参数以避免不必要的计算。注意,如果碰撞器附加一个非动力学刚体,也仅发送碰撞事件。
当collider/rigidbody开始触动另一个rigidbody/collider时OnCollisionEnter被调用。
OnCollisionExit
相比OnTriggerExit,OnCollisionExit传递Collision类而不是Collider。Collision类包含接触点,碰撞速度等信息。在这个函数如果你不使用collisionInfo,删去collisionInfo参数以避免不必要的计算。注意,如果碰撞器附加一个非动力学刚体,也仅发送碰撞事件。
当 collider/rigidbody停止触动另一个 rigidbody/collider时,OnCollisionExit被调用。
OnCollisionStay
相比OnTriggerStay,OnCollisionStay传递Collision类而不是Collider。Collision类包含接触点,碰撞速度等信息。在这个函数如果你不使用collisionInfo,删去collisionInfo参数以避免不必要的计算。注意,如果碰撞器附加一个非动力学刚体,也仅发送碰撞事件。
每个collider/rigidbody触动rigidbody/collider,将在每帧调用OnCollisionStay。通俗的说,
Inherited Class Functions继承类函数
operator bool
物体是否存在?
Instantiate
克隆原始物体,并返回克隆的物体
Instantiate.<T>
Destroy
Removes a gameobject, component or asset.
删除一个游戏物体、组件或资源
DestroyImmediate
立即销毁物体obj,强烈建议使用Destroy代替。
FindObjectsOfType
返回Type类型的所有激活的加载的物体列表
FindObjectOfType
返回Type类型第一个激活的加载的物体。
operator ==
比较如果两个物体相同
operator !=
比较如果两个物体不同
DontDestroyOnLoad
加载新场景的时候使目标物体不被自动销毁。