根据鼠标点击位置移动物体
来源:互联网 发布:预谋dj网络歌手加快版 编辑:程序博客网 时间:2024/05/21 09:48
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;
}
}
}
}
}
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
- 根据鼠标点击位置移动物体
- Unity移动物体到鼠标点击位置
- 鼠标点击物体移动到该位置
- unity3D 实现NGUI物体朝鼠标点击位置移动
- Unity中物体如何移动到鼠标点击位置
- 鼠标点击物体互换位置
- 我的Unity(1)一点一滴 鼠标点击任意位置,物体移动到该位置。
- unity 在鼠标点击位置生成物体
- unity中根据鼠标移动旋转物体
- Unity 物体根据鼠标移动而转动
- u3d 鼠标点击位置,物体移动过去。 U3d mouse clicks position, objects move past.
- 物体向鼠标点击处移动
- 物体朝着鼠标点击的地方移动
- 鼠标针对物体的绝对拖动,点击物体移动~
- 《鼠标点击物体,物体跟随光标移动》与《鼠标按住左键不放拖拽物体》
- unity 根据鼠标的移动来旋转物体Rotate
- unity让物体移动到鼠标点击点
- Unity学习2 鼠标点击控制物体移动
- Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
- 使用hadoop_restful_api实现对集群信息的一些统计
- J2EE系列之SpringMVC学习笔记(二)--SpringMVC控制器
- MySQL查看、创建和删除索引的方法
- chmod命令基本篇
- 根据鼠标点击位置移动物体
- A fatal error occurred while trying to Sysprep the machine
- 多使用公共属性,而不是私有属性
- 官方HDFS架构设计原理说明(下)
- javascript:自定义弹窗的写法
- iOS应用架构谈 组件化方案
- linux的启动流程
- 基于SpringBoot与Mybatis实现SpringMVC Web项目
- Java解决java.io.FileNotFoundException: E:\work\work (拒绝访问。)[转]