UNITY3D添加了刚体后,移动不成问题,也能实现CS效果,但是跳这个就出问题了,只能立定跳,不能边走边跳

UNITY3D添加了刚体后,移动不成问题,也能实现CS效果,但是跳这个就出问题了,只能立定跳,不能边走边跳原因是我在跟随摄像机移动的时候,加了速度和力(不加动不了)帮忙看... UNITY3D添加了刚体后,移动不成问题,也能实现CS效果,但是跳这个就出问题了,只能立定跳,不能边走边跳
原因是我在跟随摄像机移动的时候,加了速度和力(不加动不了)
帮忙看看出错在哪里?怎么改。

这是跳的部分
rigidbody.velocity = new Vector3(0, 30, 0); //速度↑
GetComponent<Rigidbody>().AddForce(Vector3.up * jumpSpeed); //力 ↑
这是走路的部分

float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");

Vector3 targetDirection = new Vector3(h, 0, v);

float roat_y = transform.rotation.eulerAngles.y; // 得到Y 轴的角度
targetDirection = Quaternion.Euler(0f,roat_y, 0f) * targetDirection;
/*
如果去掉上面两行虽然可以移动,但是无法跟随摄像机视线,
也就是指能东南西北固定方向,这和CS差太远。
*/
rigidbody.velocity = targetDirection*speed;
rigidbody.AddForce(targetDirection * speed);
rigidbody.MovePosition(transform.position + targetDirection * speed*Time.deltaTime);
///////////////////////////

rigidbody.velocity = targetDirection*speed;
rigidbody.AddForce(targetDirection * speed);
//去掉这两句则不能动
展开
 我来答
碰瓷喵
游戏玩家

2018-02-03 · 游戏我都懂点儿,问我就对了
知道小有建树答主
回答量:214
采纳率:97%
帮助的人:19.2万
展开全部
怀疑是力被覆盖了 跳起和移动都是受到力控制 改了力后 力就只有一个方向 要么 跳起 要么移动
如果是这样的话 获取两个控制 将方向算出来后再一起给力赋值
更多追问追答
追问
关键就是不知道怎么合在一起,为这个问题头疼了一天了,又不能同时加两个力,如果没有摄像机的视角要求,完全不用rigidbody.velocity 以及rigidbody.AddForce都可以移动的,现在加上反而成阻碍,在移动不加力的情况下,跳跃是可以助跑着跳的,可以在移动的过程中跳起来,跳到平台,高台上的
追答

看这两个东西 添加了两次力 就是问题 

如下 绿色的是你的方法 白色的是我的想法 你看看 能不能用

匿名用户
2018-02-04
展开全部
感觉人物不用刚体的力去移动更好,因为有许多地方不好控制,还会产生冲突,比如楼主这种情况,建议楼主使用 transform.Translate transform.eulerAngles 的方式移动和旋转, 如果楼主还是喜欢刚体的重力的话,不去掉也是可以的,刚体用加力的方法去跳跃的部分其实可以单独踢出来做成一个函数,使之互不干涉,,,按空格时使用力来跳跃,移动用transform,亲测可行!
(注意:不要在Translate的情况下再使用力来前后左右移动了,否则会很悲剧)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式