unity3d Unity LookAtMouse功能会降低移动性能

6g8kf2rb  于 2023-02-09  发布在  其他
关注(0)|答案(2)|浏览(131)
private void LookAtMouse()
{
    if (Physics.Raycast(mainCamera.ScreenPointToRay(mouseLook), out var raycastHit, Mathf.Infinity))
    {
        _direction = (raycastHit.point - transform.position).normalized;
        _direction.y = 0;
        transform.forward = _direction;
    }
}

每当我在update中调用这个函数时,它就会杀死我的移动。如果我不运行这个函数,一切都会完美地工作。我试过在移动中使用transform.LookAt()我试过使用transform.Translate(),Rigidbody.MovePosition(),改变其他任何东西都没有帮助。
如果我注解掉这个变换。forward = _direction;那么一切都很完美。是什么让我的移动运行游戏慢得惊人
我已经尝试了一切可能的事情,我可以找到网上解决这个问题,没有任何帮助。

c90pui9n

c90pui9n1#

只要涉及到任何物理特性,您就不希望通过Transform设置,因为这会破坏物理特性和碰撞检测。
您应该将Rigidbody.MoveRotationFixedUpdate中的Quaternion.LookRotation结合使用

elcex8rz

elcex8rz2#

尝试调用它在FixedUpdate一般,我使用更新只是为了捕捉键输入,因为它可能会被称为+1000时间,如果你的设备是强大的,在另一方面固定的更新是更好地做物理。iv它是一个尝试和重播,如果它没有帮助思考在其他解决方案;

相关问题