unity3d - 计算玩家移动方向时的延迟
问题描述
我正在尝试确定变换的方向。我最初试图通过跟踪rigidbody.velocity 来做到这一点,但该属性似乎不可靠,所以我不得不手动计算方向。黄线画得很好,它确实指向错误的方向,但它似乎被延迟了
我在更新方法中调用以下方法:
void DetermineMovementDirection()
{
currentLoc = (transform.position - prevLoc) / Time.deltaTime;
Vector3 t = (prevLoc + currentLoc).normalized;
Debug.DrawLine(transform.position, transform.position + t * 5, Color.yellow);
}
我希望黄线始终指向玩家移动的方向,而不是长时间延迟。我怎样才能解决这个问题?
根据要求的运动功能:
void Update()
{
float inputZ = Input.GetAxis("Horizontal");
float inputX = Input.GetAxis("Vertical");
if (movementAllowed)
if (inputZ != 0 || inputX != 0)
{
transform.eulerAngles = new Vector3(0, Mathf.Atan2(inputZ, inputX) * 180 / Mathf.PI, 0);
transform.Translate(moveSpeed * inputZ * Time.deltaTime, 0f, moveSpeed * inputX * Time.deltaTime, Space.World);
}
}
我只是在更新方法结束时进行更新:
prevLoc = transform.position;
解决方案
推荐阅读
- sql - SQL查询;返回主表的所有记录,并在条件下从连接表中添加字段;在连接表中找不到匹配项时将值留空
- c# - JsonHttpContent 与 ASP.NET Core 3.1
- html - 正确 mat-ccard-header 中的 mat-card-avatar 图像高度
- ibm-mq - 使用 Splunk 解析 IBM MQ v9.1 错误日志
- flutter - Flutter:所有页面上的弯曲底部导航栏并从主页开始
- c - 我正在尝试提高我的互相关算法的性能速度。我可以做些什么来让我的 C 代码运行得更快?
- qt - 具有 QML 和 C++ 后端的 QtDataVisualization 应用程序 - 可能吗?
- php - 复制文件后更改 php 内容
- c# - HasAttributes和xml文件的C#问题
- javascript - 将其用于 DIV 时无法读取未定义的属性“classList”