控制人物在奥维地图 叠加地形图中移动是不是一定要加Character Controller

如何让物体的character controller跟随物体移动?【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:79,122贴子:
如何让物体的character controller跟随物体移动?收藏
我在用unity自带的寻路系统时,给游戏角色添加了一个NavMeshAgent组件,然后又给它添加了一个character controller组件,然后寻路的时候,前面有一个正方体带boxcollider组件,这个正方体挡住了角色的路径,可是为什么角色会穿过去,请问如何让角色的character controller跟随物体一起移动,我知道是要用Move(),但是具体是什么思路!有知道的麻烦回复!谢谢!
VRStar unity3d,名师一对一辅导,带你触碰前沿VR技术.一流的教学环境和VR学习体验,VRStar您正确的选择!
每次输入代码都被删除,郁闷,只能截图了
为了能更加清楚的说明问题 我截个图吧!首先我的游戏场景然后我的代码:人物身上加了一个CharacterController组件和一个NavMeshAgent组件,脚本挂在人物身上,如果没有中间的红色的cube,那么人物应该是自动移动到绿色的小球,问题是:一旦在场景中加了那个红色的cube之后,人物就直接穿过去 然后移动到目的地,请问如何让人物在寻路时和红色的cube碰撞,我做了实验,如果将人物CharacterController组件换成BoxCollider,那么人物就会被挡住而无法前进,请问如何解决加上CharacterController组件后,人物依然能实现相同的效果?
请在在红色的box上添加nav nesh obstacle组件。
另外,我比较推荐使用rigidbody和capsule collider控制物体。 因为character controller与正在旋转或者移动的collider碰撞会出现诡异的问题。
麻烦问下楼主,navigation是免费版没法用的么?最近想做寻路了,为什么我这是灰色不可点的?
可以直接把character变成物体的child
你用CharacterController··必须用它自己的move 方法···如果你用其他的移动方法···就会穿过去···好像是的···
登录百度帐号推荐应用工具修订记录最近更改媒体管理器网站地图登录注册&
UnityEngine
UnityEngine.SceneManagement
场景管理类
script:unityengine:classes:charactercontroller:charactercontroller
CharacterController 角色控制器
Namespace: UnityEngine
Inherits from:
Description 描述
A CharacterController allows you to easily do movement constrained by collisions without having to deal with a 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函数时才运动。它执行运动,但是受制于碰撞。
See Also: Character Controller component and Character animation examples
Variables 变量
The center of the character's capsule relative to the transform's position.
相对于变换位置的角色胶囊体的中心。
What part of the capsule collided with the environment during the last CharacterController.Move call.
在最后的CharacterController.Move调用期间,胶囊体的哪个部分与周围环境相碰撞。
Determines whether other rigidbodies or character controllers collide with this character controller (by default this is always enabled).
检测其他的刚体和角色控制器是否与本角色控制器相碰撞(默认值始终启用)。
The height of the character's capsule.
角色胶囊体的高度。
Was the CharacterController touching the ground during the last move?
在最后一次移动角色控制器是否触碰地面?
The radius of the character's capsule.
角色胶囊体的半径。
The character controllers slope limit in degrees.
角色控制器的坡度度数限制。
The character controllers step offset in meters.
以米为单位的角色控制器的台阶偏移量。
The current relative velocity of the Character (see notes).
角色当前的相对速度。
Public Functions 共有函数
A more complex move function taking absolute movement deltas.
一个更加复杂的运动函数,采取绝对的运动增量。
Moves the character with speed.
根据速度speed移动角色。
Messages 消息
OnControllerColliderHit is called when the controller hits a collider while performing a Move.
当角色控制器碰到一个可执行移动的碰撞器时,OnControllerColliderHit被调用。扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
用unity3d的第一人称控制器会一直往下掉,是在地面之上的
晚晚_WkhP7
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
地形的isTrigger取消下看看
恩,已经解决了
为您推荐:
扫描下载二维码Virtoools中,如何使用鼠标的方式,控制人物移动
在上一期的内容中,我们提到了如何运用行为模块(Building Blocks)的方法,及各个分类行为模块的位置。这次,我将以一个实例来说明,期使各位能有深刻的了解。在本次的范例中,我将说明「如何使用鼠标点选的方式,控制人物移动」,较实际的例子就是游戏了,大部分的游戏都使用这种方式来控制角色的移动,因为这样的控制方式很方便,也很简单,只要一个鼠标即可。
一开始,必须先做需求的功能分析。我们要做的是「使用鼠标点选的方式,控制人物移动」,从字面上我们可以得到,这里有两种对象:一个是鼠标,另一个是人物,要做的动作分别是「点选」与「移动」。鼠标点选的部分要有更进一步、更具体的想法,因为到底是要用鼠标左键点选?还是用鼠标右键点选?这里我们选择使用鼠标左键的方式,再来又有另外一个问题,鼠标左键要点选哪里才有效?在这范例中,使用者必须点选人物角色所站立的「地板物体」才有效。所以在鼠标点选的功能部分,可以整理出对于鼠标控制的具体想法:「使用者必须使用鼠标左键,点选人物角色所站立的地板物体」。
在人物移动控制的部分,必须知道要用什么方式移动,用走的?跑的?或是直接移动人物的3D坐标位置?在这范例中,我们使用走的方式,所以在人物的部分我们就必须要有走路的动作。但是要走到哪里?就必须等到点选鼠标左键做完后才知道。所以在人物的部分,可以整理出对于人物移动控制的具体想法:「人物是以走的方式,走向鼠标左键点选在地板上的位置」,必须说明的是,此位置是一个含有X,Y,Z坐标的位置。
所以整个看来,我们要提供「等待鼠标左键按下」的功能、「取得鼠标左键所点选的位置」的功能、「人物移动控制」的功能与「人物走向的目的地」的功能。
接下来的步骤,我们就要把我们的想法文件化,画出流程图会让人一目了然,知道每一步骤应该做的工作。
有了具体想法之后,要画出流程图就很容易了,当流程图完成后,接下来的步骤,就要针对这几个功能,找出可供我们运用的BB。
(1) 等待鼠标左键按下:可以使用「Logics > Message >」中的BB:Wait Message,在「Wait Message」的预设参数设定中,可以设定成\,设定完成后,此时的「Wait Message」就可以解释为:当鼠标左键点选该物体时…,其中「该物体」指的是「Wait Message」所作用的物体。这是一个很常用的功能,一定要记得。
(2) 取得鼠标左键所点选的点:这个功能算是重点,若不知道Virtools有提供这样的功能,可能会想不到应该如何处理较好。这个功能我们可以使用「Interface > Screen」中的「BB:2D Picking」,在「2D Picking」的众多输出参数pOut中,您可以找到「Intersection Point」,这个点的意义简单说就是点选的「点坐标位置」(世界坐标)。因为这个BB做了一些运算后,才会送出这个数值出来,其中的运算即是取得所点选的鼠标坐标位置,此坐标位置还是一个 2D向量,只有 X、Y两个值,接下来透过计算后,可以计算出平面上的X、Y值,对应到3D空间中,物体上的某一点。
(3) 人物移动控制:这部分比较简单,在Virtools控制人物动作的只有两个:一个是「BB:Character Controller」,另一个是「BB:Unlimited Controller」,都是放在「Character > Movement」中。这里我们使用前者:「BB:Character Controller」,因为我们没有很多复杂的动作。
(4) 人物走向的目的地:这个功能一样可以在「Character > Movement」中找到:「BB:Character Go To」。
在了解VirtoolsDev中有哪些BB可以使用之后,接下来就要进入实作的部分了。我将使用VirtoolsDev所提供的 Resource档案来示范,包含人物、人物动作与地板。
(step-1) Open Data Resource,打开资源文件\,一般预设状况都是开启的。如果已经开启者,请跳过此步骤。
(step-2)选择「3D Entities >Primitices」中的「Plane」做为地板对象,并拖拉至左边的3D Layout中。
(step-3)选择「Character > Skin Character」中的「Eva」做为此次范例中的人物,并拖拉至左边的3D Layout中。
(step-4)选择「Character > Animation > Skin Character Animation > Eva」中的「Walk」与「Wait」,并拖拉至左边3D Layout中的人物「Eva」上。
(step-5)以上都是准备工作,接下来就要开始BB实作的部分了。先处理人物动作的部分,使用「Character > Movement」中的「BB:Character Controller」,并设定如下图,记得必须作用在 \身上。
(step-6)在这步骤中的BB,全都写在地板的物体上,先完成如下图。
(step-7)在上一步骤中,发现「BB:Character Go To」的第2个参数:Target Object,只接受 \Entity\的设定,也就是说,要设定这个参数,必须要有一个 3D Entity,而「BB:2D Picking」所得到的是一个3D Vector,不是一个3D Entity。在此情况下,我们就要想办法把「3D Vector」变成「3D Entity」,而在目前场景中只有两个 3D Entity,就是地板与人物,所以,我们必须建立一个新的 3D Entity,这里我们将建立一个「3D Frame」,然后使用「BB:Set Position」,将由「BB:2D Picking」得来的3D 位置坐标,设定为此「3D Frame」的位置。再将此「3D Frame」设定为「BB:Character Go To」的第2个参数就可以了。完成的script如下图:
记得整个 script要做 Loop,回到 Wait Message 的状态,才能进行下一次的动作,整个功能就算大功告成了。 以上所介绍的,是一个稍微简单,但是又有一些技巧的范例,这功能可以再做的更好,因为你们可能已经注意到了,使用者再做完「点选」的动作后,必须等到人物走到所点选的位置后,再继续点选才有作用。在下一期的内容中,我将会在针对此部分做一些修改与新增的功能。Unity3d 代码控制游戏角色控制器移动
先上一个gif看看效果。因为图片大小限制。所以录制的比较小。个人认为效果比较牵强。特别是里面的逻辑代码。&&工程结构图&这次实现的效果是:&1:摄像机跟着角色移动,上篇博客说的是。把摄像机变成角色的子对象。发现没有我想要的效果。跟着角色移动代码是我自己弄出来的。不知道实际项目中是否也是这样。&2:利用角色控制器组建&CharacterController 实现角色移动。&3:当鼠左键击地形,角色自动寻路。今天发现用unity3d有自带的NavMesh实现自带寻路,不过还没去研究。&4:当鼠左键点击地形。实现一个高亮效果。&5:鼠标右键单击播放杀怪动画。&6:到达关卡场景,进入下一关。本来是想杀boss后在进入,但血条不会弄。&..............Hierarchy视图中元素。分别是:主摄像机,平行光,地形,墙(也就是我这里的关卡),无效的元素,当前角色,鼠标点击显示图片,boss&加载场景的时候。需要把加载的场景Build进去&<img src="http://gadimg-.//resource/attachment/0e0e}

我要回帖

更多关于 全地形进程控制 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信