Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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# 我的手臂不是';t在Unity 2D中正确跟随光标_C#_Unity3d - Fatal编程技术网

C# 我的手臂不是';t在Unity 2D中正确跟随光标

C# 我的手臂不是';t在Unity 2D中正确跟随光标,c#,unity3d,C#,Unity3d,我正在Unity中创建一个2D平台成型器,当我的播放器朝着鼠标旋转手臂时,我遇到了一个问题。我对它进行了编程,使手臂朝着光标旋转,当我的角色朝右时,它工作正常,但当它朝左时,它不工作 因此,当向右时,手臂跟随光标,当光标位于播放器后面时,手臂翻转并跟随光标,直到光标再次朝向播放器的前面。非常直截了当。但是,当我想面对左边的玩家时,我明显地按了“D”键,然后向左走,当光标朝向玩家的前面时,手臂旋转起作用,就像以前一样,当我把光标放在玩家的后面时,问题发生了,手臂没有转过来,一直朝前,我仍然可以控制

我正在Unity中创建一个2D平台成型器,当我的播放器朝着鼠标旋转手臂时,我遇到了一个问题。我对它进行了编程,使手臂朝着光标旋转,当我的角色朝右时,它工作正常,但当它朝左时,它不工作

因此,当向右时,手臂跟随光标,当光标位于播放器后面时,手臂翻转并跟随光标,直到光标再次朝向播放器的前面。非常直截了当。但是,当我想面对左边的玩家时,我明显地按了“D”键,然后向左走,当光标朝向玩家的前面时,手臂旋转起作用,就像以前一样,当我把光标放在玩家的后面时,问题发生了,手臂没有转过来,一直朝前,我仍然可以控制它,但它不会朝后

这是我能说的最清楚的了,谢谢你阅读

这是代码,我会看看是否可以放一个视频或照片附件。 此代码是用于旋转手臂的脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class pivot : MonoBehaviour
{
    public GameObject myPlayer;

    private void FixedUpdate()
    {
        Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;

        difference.Normalize();

        float rotationZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;

        transform.rotation = Quaternion.Euler(0f, 0f, rotationZ);

        if (rotationZ < -90 || rotationZ > 90)
        {
            if (myPlayer.transform.eulerAngles.y == 0)
            {
                transform.localRotation = Quaternion.Euler(180, 0, rotationZ );
            }
            else if (myPlayer.transform.eulerAngles.y != 0)
            {
                transform.localRotation = Quaternion.Euler(180, 180, rotationZ - 50);
            }
        }
    }
}
使用系统集合;
使用System.Collections.Generic;
使用UnityEngine;
公共阶级支点:单一行为
{
公共游戏对象myPlayer;
私有void FixedUpdate()
{
Vector3差异=Camera.main.ScreenToWorldPoint(Input.mousePosition)-transform.position;
差异。规范化();
浮动旋转Z=数学Atan2(差分y,差分x)*数学Rad2Deg;
transform.rotation=Quaternion.Euler(0f,0f,rotationZ);
如果(旋转Z<-90 | |旋转Z>90)
{
if(myPlayer.transform.eulerAngles.y==0)
{
transform.localRotation=Quaternion.Euler(180,0,rotationZ);
}
else if(myPlayer.transform.eulerAngles.y!=0)
{
transform.localRotation=Quaternion.Euler(180,180,旋转Z-50);
}
}
}
}
如果你能帮我,我会非常感激的!告诉我是否需要添加更多信息


谢谢。

很抱歉反应太晚,但当你超过90度,低于-90度时,它就停止移动了?