我该如何解决这个问题?(简单"Rotation"脚本)



所以我有这个脚本,它在我的"角色"周围旋转一个点,它一直有效,直到我使用 canvas ui 元素添加一个小地图,现在只适用于屏幕的左下角。在这里,您可以更清楚地看到我在说什么。

这是我的脚本:

using UnityEngine;
public class PlayerAim : MonoBehaviour
{
    private void LateUpdate()
    {
        AimMouse();
    }
    void AimMouse()
    {
        Vector3 mousePos = Input.mousePosition;
        mousePos = Camera.main.ScreenToWorldPoint(mousePos);
        Vector2 direction = new Vector2(
            mousePos.x - transform.position.x,
            mousePos.y - transform.position.y
            );
        transform.up = direction;
    }
}

我敢打赌你的小地图使用第二个摄像头,对吗? 两个摄像头都有主摄像头标签吗? 如果是这样,那么调用 Camera.main 的代码将具有未定义的行为,即它实际使用哪个相机。 最有可能的是,它使用小地图摄像头进行ScreenToWorldPoint调用,这给了你意想不到的行为。

您需要做的是 (a) 从小地图相机对象中删除 MainCamera 标记,或者 (b) 将相机引用添加到脚本中,并直接在代码中引用它。

相关内容

  • 没有找到相关文章

最新更新