为了账号安全,请及时绑定邮箱和手机立即绑定

Unity3D 角色面向它移动的方向

Unity3D 角色面向它移动的方向

C#
回首忆惘然 2021-06-04 07:11:06
我正在制作一个游戏,它包含行星引力,我怎样才能让玩家看向它移动的方向,如果我可以将它插入到我的移动代码中会很有帮助using UnityEngine;public class PlayerMovementScript : MonoBehaviour {public float moveSpeed;private Vector3 moveDirection;void Update(){    moveDirection = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")).normalized;}void FixedUpdate(){    GetComponent<Rigidbody>().MovePosition(GetComponent<Rigidbody>().position + transform.TransformDirection(moveDirection) * moveSpeed * Time.deltaTime);}}
查看完整描述

2 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

您可以使用刚体的速度观察您正在移动的方向。


transform.rotation = Quaternion.LookRotation(rb.velocity);

如果您想要平滑过渡:


Quaternion desiredRotation = Quaternion.LookRotation(rb.velocity);

transform.rotation = Quaternion.Slerp(transform.rotation, desiredRotation, Time.deltaTime);



查看完整回答
反对 回复 2021-06-05
?
心有法竹

TA贡献1866条经验 获得超5个赞

假设此脚本附加到要指向其移动方向的对象,请尝试此操作。


void Update()

{

    moveDirection = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")).normalized;

    Vector3 lookDirection = moveDirection + gameObject.Transform.Position;

    gameObject.Transform.LookAt(lookDirection);

}

因为您的 moveDirection 是规范化的,所以您必须将其添加到您的当前位置,以便在对象的本地空间中获得 moveDirection。然后你可以用LookAt()它来指向它。


查看完整回答
反对 回复 2021-06-05
  • 2 回答
  • 0 关注
  • 1234 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信