Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我该如何解决这个问题?(简单的“旋转”脚本)_C#_Unity3d_Game Development - Fatal编程技术网

C# 我该如何解决这个问题?(简单的“旋转”脚本)

C# 我该如何解决这个问题?(简单的“旋转”脚本),c#,unity3d,game-development,C#,Unity3d,Game Development,所以我有一个脚本,它可以围绕我的“角色”旋转一个点,直到我使用canvas ui元素添加了一个小地图,现在只在屏幕的左下方工作。 这是我的剧本: using UnityEngine; public class PlayerAim : MonoBehaviour { private void LateUpdate() { AimMouse(); } void AimMouse() { Vector3 mousePos =

所以我有一个脚本,它可以围绕我的“角色”旋转一个点,直到我使用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)从minimap camera对象中删除Main camera标记,或者(b)向脚本添加一个camera引用,并直接在代码中引用它。

在世界坐标中,Aim或AimAxis可能已移动到[0,0]。如何修复此问题这个标题可能适用于超过一半的问题。你的头衔是你向潜在的回答者“推销”你的问题的机会。请使其与您的问题相关。您可以使用transform.LookAt,而不是指定transform.up,或者从四元数获取lookatDirection,并从那里进行旋转。