using Lights; using System.Collections.Generic; using TMPro; using UnityEngine; public class Player : MonoBehaviour { //[SerializeField] TextMeshProUGUI angleTest; [Header("Управление")] [SerializeField] private InSignal DiveSignal; [SerializeField] private InSignal ShootSignal; [SerializeField] private InSignal ChangeWeapon; [Header("Оружие")] public List weaponsContainer; private int weaponIndex = 0; public Weapon ActiveWeapon => weaponsContainer[weaponIndex]; [Header("Система ныряния")] public PlayerDiveSystem DiveSystem; [Header("Здоровье")] public Health HealthComponent; [SerializeField] private List hitboxes; [SerializeField] private float maxHp = 500; //вариант из настроек инициализировать [Header("Прицеливание врагов")] [Tooltip("Точка в которую будут целиться враги")] public Transform EnemiesTarget; private void Awake() { foreach (var hitbox in hitboxes) hitbox.Initialize(gameObject); HealthComponent.Initialize(maxHp, hitboxes); HealthComponent.Damaged += HealthComponent_Damaged; } private void OnDestroy() { if(HealthComponent != null) HealthComponent.Damaged -= HealthComponent_Damaged; } private void HealthComponent_Damaged(float obj) { LightSystem.Ef_Alarm(); } void Update() { //тест нормализации //float angle = CamerasManager.VR_Camera.transform.localRotation.eulerAngles.y; //angle = YawOnlyTracker.NormalizeAngle(angle); //angleTest.text = angle.ToString(); //Тестовый выход if (Input.GetKeyDown(KeyCode.T)) { G.Terminator.TerminateGame(EndGameConditionChecker.EndgameReason.Timeout); } DiveSystem.Dive = In.GetButton(DiveSignal); Debug.Log(In.GetButtonDown(ShootSignal)); if (In.GetButtonDown(ShootSignal)) { Debug.Log("Shoot"); Shoot(); } if (In.GetButtonDown(ChangeWeapon)) { NextWeapon(); } } private void NextWeapon() { print("Смена оружия"); weaponIndex = (weaponIndex + 1) % weaponsContainer.Count; G.WeaponModel.WeaponChangeHandler(ActiveWeapon); } private void Shoot() { ActiveWeapon.Shoot(); } }