查看: 3005|回复: 2
打印 上一主题 下一主题

[其他] CharacterController 角色控制器

[复制链接]

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-6-24 00:21:43 |只看该作者 |倒序浏览
Inherits from Collider

A CharacterController allows you to easily do movement constrained by collisions without having to deal with a rigidbody.
角色控制器允许你在受制于碰撞的情况下很容易的进行运动,而不用处理刚体。

(个人理解:用CharacterController组件,它包含Rigidbody组件的一些属性,就不用用Rigidbody组件了)。

A CharacterController is not affected by forces and will only move when you call the Move funtion. It will then carry out the movement but be constrained by collisions.

角色控制器不受力的影响,仅仅当你调用Move函数时才运动。然后它将执行运动,但是受制于碰撞。
参考:Character animation examples


摘自网络的Physx参考:


character一般用于主角这类用户控制的物体,它不会受到scene的重力影响,不会被其他物体推。


程序中可以使用它的move方法移动它,当他碰到静态物体时,会停下来,遇到动态物体时会推开他,当然,这些都是可以通过activegroup来控制的。group最多有32组。因为他是一个NxU32,并通过每一位代表一个组。


move的一个参数用来告诉程序,character的当前状态。(collisionFlags)


当他遇到物体的时候,如果设置了回调函数,系统会通过回调函数通知程序。。(NxControllerDesc.callback)


character还有上楼梯模式,在某些高度的台阶,可以直接上去。(NxControllerDesc.stepOffset)


character还可以设置可以走上去的斜坡。(NxControllerDesc.slopeLimit)


由于character不受场景的重力影响,所以,用户要在move函数中自己添加重力因素,也就是说,character可以浮在空中,除非那里有其他activegroup物体。
Variables变量

   
    isGrounded
    Was the CharacterController touching the ground during the last move?

    着地 在最后的移动角色控制器是否触碰地面?
   
   
    velocity
    The current relative velocity of the Character (see notes).

    角色当前的相对速度(参见注解)。
   
   
    collisionFlags
    What part of the capsule collided with the environment during the last CharacterController.Move call.

    在最后的CharacterController.Move调用期间,胶囊体的哪个部分与周围环境相碰撞。
   
   
    radius
    The radius of the character's capsule

    角色胶囊体的半径。
   
   
    height
    The height of the character's capsule

    角色胶囊体的高度。
   
   
    center
    The center of the character's capsule relative to the transform's position.

    相对于变换位置的角色胶囊体的中心
   
   
    slopeLimit
    The character controllers slope limit in degrees

    角色控制器的坡度度数限制。
   
   
    stepOffset
    The character controllers step offset in meters

    以米为单位的角色控制器的台阶偏移量(台阶高度)。
   
   
    detectCollisions
    Should other rigidbodies or character controllers collide with this character controller (By default always enabled)

    其他的刚体和角色控制器是否能够与本角色控制器相碰撞(默认值通常是enabled)
   

Functions函数

   
    SimpleMove
    Moves the character with speed.

    以一定的速度移动角色。
   
   
    Move
    A more complex move function taking absolute movement deltas.

    一个更加复杂的移动函数,每次都绝对移动。
   

Messages Sent发送消息

   
    OnControllerColliderHit
    OnControllerColliderHit is called when the controller hits a collider while performing a Move.

    控制器碰撞器相碰 当控制器碰撞一个正在运动的碰撞器时,OnControllerColliderHit 被调用。
   

Inherited members继承成员
Inherited Variables继承变量

   
    enabled
    Enabled Colliders will collide with other colliders, disabled Colliders won't.

    启用碰撞器将会碰撞其他碰撞器,禁用碰撞器就不会碰撞其他碰撞器。
   
   
    attachedRigidbody
    The rigidbody the collider is attached to.

    碰撞器附加的刚体。
   
   
    isTrigger
    Is the collider a trigger?

    碰撞器是一个触发器? (是否可以穿越)
   
   
    material
    The material used by the collider.

    撞器使用的材质。
   
   
    sharedMaterial
    The shared physic material of this collider.

    碰撞器的共享物理材质。
   
   
    bounds
    The world space bounding volume of the collider.

    碰撞器在世界坐标空间的边界框。
   


   
    transform
    The Transform attached to this GameObject (null if there is none attached).

    Transform附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    rigidbody
    The Rigidbody attached to this GameObject (null if there is none attached).

    Rigidbody附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    camera
    The Camera attached to this GameObject (null if there is none attached).

    Camera附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    light
    The Light attached to this GameObject (null if there is none attached).

    Light附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    animation
    The Animation attached to this GameObject (null if there is none attached).

    Animation附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    constantForce
    The ConstantForce attached to this GameObject (null if there is none attached).

    ConstantForce附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    renderer
    The Renderer attached to this GameObject (null if there is none attached).

    Renderer附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    audio
    The AudioSource attached to this GameObject (null if there is none attached).

    AudioSource附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    guiText
    The GUIText attached to this GameObject (null if there is none attached).

    GUIText附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    networkView
    The NetworkView attached to this GameObject (Read Only). (null if there is none attached)

    NetworkView附加到GameObject(游戏物体)(只读)(如无附加则为空)。
   
   
    guiTexture
    The GUITexture attached to this GameObject (Read Only). (null if there is none attached)

    GUITexture附加到GameObject(游戏物体)(只读)(如无附加则为空)。
   
   
    collider
    The Collider attached to this GameObject (null if there is none attached).

    Collider附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    hingeJoint
    The HingeJoint attached to this GameObject (null if there is none attached).

    HingeJoint附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    particleEmitter
    The ParticleEmitter attached to this GameObject (null if there is none attached).

    ParticleEmitter附加到GameObject(游戏物体)(如无附加则为空)。
   
   
    gameObject
    The game object this component is attached to. A component is always attached to a game object.

    组件附加的游戏物体。一个组件总是被附加到一个游戏物体。
   
   
    tag
    The tag of this game object.

    游戏物体的标签。
   


   
    name
    The name of the object. //物体的名字
   
   
    hideFlags
    Should the object be hidden, saved with the scene or modifiable by the user?

    物体是否被隐藏、保存在场景中或被用户修改?
   

