フライパン内部挙動調整

This commit is contained in:
kimura 2021-06-24 12:31:47 +09:00
parent 43282296b7
commit ba1eac2396
1 changed files with 15 additions and 11 deletions

View File

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