您的位置:首页 > 其它

红外瞄准器

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: