C# 我的手臂不是';t在Unity 2D中正确跟随光标
我正在Unity中创建一个2D平台成型器,当我的播放器朝着鼠标旋转手臂时,我遇到了一个问题。我对它进行了编程,使手臂朝着光标旋转,当我的角色朝右时,它工作正常,但当它朝左时,它不工作 因此,当向右时,手臂跟随光标,当光标位于播放器后面时,手臂翻转并跟随光标,直到光标再次朝向播放器的前面。非常直截了当。但是,当我想面对左边的玩家时,我明显地按了“D”键,然后向左走,当光标朝向玩家的前面时,手臂旋转起作用,就像以前一样,当我把光标放在玩家的后面时,问题发生了,手臂没有转过来,一直朝前,我仍然可以控制它,但它不会朝后 这是我能说的最清楚的了,谢谢你阅读 这是代码,我会看看是否可以放一个视频或照片附件。 此代码是用于旋转手臂的脚本C# 我的手臂不是';t在Unity 2D中正确跟随光标,c#,unity3d,C#,Unity3d,我正在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度时,它就停止移动了?