hhjc.net
当前位置:首页 >> unity3D 控制角色移动会摔倒怎么办 >>

unity3D 控制角色移动会摔倒怎么办

你用的是transform.Translate()吧.这个是根据你的角色朝向来定的.也有可能是碰撞体插到地板上然后反弹了.可以用Getcompent().AddForce()

if(Input.GetKey(KeyCode.W))) { this .transform .Translate (Vector3.forward *Time .deltaTime*speed ); } else if(Input.GetKey(KeyCode.S)) { this .transform .Translate (Vector3.forward *Time .deltaTime*-speed ); } if(Input.GetKey(KeyCode.A )) ) { this .

控制角色移动播放动作或者其他逻辑则需要给这个橘色节点绑定逻辑脚本,UNity支持多种脚本语言,在此是用JAVA脚本.创建 脚本Assets --> Create ----> JavaScript 创建一个空的逻辑脚本,并将这个脚本绑定在主角对象身上,绑定方式是直接

首先你好像有两个参数来标记人物是否在地上 state和isGround.state并不完整,也没什么作用.那就当作你用isGround来标记人物是不是在地上.isGround初始化为false,但是你从来没有给它赋值过true.程序根本无法判断Input.GetButtonDown("Jump");还有些小问题都没这个逻辑问题严重

你说的"直接获取鼠标世界坐标的函数"指的是屏幕转世界的函数ScreenToWorldPoint()还是指OnMouseDown()?这两个函数的原理都是获取射线与平面的交点,原理都是一样的,ScreenToWorldPoint需要知道摄像机与地面的具体,俯视垂直摄像机还好说,斜视的话距离就是个变量,还是要获取射线与平面的交点.OnMouseDown()的原理也是射线检测,获取的是鼠标点击的collider怎么看都是直接获取射线与平面的交点最简单,最符合常理,最好用的方法

我没用过获取鼠标的世界坐标的方法,不知道你那样得到的坐标是什么.你确定转化成世界坐标之后的位置是你点击屏幕之后视觉上看到的位置么?获取射线坐标就是为了得到你点击之后视觉上看到的那个位置,因为射线是从摄像机发出的,就好像你的眼睛看到的.还有,让物体移动是指在y坐标相同的一个平面(这样说不完全正确)移动,你的方法得到的坐标的y值是不是相同呢?

首先这个问题的原因有可能未必是你的脚本这个部分出问题,我不知道你的导出之后除了输入没办法接受之外其他的部分还运行正常吗?会不会是其他的脚本组件等等原因造成的这个问题?在Editor里面里面运行的情况是否正常?此外,你用的

控制角色移动播放动作或者其他逻辑则需要给这个橘色节点绑定逻辑脚本,UNity支持多种脚本语言,在此是用JAVA脚本.创建 脚本Assets --> Create ----> JavaScript 创建一个空的逻辑脚本,并将这个脚本绑定在主角对象身上,绑定方式是直接

一般用wsad上下左右控制物体移动,通过捕捉键盘的按下响应,控制物体或者角色移动.

void Update () { //wsad按钮移动对象 if (Input.GetKey (KeyCode.W)) { gameObject.GetComponent<Transform> ().Translate (Vector3.forward * 0.1f, Space.Self); } if (Input.GetKey (KeyCode.S)) { gameObject.GetComponent<Transform> ().Translate

网站首页 | 网站地图
All rights reserved Powered by www.hhjc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com