From ba1eac239676876c979a790e71f8ae9e3f7f8612 Mon Sep 17 00:00:00 2001 From: kimura Date: Thu, 24 Jun 2021 12:31:47 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=95=E3=83=A9=E3=82=A4=E3=83=91=E3=83=B3?= =?UTF-8?q?=E5=86=85=E9=83=A8=E6=8C=99=E5=8B=95=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MyGame/Scenes/Main/PanController.cs | 26 +++++++++++-------- 1 file changed, 15 insertions(+), 11 deletions(-) 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)