Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class MoveCommand : CharacterCommand
- {
- private const float MIN_DISTANCE = 0.1f;
- /// <summary>
- /// assume that character's move speed = 2 m/s
- /// </summary>
- private const float SPEED = 2f;
- public Vector2 targetPos { get; private set; }
- private Animator anim;
- private Transform transform;
- public MoveCommand(GameObject owner, Vector2 targetPos) : base(owner)
- {
- this.targetPos = targetPos;
- anim = owner.GetComponent<Animator>();
- transform = owner.transform;
- }
- public override IEnumerator Excecute()
- {
- if (anim == null)
- yield break;
- //TODO: Play anim Move here.
- while (Vector2.Distance(transform.position, targetPos) > MIN_DISTANCE)
- {
- Vector2 direction = (targetPos - new Vector2(transform.position.x, transform.position.y)).normalized;
- owner.transform.Translate(direction * SPEED * Time.deltaTime);
- yield return null;
- }
- Debug.Log("MoveFinish");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement