根据鼠标点击位置移动物体

using UnityEngine;
using System.Collections;
using System.Collections.Generic;


public class translateByMouse : MonoBehaviour {




    public GameObject moveObj;
    private List<Vector3> pArr;
    private int len;
    private float s;
    private float dis;
    private float speed = 3;
    private float speedX;
    private float speedY;
    private float angle;
    private bool flag;
    private Vector3 screenV;


// Use this for initialization
void Start () {
        pArr = new List<Vector3>();
        screenV = Camera.main.WorldToScreenPoint(moveObj.transform.position);
}



    void moveCount()
    {
        Vector3 p = pArr[0];
        Vector3 v = moveObj.transform.position;
        float dx = p.x - v.x;
        float dy = p.y - v.y;
        s = Mathf.Sqrt(dx * dx + dy * dy);
        angle = Mathf.Atan2(dy, dx);
        speedX = speed * Mathf.Cos(angle);
        speedY = speed * Mathf.Sin(angle);
        dis = 0;
        flag = true;
        pArr.RemoveAt(0);
    }




// Update is called once per frame
void Update () {


        if (Input.GetMouseButtonDown(0))
        {
            Vector3 dianV = Input.mousePosition;
            dianV.z = screenV.z;
            Vector3 wv = Camera.main.ScreenToWorldPoint(dianV);
            pArr.Add(wv);
            if (!flag)
            {
                moveCount();
            }        
        }




        if (flag)
        {
            moveObj.transform.Translate(Vector3.right * Time.deltaTime * speedX);
            moveObj.transform.Translate(Vector3.up * Time.deltaTime * speedY);
            dis += Time.deltaTime * speed;
            if (dis > s)
            {
                if (pArr.Count > 0)
                {
                    moveCount();             
                }
                else
                {
                    flag = false;
                }
            }
          
        }
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值