【问题标题】:Unity: TopDown view - GameObject does not rotate toward mouseposUnity:自上而下视图 - 游戏对象不向鼠标位置旋转
【发布时间】:2021-01-06 16:33:41
【问题描述】:

我一直在研究为什么我的玩家(游戏对象)在我的 TopDown 3D 游戏中没有向我的鼠标位置旋转,而且我似乎找不到我的代码有什么问题,所以我发表了这篇文章.我遇到的问题是,只有我的玩家的游戏对象(在我的情况下是一个胶囊)向我的鼠标位置旋转,但我的玩家的轴保持不变。换句话说,我不能旋转我的玩家的轴来面对我的鼠标位置,但我可以旋转我的玩家的游戏对象来面对我的鼠标位置。这真的很难解释,这在我以前从未发生过。问题是如何旋转我的播放器的轴以面对我的鼠标位置。请记住,我的游戏是自上而下的视图。

这是我用于 playerMouvment 和 mouseLook 的代码:

public class Controller : MonoBehaviour
{
    public float moveSpeed = 6;

    Rigidbody rb;
    Camera viewCamera;
    Vector3 velocity;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
        viewCamera = Camera.main;
    }

    void Update()
    {
        Vector3 mousePos = viewCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, viewCamera.transform.position.y));
        transform.LookAt(mousePos + Vector3.up * transform.position.y);
        velocity = new Vector3(Input.GetAxisRaw("Horizontal"), 0, Input.GetAxisRaw("Vertical")).normalized * moveSpeed;
    }

    void FixedUpdate()
    {
        rb.MovePosition(rb.position + velocity * Time.fixedDeltaTime);
    }
}

我再次尝试查找我的代码中的任何错误,但我找不到任何导致这种奇怪情况的东西,所以如果有人能帮助我找到更好的方法来编写这段代码并解决我的问题,那就太好了!

【问题讨论】:

    标签: c# unity3d mouse-position


    【解决方案1】:

    如果我对您的理解正确,您的游戏一切正常,并且玩家正在转动,但只是在编辑器中玩家的轴(红色、绿色和蓝色箭头)不随玩家转动?

    如果这是问题,则可能是您使用的是全局空间句柄而不是本地空间。单击我在图像中突出显示的图标应该可以解决问题。

    【讨论】:

    • 是的,解决了它,我不敢相信我没想到,哈哈,谢谢!
    【解决方案2】:

    使用此代码代替 LookAt() 函数

    Vector2 direction = mousePos.position - player.transform.position;
    player.transform.right /* Maybe you need Up or -Up or -right */ = direction;
    

    这在某些情况下也可以使用

    Vector2 direction = new Vector2
    (
    mousePos.position.x - player.transform.position.x,
    mousePos.positoin.y - player.transform.position.y
    )
    
    player.transform.right /* Maybe you need Up or -Up or -right */ = direction;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      相关资源
      最近更新 更多