案例1:Raycast测试1
- 射线小实验
整两个cube,第一个cube附上test1脚本,使得向前射出射线,侦测到第二个cube时变红↓
第四个变量,试着加上图层来玩玩:↓
save,在unity中添加Test图层,并做相应设置
满足以上两个条件,效果跟开始时一样,否则射线会无视cube(1).
第五个变量,触发器,有三种模式,collider,ignore和useGlobal,跟inspectior中勾选is trigger有关
可以根据自己需要来设置射线检测到cube(1)时是否作出反应(变红或者无视)
,
,
,
案例2:Moba放置,即时策略Raycast
作用:即时策略,方块放置等
随便开了个地形,放了个方块,这里注意的是名字Cube是空物体,Mesh才是方块,这样做的目的是让方块rotation的轴点在方块底部
Object Placer附上代码Test02↓
相机随着鼠标移动射出射线,鼠标移动到哪,方块就移动到哪里。
,
,
,
,
,
案例3:2D中的Raycast
- 射线小实验2D版本
原理跟3D没太大区别,同样是创建两个Sprite,给其中一个附上脚本Test03
效果:
虽然我也不知道为什么会变成这样(点烟。。)
最后要注意的一个点↓
2D中两个物体的前后遮挡是靠坐标轴z决定的,传入的参数最大最小深度(minDepth,maxDepth)作用是可以根据z的范围,确定射线可以交互的z范围内的物体
若目标物体z设成2,即范围之外,则射线碰不到该目标
以下为例子↓
。
。
写在最后
raycast足足学了1h左右,虽然挺简单的点,但是还是要去记,免得以后忘记了要回过头来学
EP4再继续学点新的东西