void Update() { if (Sys.getFlag() == 1) { //Sys = Local.GetComponent<SearchArea2>(); //プレイヤーの方向差分 var Direction = Sys.getPosition() - transform.position; //y軸固定 Direction.y = 0; //よくわからん Quaternion Rotation = Quaternion.LookRotation(Direction); // forwardの向きがおかしい場合補正をかける float LocalNum = Rotation.eulerAngles.y; if (ForwardNum == 1) { LocalNum = LocalNum - 90; } if (ForwardNum == 5) { LocalNum = LocalNum + 90; } // 補正実行 Rotation = Quaternion.Euler(new Vector3(Rotation.eulerAngles.x, LocalNum, Rotation.eulerAngles.z)); //そっちへ向く transform.rotation = Quaternion.Slerp(transform.rotation, Rotation, 5f * Time.deltaTime); } }
void Update() { if (Sys.getFlag() == 1) { //プレイヤーの方向差分 var Direction = Sys.getPosition() - transform.position; //よくわからん Quaternion Rotation = Quaternion.LookRotation(Direction); float Angle = 360 - Rotation.eulerAngles.x; if (Angle >= 180) { Angle = Angle - 360; } if (Angle < 0) { if (-Angle > MaxAngle) { Angle = -MaxAngle; } } else { if (Angle > MaxAngle) { Angle = MaxAngle; } } if (ForwardNum == 1) { transform.localRotation = Quaternion.Euler(0, 0, Angle); } } }
void Update() { if (Sys.getFlag() == 1) { //プレイヤーの方向差分 var Direction = Sys.getPosition() - transform.position; //y軸固定 Direction.y = 0; //よくわからん Quaternion Rotation = Quaternion.LookRotation(Direction); // 補正実行 Rotation = Quaternion.Euler(new Vector3(Rotation.eulerAngles.x, Rotation.eulerAngles.y - 270, Rotation.eulerAngles.z)); //そっちへ向く transform.rotation = Quaternion.Slerp(transform.rotation, Rotation, 5f * Time.deltaTime); } }