RemoteTech.Pivot.RotToTarget C# (CSharp) Méthode

RotToTarget() public méthode

public RotToTarget ( Vector3 Tgt ) : void
Tgt Vector3
Résultat void
        public void RotToTarget(Vector3 Tgt)
        {
            Vector3 tmpTGT = pivot.InverseTransformPoint(Tgt);
            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.deltaTime, 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);
        }

Usage Example

Exemple #1
0
        public new void FixedUpdate()
        {
            base.FixedUpdate();

            if (IsRTBroken || !RTCore.Instance)
            {
                return;
            }

            switch (TrackingMode)
            {
            case TrackingModes.Tracking:
                if (IsRTPowered)
                {
                    mPivot1.RotToTarget(new DynamicTarget(RTAntennaTargetGuid));
                    mPivot2.RotToTarget(new DynamicTarget(RTAntennaTargetGuid));
                }
                break;

            case TrackingModes.Extending:
                if (!Animation.IsPlaying(AnimationName))
                {
                    TrackingMode = TrackingModes.Tracking;
                }
                break;

            case TrackingModes.Retracting:
                if (!Animation.IsPlaying(AnimationName))
                {
                    TrackingMode = TrackingModes.Retracted;
                }
                break;

            case TrackingModes.Resetting:
                if (IsRTPowered && mPivot1.RotToOrigin() & mPivot2.RotToOrigin())
                {
                    TrackingMode = TrackingModes.Retracting;
                    base.SetState(false);
                }
                break;
            }
        }
All Usage Examples Of RemoteTech.Pivot::RotToTarget