Unity3D实现射线使物体移动
程序员文章站
2022-05-26 10:02:07
本文实例为大家分享了unity3d如何通过射线使物体移动的具体代码,供大家参考,具体内容如下
实现:
using system.collections;
using...
本文实例为大家分享了unity3d如何通过射线使物体移动的具体代码,供大家参考,具体内容如下
实现:
using system.collections; using system.collections.generic; using unityengine; public class raytest : monobehaviour { //设置射线在plane上的目标点target private vector3 target; // use this for initialization void start () { //初始化目标点与自身的点重合 target = transform.position; } // update is called once per frame void update () { //当点击鼠标左键的时候创建一条射线 if(input.getmousebutton(0)) { //定义射线 ray m_ray; //保存碰撞信息 raycasthit m_hit; //创建一条从摄像机发出经过屏幕上的鼠标点的一条射线 m_ray = camera.main.screenpointtoray(input.mouseposition); //判断射线是否碰撞到物体 if(physics.raycast(m_ray,out m_hit)) { //判断碰撞到的是不是plane if(m_hit.transform.name=="plane") { //把目标点target设置为m_hit.point,//并使物体要处于plane上所以y轴为0.5f target = new vector3(m_hit.point.x, 0.5f, m_hit.point.z); } } } move(target); } //移动方法 void move(vector3 target) { if (vector3.distance(transform.position, target) > 0.1f) { transform.position = vector3.lerp(transform.position, target,time.deltatime); } //如果物体的位置和目标点的位置距离小于 0.1时直接等于目标点 else transform.position = target; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: jQuery实现金额录入框
下一篇: 使用Linq注意事项避免报错的方法