Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- public class Product : MonoBehaviour
- {
- public bool IsGrounded { get; private set; }
- private void OnTriggerEnter2D(Collider2D other)
- {
- if (!other.CompareTag("Finish"))
- return;
- Debug.Log($"Продукт \"{name}\" Упал");
- IsGrounded = true;
- }
- }
- public class ProductsController : MonoBehaviour
- {
- [SerializeField] private Vector3 _spawnPosition = new(0, 6f, 0f);
- [SerializeField] private Product[] _productPrefabs;
- private Product _currentProduct;
- private int _currentProductIndex;
- /// <summary>
- /// Не могу сменить продукт пока он не упал на землю
- /// </summary>
- private bool CantChangeProduct =>
- _currentProduct.IsGrounded == false;
- private Product Prefab =>
- _productPrefabs[_currentProductIndex];
- private void Awake() =>
- SpawnProduct();
- /// <summary>
- /// Cпавнить слудеющий продукт
- /// </summary>
- public void NextProduct()
- {
- if (CantChangeProduct)
- return;
- _currentProductIndex++;
- if (_currentProductIndex >= _productPrefabs.Length - 1)
- _currentProductIndex = 0;
- SpawnProduct();
- }
- /// <summary>
- /// Cпавнить прердыдущий продукт
- /// </summary>
- public void PrevProduct()
- {
- if (CantChangeProduct)
- return;
- _currentProductIndex--;
- if (_currentProductIndex <= 0)
- _currentProductIndex = _productPrefabs.Length - 1;
- ChangeProduct();
- }
- private void ChangeProduct()
- {
- Destroy(_currentProduct.gameObject);
- SpawnProduct();
- }
- private void SpawnProduct()
- {
- _currentProduct = Instantiate(Prefab, _spawnPosition, Quaternion.identity);
- Debug.Log($"Продукт \"{_currentProduct.name}\" Заспавнился ");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement