红外瞄准器
2016-01-19 12:34
351 查看
红外瞄准器
最近在研究unity自带的demo “AngryBots”,把里面的红外瞄准分离出来做了个小demo。
其中主要用到了两个知识点,RaycastHit和LineRenderer。从枪口处发射射线,然后根据射线的起点和碰撞点设置LineRenderer的起点和碰撞点设置那条线来模拟红外线瞄准。
1、hitInfo
= new RaycastHit();
Physics.Raycast(tr.position,tr.forward,out
hitInfo);
返回射线的碰撞信息
2、function
SetPosition(int index,Vector3 position)
设置线的位置,这里只要控制两个点就可以了,起点index为0,终点1.
以上两个知识点不做详细介绍,想详细了解的可以去查文档
下面还是以脚本加注释的方法介绍
pointerCtrl.cs
复制代码
PreFrameRaycast.cs //这个脚本的主要用处就是每帧发射射线,并获取碰撞信
息
复制代码
创建一个空物体,然后把上边的两个脚本挂上去,还需要AngryBots里面的shader文件,给这个空物体加上Line
Renderer组件,创建一个material,使用前面说道的shader文件,然后把texture拖到指定的位置,
在创建一个片面,命名为“LaserDot”这个就是光线碰到物体后的小红点,同样需要上面的shader,同样新建一个material放在指定位置,
到此,在场景中添加一些物体,运行,如果光线碰到物体就会出现一个小红点,否则就没有,哇哈哈,想要的效果就出来了
圣典论坛上可以下载工程文件
http://game.ceeger.com/forum/read.php?tid=9876&fid=2
最近在研究unity自带的demo “AngryBots”,把里面的红外瞄准分离出来做了个小demo。
其中主要用到了两个知识点,RaycastHit和LineRenderer。从枪口处发射射线,然后根据射线的起点和碰撞点设置LineRenderer的起点和碰撞点设置那条线来模拟红外线瞄准。
1、hitInfo
= new RaycastHit();
Physics.Raycast(tr.position,tr.forward,out
hitInfo);
返回射线的碰撞信息
2、function
SetPosition(int index,Vector3 position)
设置线的位置,这里只要控制两个点就可以了,起点index为0,终点1.
以上两个知识点不做详细介绍,想详细了解的可以去查文档
下面还是以脚本加注释的方法介绍
pointerCtrl.cs
复制代码
息
复制代码
Renderer组件,创建一个material,使用前面说道的shader文件,然后把texture拖到指定的位置,
在创建一个片面,命名为“LaserDot”这个就是光线碰到物体后的小红点,同样需要上面的shader,同样新建一个material放在指定位置,
到此,在场景中添加一些物体,运行,如果光线碰到物体就会出现一个小红点,否则就没有,哇哈哈,想要的效果就出来了
圣典论坛上可以下载工程文件
http://game.ceeger.com/forum/read.php?tid=9876&fid=2
相关文章推荐
- Android:Moring-早安闹钟开发过程记录(三)
- 二叉树
- HDU 3864 D_num Miller Rabin 质数推断+Pollard Rho大整数分解
- CodeForces 614D Skills
- Linux下Java进程占用CPU超较高原因分析
- Android注解学习(2)
- win7 Host文件修改后无效的解决办法
- Java学习第3天:for循环
- Leetcode- 1. Two Sum
- Android:图像切换器imageSwitcher的实例应用
- CodeForces 614C Peter and Snow Blower
- zookeeper 安装
- DNS预获取(dns-prefetch)
- 数据库录----sql获取第一条数据top用法简述
- Reporting Service Url传递参数应用
- CodeForces 614B Gena's Code
- CodeForces 614A Link/Cut Tree
- 逆序排列
- hihocoder #1175 : 拓扑排序·二
- scrollTop,scrollWidth,offsetWidth,clientWidth区别