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)); }
public EnvironmentBodyInfo( LSBody body, Vector2dHeight position, Vector2d rotation ) { this.Body = body; this.Position = position; this.Rotation = rotation; }
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(); }
protected override void OnAfterSerialize() { Vector3 localPos = transform.root.InverseTransformPoint (transform.position); _localPos = new Vector2dHeight(localPos); new UnityEditor.SerializedObject (this).ApplyModifiedProperties (); }
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; } }
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)); }