Пример #1
0
    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);
        }
    }
Пример #2
0
    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);
        }
    }