Unity3D实现射线使物体移动
- 作者: 疯了10
- 来源: 51数据库
- 2021-10-19
本文实例为大家分享了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; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
- C#通过fleck实现wss协议的WebSocket多人Web实时聊天(附源码)
- 团队城市未满足要求:MSBuildTools12.0_x86_Path 存在
- 使用 MSBuild.exe 在发布模式下构建 C# 解决方案
- 当我发布 Web 应用程序时,AfterPublish 脚本不运行
- 构建时 T4 转换的产品仅在下一个构建中使用
- ASP.NET Core Application (.NET Framework) for Windows x64 only error in project.assets.json
- 新的 .csproj 格式 - 如何将整个目录指定为“链接文件"到子目录?
- 如何将条件编译符号(DefineConstants)传递给 msbuild
- MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板
- NuGet 包还原找不到包,没有源
热点文章
团队城市未满足要求:MSBuildTools12.0_x86_Path 存在
0
使用 MSBuild.exe 在发布模式下构建 C# 解决方案
0
当我发布 Web 应用程序时,AfterPublish 脚本不运行
0
构建时 T4 转换的产品仅在下一个构建中使用
0
ASP.NET Core Application (.NET Framework) for Windows x64 only error in project.assets.json
0
新的 .csproj 格式 - 如何将整个目录指定为“链接文件"到子目录?
0
如何将条件编译符号(DefineConstants)传递给 msbuild
0
MSBuild 支持 Visual Studio 2017 RTM 中的 T4 模板
0
NuGet 包还原找不到包,没有源
0
使用 C# 6.0 功能运行 TFS 构建
0