所以我有这个脚本,它在我的"角色"周围旋转一个点,它一直有效,直到我使用 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) 将相机引用添加到脚本中,并直接在代码中引用它。