Character Controller人物控制

来源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:控制器碰撞器相碰,当控制器碰撞一个正在移动的碰撞器时,此函数被调用;


Inherited members继承成员

Inherited Variables继承变量

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

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

Inherited Functions继承函数

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

返回游戏物体的名称。

Messages Sent发送消息

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

加载新场景的时候使目标物体不被自动销毁。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  •   Rigidbody 2D组件将对象置于物理引擎的控制之下。许多熟悉的概念从标准刚体组件(standard Ri...
    夜行水寒阅读 1,813评论 0 1
  • 1.Rigidbody overview 刚体是可以让一个GameObject(以下简称游戏对象)表现出物理行为的...
    HelloWorld_de97阅读 467评论 0 0
  • ContinuousDynamic---只对Discrete的刚体使用Discrete检测,对其他任何刚体或者静态...
    kuxingseng686阅读 652评论 0 1
  • 1.Transform 位置:世界坐标,当地坐标,通过属性和方法操作;使用属性的时候默认是世界坐标 调整位置: 通...
    Joe_Game阅读 850评论 0 0
  • 文/冷月秋风 走在天安门广场上,满地是来自全世界走向北京的脚步声,喧嚣而生动,太阳光辉下,红旗冉冉。 ...
    冷月秋风qin阅读 149评论 0 1