如何将2D字符(带有动画)移至鼠标单击C#中的位置



我将开发一个名为"废物收藏"的简单游戏。屏幕的位置。当我们单击角色的左侧时,动画左路需要播放。另一方面,当我们单击字符的右侧时,动画右步行需要播放。如何单击位置在此应用程序中采用以及角色如何使点击位置动画

public class mousepos : MonoBehaviour {
private Animator anim;
 public float speed = 1.5f;
 private Vector3 target;
 void Start () {
 anim = GetComponent<Animator>();
     target = transform.position;
 }
 void Update () {
    if (Input.GetMouseButtonDown (0)) {
                    if (**Input.mousePosition.x <= 500**) { //move skeleton on X axis to the left
                            target = Camera.main.ScreenToWorldPoint (Input.mousePosition);
                            target.z = transform.position.z;
                            transform.localScale = new Vector3(1, 1, 1); 
                            anim.SetInteger ("Direction", 1);
                    } else if (Input.mousePosition.x >= 500) {
                            target = Camera.main.ScreenToWorldPoint (Input.mousePosition);
                            target.z = transform.position.z;
                            transform.localScale = new Vector3(-1, 1, 1); 
                            anim.SetInteger ("Direction", 1);
                    }
            }
     transform.position = Vector3.MoveTowards(transform.position,              target, speed * Time.deltaTime);
 }    
 }

不确定您要确切要求什么,但是类似这样的东西?

if (Input.GetMouseButtonDown (0)) {
    target = Camera.main.ScreenToWorldPoint (Input.mousePosition);
    target.z = transform.position.z;
    if(target.x > transform.position.x) transform.localScale = new Vector3(1, 1, 1); 
    else if(target.x < transform.position.x) transform.localScale = new Vector3(-1, 1, 1);
    anim.SetInteger ("Direction", 1);
 } 
 transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);

我得到了.. :)

公共类Mousepos:Monobehaviour {

    private Animator anim;
    public float speed = 1.5f;
    private Vector3 target;
    private Vector3 MousePosition;
    private Vector3 PlayerPosition;
    void Start () {
    anim = GetComponent<Animator>();

    target = transform.position;
    }
    void Update () {
            if (Input.GetMouseButtonDown (0)) {
            target = Camera.main.ScreenToWorldPoint (Input.mousePosition);
           target.z = transform.position.x;
           Debug.Log ("traaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + target.z);
           if (target.x <= target.z) {

          transform.localScale = new Vector3 (1, 1, 1); 
         anim.SetInteger ("Direction", 1);
    }
   else if (target.x >= target.z) {
                            transform.localScale = new Vector3 (-1, 1, 1); 
                            anim.SetInteger ("Direction", 1);
                    }

            }
      transform.position = Vector3.MoveTowards (transform.position, target, speed * Time.deltaTime);
    }
    }

最新更新