Inherited Functions继承函数

   
    ClosestPointOnBounds
    The closest point to the bounding box of the attached collider.

    到附加碰撞器的边界框最近的点。
   
   
    Raycast
    Casts a Ray that ignores all Colliders except this one.

    投射一个光线(Ray),它忽略所有碰撞器,除了这个。
   


   
    GetComponent
    Returns the component of Type type if the game object has one attached, null if it doesn't.

    如果游戏物体有一个附加,则返回Type类型的组件,如果没有则为null。
   
   
    GetComponent.<T>
     
   
   
    GetComponent
    Returns the component with name type if the game object has one attached, null if it doesn't.

    如果游戏物体有一个附加,则返回名字类型组件,如果没有则为null。
   
   
    GetComponentInChildren
    Returns the component of Type type in the GameObject or any of its children using depth first search.

    返回Type类型组件,在GameObject或它的任何子物体使用深度优先搜索,仅返回激活的组件。
   
   
    GetComponentInChildren.<T>
     
   
   
    GetComponentsInChildren
    Returns all components of Type type in the GameObject or any of its children.

    在GameObject或任何它的子物体,返回全部Type类型组件
   
   
    GetComponentsInChildren.<T>
     
   
   
    GetComponents
    Returns all components of Type type in the GameObject.

    在游戏物体返回全部Type类型组件。
   
   
    GetComponents.<T>
     
   
   
    CompareTag
    Is this game object tagged tag?

    游戏物体有被标记标签么?
   
   
    SendMessageUpwards
    Calls the method named methodName on every MonoBehaviour in this game object and on every ancestor of the behaviour

    在游戏物体每一个MonoBehaviour和每一个behaviour的祖先上调用名为methodName的方法。
   
   
    SendMessage
    Calls the method named methodName on every MonoBehaviour in this game object.

    在游戏物体每一个MonoBehaviour上调用名为methodName的方法。
   
   
    BroadcastMessage
    Calls the method named methodName on every MonoBehaviour in this game object or any of its children.

    在游戏物体每一个MonoBehaviour和它的全部子物体上调用名为methodName的方法。
   


   
    GetInstanceID
    Returns the instance id of the object.

    返回物体的实例ID
   
   
    ToString
    Returns the name of the game object.

    返回游戏物体的名称。
   

Messages Sent发送消息

   
    OnTriggerEnter
    OnTriggerEnter is called when the Collider other enters the trigger.

    当碰撞器other进入触发器时OnTriggerEnter被调用。
   
   
    OnTriggerExit
    OnTriggerExit is called when the Collider other has stopped touching the trigger.

    当碰撞器other停止触动触发器时,OnTriggerExit被调用。
   
   
    OnTriggerStay
    OnTriggerStay is called almost all the frames for every Collider other that is touching the trigger.

    每个碰撞器other触动触发器,几乎在所有的帧OnTriggerStay被调用。
   
   
    OnCollisionEnter
    OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider.

    当collider/rigidbody开始触动另一个rigidbody/collider时OnCollisionEnter被调用。
   
   
    OnCollisionExit
    OnCollisionExit is called when this collider/rigidbody has stopped touching another rigidbody/collider.

    当 collider/rigidbody停止触动另一个 rigidbody/collider时,OnCollisionExit被调用。
   
   
    OnCollisionStay
    OnCollisionStay is called once per frame for every collider/rigidbody that is touching rigidbody/collider.

    每个collider/rigidbody触动rigidbody/collider,将在每帧调用OnCollisionStay。通俗的说,
   

Inherited Class Functions继承类函数

   
    operator bool
    Does the object exist?

    物体是否存在?
   
   
    Instantiate
    Clones the object original and returns the clone.

    克隆原始物体,并返回克隆的物体
   
   
    Instantiate.<T>
     
   
   
    Destroy
    Removes a gameobject, component or asset.

    删除一个游戏物体、组件或资源
   
   
    DestroyImmediate
    Destroys the object obj immediately. It is strongly recommended to use Destroy instead.

    立即销毁物体obj,强烈建议使用Destroy代替。
   
   
    FindObjectsOfType
    Returns a list of all active loaded objects of Type type.

    返回Type类型的所有激活的加载的物体列表
   
   
    FindObjectOfType
    Returns the first active loaded object of Type type.

    返回Type类型第一个激活的加载的物体。
   
   
    operator ==
    Compares if two objects refer to the same

    比较如果两个物体相同
   
   
    operator !=
    Compares if two objects refer to a different object

    比较如果两个物体不同
   
   
    DontDestroyOnLoad
    Makes the object target not be destroyed automatically when loading a new scene.

    加载新场景的时候使目标物体不被自动销毁。
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-6-24 01:35:02 |只看该作者
Thank you for sharing!
回复

使用道具 举报

wucnj    

1

主题

1

听众

3160

积分

中级设计师

Rank: 5Rank: 5

纳金币
1065
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-6-25 09:16:37 |只看该作者
感谢分享!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-24 13:45 , Processed in 0.373853 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部