Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PixelMovement : MonoBehaviour
- {
- protected Transform mTransform;
- protected void Awake()
- {
- mTransform = transform;
- }
- protected virtual IEnumerator MoveTo(Vector4 values)
- {
- Vector3 targetPos = new Vector3(values.x,values.y,values.z);
- float speed = values.w;
- float currX = mTransform.localPosition.x;
- float currY = mTransform.localPosition.y;
- float deltaX = Math.Sign(targetPos.x - currX);
- float deltaY = Math.Sign(targetPos.y - currY);
- while(Vector3.SqrMagnitude(targetPos-mTransform.localPosition) > 0)
- {
- currX += deltaX * speed * Time.deltaTime;
- currY += deltaY * speed * Time.deltaTime;
- Vector3 newPos = new Vector3((int)currX,(int)currY,0f);
- Vector3 currPos = mTransform.localPosition;
- if(Vector3.SqrMagnitude(targetPos-currPos) < Vector3.SqrMagnitude(newPos-currPos))
- {
- newPos = targetPos;
- }
- mTransform.localPosition = newPos;
- yield return null;
- }
- MoveToCallback();
- }
- protected virtual void MoveToCallback()
- {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement