private void Update() { if (EditorApplication.isPlaying) { if (animationMode) { Debug.LogError($"Animation mode is still on for gameObject {gameObject.name}"); } return; } _parts = GetComponent <PartsAbstract>(); _parts.AddPartsToLists(); if (!_wasAnimationMode && animationMode) { SwapPartsWithTargets(_parts.parts, _parts.targets); } if (_wasAnimationMode && !animationMode) { SwapPartsWithTargets(_parts.targets, _parts.parts); } _wasAnimationMode = animationMode; for (int i = 0; i < _parts.parts.Length; i++) { //Rotate actual part to animated target in edit mode too _parts.parts[i].transform.SetPositionAndRotation(_parts.targets[i].transform.position, _parts.targets[i].transform.rotation); } }
private void Awake() { _movement = GetComponent <MovementAbstract>(); _parts = GetComponent <PartsAbstract>(); _rb = GetComponent <Rigidbody2D>(); _nonLegBendParts = (GameObject[])nonLegBendParts.Clone(); _nonLegBendAmounts = (float[])nonLegBendAmounts.Clone(); foreach (var part in bodyParts) { part.Initialize(this); } }