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

SnapToTarget() public méthode

public SnapToTarget ( Vector3 Tgt ) : void
Tgt Vector3
Résultat void
        public void SnapToTarget(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;

            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 override void OnStart(StartState state)
        {
            if (!String.IsNullOrEmpty(Pivot1Name) && !String.IsNullOrEmpty(Pivot2Name))
            {
                ForceTransform = part.FindModelTransform(Pivot2Name);
                BreakTransform = part.FindModelTransform(Pivot1Name);
            }
            else
            {
                RTUtil.Log("ModuleRTAntennaAnimated: Pivot error");
                enabled = false;
                return;
            }

            if (IsRTBroken)
            {
                TrackingMode = TrackingModes.Broken;
            }

            base.OnStart(state);

            if (RTCore.Instance != null)
            {
                mPivot1 = new Pivot(BreakTransform, Pivot1Speed, Pivot1Range);
                mPivot2 = new Pivot(ForceTransform, Pivot2Speed, Pivot2Range);

                if (IsRTActive)
                {
                    TrackingMode = TrackingModes.Tracking;
                    mPivot1.SnapToTarget(new DynamicTarget(RTAntennaTargetGuid));
                    mPivot2.SnapToTarget(new DynamicTarget(RTAntennaTargetGuid));
                }
            }
        }
All Usage Examples Of RemoteTech.Pivot::SnapToTarget