我该如何解决? (简单的“旋转”脚本)

时间:2019-01-24 05:48:32

标签: c# unity3d game-development

所以我有这个脚本,可以围绕“字符”旋转一个点,直到我使用canvas ui元素添加了一个小地图,该脚本才起作用,现在仅在屏幕的左下角起作用。 Here you can see more clearly what im talking about.

这是我的脚本:

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;
    }
}

1 个答案:

答案 0 :(得分:1)

我愿意打赌您的小地图使用第二台相机,对吗?两个摄像机都具有MainCamera标签吗?如果是这样,则调用Camera.main的代码将无法确定其实际使用的摄像机的行为。最有可能的是,它将Minimap摄像头用于ScreenToWorldPoint调用,这给了您意外的行为。

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