Unity学习2 鼠标点击控制物体移动
来源:互联网 发布:儿童医院在线咨询网络 编辑:程序博客网 时间:2024/05/19 17:27
http://blog.csdn.net/rose_girls/article/details/48951231
//关于Ray / RayCastHit / RayCast的解析
以下为鼠标点击控制物体移动的代码
using UnityEngine;
using System.Collections;
public class Pathfinding1 : MonoBehaviour {
public GameObject play;//定义物体
public Vector3 temPos;//定义矢量
public bool isMoving;//判断是否正在移动
public Quaternion rotation;//控制物体旋转
// Use this for initialization
void Start () {
play=GameObject.Find("Cube");//寻找物体
print (play);
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown (1))//判断是否按下鼠标右键
{
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);//从摄像机发射出一条射线
RaycastHit hit;//用于储存射线的位置信息
if(Physics.Raycast(ray,out hit,100))
{
print(hit.collider.name);
if(hit.collider.gameObject.name=="Plane")
{
Debug.Log(hit.point);//调试输出point的点
temPos=new Vector3(hit.point.x,play.transform.position.y,hit.point.z);//定义矢量方向
if(Vector3.Distance(play.transform.position,temPos)>0.1)//如果物体不在点上面,则进行移动
{
isMoving=true;
}
}
}
}
if (isMoving)
{
turn(temPos);//调用turn方法 旋转物体方向
this.GetComponent<CharacterController>().SimpleMove((temPos-play.transform.position).normalized*5f);
}
}
void turn(Vector3 look)
{
rotation = Quaternion.LookRotation (temPos - play.transform.position, Vector3.up);
play.transform.rotation = Quaternion.Slerp (play.transform.rotation, rotation, Time.deltaTime * 6f);
}
}
//基本的原理为
1.从摄像机中发射出一条射线,射到地面
2.找到射线与地面相交的点(point)
3.旋转物体,利用角色控制器(CharacterContreller)移动至那个点
2017-9-5
- Unity学习2 鼠标点击控制物体移动
- Unity鼠标控制物体360°旋转和点击移动
- Unity移动物体到鼠标点击位置
- Unity用鼠标控制物体移动
- Unity鼠标点击地面控制人物移动
- 鼠标控制物体移动
- unity让物体移动到鼠标点击点
- Unity中物体如何移动到鼠标点击位置
- Unity学习1 控制物体移动
- Unity 物体跟随鼠标点击移动,判断物体是否在移动
- unity 鼠标拖动物体移动
- 【Unity】物体跟随鼠标移动
- unity让物体鼠标平滑移动物体
- 【Unity 3D学习】鼠标点击控制人物移动到目标位置
- Unity中鼠标点击地面控制人物移动
- Unity中鼠标点击地面控制人物移动
- unity学习笔记(一)键盘控制物体移动
- Unity 鼠标点击屏幕创建物体
- 576. Out of Boundary Paths
- 638. Shopping Offers 深度优先遍历、递归、存储技术(基于递归的动态规划)
- oracle触发器分类
- redis的自启设置
- DFS(深度搜索)——基于回溯法和递归
- Unity学习2 鼠标点击控制物体移动
- C++语法基础之关键字与标识符(10月4日暂存)
- 295. Find Median from Data Stream 剑指offer 数据流中的中位数
- 42. Trapping Rain Water 及类似题目 407. Trapping Rain Water II 11. Container With Most Water
- linux内核--资源管理
- 162. Find Peak Element 一次遍历或二分查找
- 【python】100行代码python爬虫程序,抓取网站图片存储本地(附:中文链接解决)
- curl windows下编译lib
- jenkins加docker自动化部署