コード例 #1
0
        public void RotToTarget(DynamicTarget tgt)
        {
            Vector3 tmpTGT = tgt.NoTarget ? (Vector3)OrigRef : pivot.InverseTransformPoint(tgt.Position);
            Vector2 target = new Vector2(tmpTGT.x, tmpTGT.y);

            float angle = Mathf.Deg2Rad * Vector2.Angle(Vector2.up, target);

            if (angle == 0) return;

            angle = Mathf.Clamp(increment * TimeWarp.fixedDeltaTime, 0, angle);
            if (target.x > 0) {
                angle = -angle;
            }

            if (!fullcircle) {
                tmpTGT = OrigRef;
                target = new Vector2(tmpTGT.x, tmpTGT.y);
                float angleRef = Mathf.Deg2Rad * Vector2.Angle(Vector2.up, target);
                if (target.x > 0) {
                    angleRef = -angleRef;
                }

                angle = Mathf.Clamp(angle, angleRef - angleMinus, angleRef + anglePlus);

                if (angle == 0) return;
            }

            pivot.RotateAround(pivot.forward, angle);
        }
コード例 #2
0
        public void RotToTarget(DynamicTarget tgt)
        {
            Vector3 tmpTGT = tgt.NoTarget ? (Vector3)OrigRef : pivot.InverseTransformPoint(tgt.Position);
            Vector2 target = new Vector2(tmpTGT.x, tmpTGT.y);

            float angle = Mathf.Deg2Rad * Vector2.Angle(Vector2.up, target);

            if (angle == 0)
            {
                return;
            }

            angle = Mathf.Clamp(increment * TimeWarp.fixedDeltaTime, 0, angle);
            if (target.x > 0)
            {
                angle = -angle;
            }

            if (!fullcircle)
            {
                tmpTGT = OrigRef;
                target = new Vector2(tmpTGT.x, tmpTGT.y);
                float angleRef = Mathf.Deg2Rad * Vector2.Angle(Vector2.up, target);
                if (target.x > 0)
                {
                    angleRef = -angleRef;
                }

                angle = Mathf.Clamp(angle, angleRef - angleMinus, angleRef + anglePlus);

                if (angle == 0)
                {
                    return;
                }
            }

            pivot.RotateAround(pivot.forward, angle);
        }