コード例 #1
0
 protected override void OnAfterSerialize()
 {
     if (transform.position != Vector3.zero)
     {
         Debug.LogWarning("Visual editting can only be used when transform is at origin.");
         return;
     }
     _projectileOffset = new Vector2dHeight(CachedTransform.InverseTransformPoint(_projectileOrigin));
 }
コード例 #2
0
 public EnvironmentBodyInfo(
     LSBody body,
     Vector2dHeight position,
     Vector2d rotation
     )
 {
     this.Body     = body;
     this.Position = position;
     this.Rotation = rotation;
 }
コード例 #3
0
        void SaveBodies()
        {
            LSBody[] allBodies = GameObject.FindObjectsOfType <LSBody> ();
            FastList <EnvironmentBodyInfo> bodiesBuffer = new FastList <EnvironmentBodyInfo>();

            foreach (LSBody body in allBodies)
            {
                if (IsAgent(body))
                {
                    continue;
                }
                Vector2dHeight      pos      = new Vector2dHeight(body.transform.position);
                Vector2d            rot      = Vector2d.CreateRotation(body.transform.eulerAngles.y * Mathf.Deg2Rad);
                EnvironmentBodyInfo bodyInfo = new EnvironmentBodyInfo(
                    body,
                    pos,
                    rot
                    );
                bodiesBuffer.Add(bodyInfo);
            }

            _environmentBodies = bodiesBuffer.ToArray();
        }
コード例 #4
0
    protected override void OnAfterSerialize()
    {
        Vector3 localPos = transform.root.InverseTransformPoint (transform.position);
        _localPos = new Vector2dHeight(localPos);

        new UnityEditor.SerializedObject (this).ApplyModifiedProperties ();
    }
コード例 #5
0
        public void Initialize(Vector2dHeight StartPosition, Vector2d StartRotation)
        {
            PositionalTransform = _positionalTransform;
            RotationalTransform = _rotationalTransform;
            if (!Setted)
            {
                this.Setup(null);
            }
            this.RaycastVersion = 0;

            this.HeightPosChanged = true;

            CheckVariables();

            PositionChanged       = true;
            RotationChanged       = true;
            VelocityChanged       = true;
            PositionChangedBuffer = true;
            RotationChangedBuffer = true;

            Priority = _basePriority;
            Velocity = Vector2d.zero;
            VelocityFastMagnitude = 0;
            LastPosition          = _position = StartPosition.ToVector2d();
            _heightPos            = StartPosition.Height;
            _rotation             = StartRotation;
            ForwardNeedsSet       = true;

            XMin = 0;
            XMax = 0;
            YMin = 0;
            YMax = 0;


            PastGridXMin = int.MaxValue;
            PastGridXMax = int.MaxValue;
            PastGridYMin = int.MaxValue;
            PastGridYMax = int.MaxValue;

            if (Shape != ColliderType.None)
            {
                BuildPoints();
                BuildBounds();
            }

            ID = PhysicsManager.Assimilate(this);
            Partition.PartitionObject(this);
            if (PositionalTransform != null)
            {
                CanSetVisualPosition         = true;
                _visualPosition              = _position.ToVector3(HeightPos.ToFloat());
                lastVisualPos                = _visualPosition;
                PositionalTransform.position = _visualPosition;
            }
            else
            {
                CanSetVisualPosition = false;
            }
            if (RotationalTransform != null)
            {
                CanSetVisualRotation         = true;
                visualRot                    = Quaternion.LookRotation(Forward.ToVector3(0f));
                lastVisualRot                = visualRot;
                RotationalTransform.rotation = visualRot;
            }
            else
            {
                CanSetVisualRotation = false;
            }
        }
コード例 #6
0
 protected override void OnAfterSerialize()
 {
     if (transform.position != Vector3.zero)
     {
         Debug.LogWarning ("Visual editting can only be used when transform is at origin.");
         return;
     }
     _projectileOffset = new Vector2dHeight(CachedTransform.InverseTransformPoint (_projectileOrigin));
 }