// death fx public void Init() { var playerSettings = GameController.SettingsSet.PlayerSettings; // State Machine StateMachine.Init(); // Movement Movement = new NavMeshAgentMovement { NavMeshAgent = NavMeshAgent }; // Rotation Rotation = new Rotation { TargetTransform = transform, AngularSpeed = playerSettings.AngularSpeed }; // Vitality Vitality = new Vitality(); Vitality.MaxHealth = playerSettings.Health; Vitality.MaxArmor = playerSettings.MaxArmor; Vitality.AddHealth(playerSettings.Health); Vitality.AddArmor(playerSettings.InitArmor); Vitality.OnHealthChange = StateMachine.OnHealthChange; // Weapons var weaponDescriptors = playerSettings.WeaponDescriptors; int weaponDescriptorsCount = weaponDescriptors.Length; Weapons = new TankEternalWeapon[weaponDescriptorsCount]; CurrentWeaponIndex = playerSettings.DefaultWeaponIndex; for (int index = 0; index < weaponDescriptorsCount; index++) { var weaponDescriptor = weaponDescriptors[index]; var weapon = Instantiate(weaponDescriptor.WeaponPrefab, WeaponBaseTransform); weapon.transform.localPosition = new Vector3( weaponDescriptor.SpawnOffsetX, 0.0f, weaponDescriptor.SpawnOffsetZ); weapon.BodySpriteRenderer.sortingOrder = BodySpriteRendererOrder; if (index != CurrentWeaponIndex) { weapon.gameObject.SetActive(false); } weapon.Init(); Weapons[index] = weapon; } CurrentWeapon = Weapons[CurrentWeaponIndex]; // Nav Mesh NavMeshAgent.speed = playerSettings.Speed; //NavMeshAgent.angularSpeed = playerSettings.AngularSpeed; }