using UnityEngine; using VContainer; public class PlatformManager : MonoBehaviour,IPlatformManager { [Inject] private IPool pool; [Inject] private IInputReader inputReader; private float yPos = 0f; public float rotSpeed = 5f; private float rotAmount; private void Start() { ShowPlatforms(); } private void OnEnable() { inputReader.OnDragValueChanged += HandleDrag; } private void OnDisable() { inputReader.OnDragValueChanged -= HandleDrag; } private void LateUpdate() { transform.Rotate(Vector3.up * rotAmount); } void ShowPlatforms() { foreach (var platform in pool.All) { platform.gameObject.SetActive(true); platform.transform.position = new Vector3(0, yPos, 0); yPos--; } } public void BuildNewPlatform() { Platform platform = pool.GetFromPool(); platform.transform.position = new Vector3(0, yPos, 0); yPos--; } private void HandleDrag(Vector2 drag) { rotAmount = -drag.normalized.x * rotSpeed; //#if UNITY_EDITOR || UNITY_STANDALONE // if (!inputReader.isMouseButtonPressed) return; // transform.Rotate(Vector3.up * rotAmount); //#elif UNITY_IOS || UNITY_ANDROID // transform.Rotate(Vector3.up * rotAmount * DPI); //#endif //transform.Rotate(Vector3.up * rotAmount); } } public interface IPlatformManager { void BuildNewPlatform(); }