Example #1
0
    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);
        }
    }
Example #2
0
    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);
            }
        }
    }
Example #3
0
    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);
        }
    }