Пример #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
        /// <summary>
        /// Called when target is added.
        /// </summary>
        /// <param name="session">The session.</param>
        /// <param name="target">The target.</param>
        /// <param name="wingTarget">The wing target.</param>
        private void OnTargetAdded(ISession session, Target target, DynamicTarget wingTarget)
        {
            OnWingAdded();

            DynamicTargetService.ReconcileMigrations(wingTarget);
            DynamicTargetService.ImportMeasures(target, wingTarget, session);
            DynamicTargetService.ImportReports(wingTarget, session);
        }
Пример #3
0
    public override bool IsSame(ITarget other)
    {
        DynamicTarget dyn = other as DynamicTarget;

        if (dyn != null)
        {
            return(dyn.target == target);
        }
        return(base.IsSame(other));
    }
Пример #4
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);
        }