diff --git a/popcorn/Assets/MyGame/Scenes/Main/PanController.cs b/popcorn/Assets/MyGame/Scenes/Main/PanController.cs index d1cf90c4..f9192309 100644 --- a/popcorn/Assets/MyGame/Scenes/Main/PanController.cs +++ b/popcorn/Assets/MyGame/Scenes/Main/PanController.cs @@ -10,6 +10,7 @@ public class PanController : MonoBehaviour, IDragHandler, IBeginDragHandler { [SerializeField] private float lerpTime = 0.1f; private Transform cacheTransform; + private Vector3 firstPos; private Vector3 offset; private readonly (float min, float max) borderX = (-1.2f, 3.1f); private readonly (float min, float max) borderY = (-1.1f, 0.3f); @@ -26,6 +27,7 @@ public class PanController : MonoBehaviour, IDragHandler, IBeginDragHandler void Start() { cacheTransform = gameObject.transform; + firstPos = cacheTransform.position; prevPos = cacheTransform.position; deltaTime = 0.5f; direction = Vector2.left; @@ -33,30 +35,32 @@ public class PanController : MonoBehaviour, IDragHandler, IBeginDragHandler } private Vector3 target; + + private static float time = .5f; + private float freq = 1f / time; + // Update is called once per frame void Update() { // OnDragが更新されていない場合は方向をゼロにしたいがUpdateでゼロにすると使えなくなるため保留 - // if (cacheTransform.position == prevPos) - // { - // direction = Vector2.zero; - // } + if (cacheTransform.position == prevPos) + { + direction = Vector2.zero; + } - if (deltaTime >= 1f) + if (deltaTime >= 1.0f) { isMove = !isMove; deltaTime = 0f; } - if (!isMove && Mathf.Approximately(transform.position.x, target.x)) + if (isMove) { - direction = direction * -1; - target = transform.position + 1.3f * new Vector3(direction.x, direction.y, 0f); + // transform.position = firstPos + new Vector3(Mathf.Sin(2 * (float)Math.PI * freq * deltaTime) / 2, 0f); } - transform.position = Vector3.Lerp(transform.position, target, lerpTime * Time.deltaTime); - delta = cacheTransform.position - prevPos; - deltaTime += Time.deltaTime; + delta = cacheTransform.position - prevPos; prevPos = cacheTransform.position; + deltaTime += Time.deltaTime; } public void OnDrag(PointerEventData eventData)