2024年5月6日发(作者:长孙同方)
在看此文章时请先看上面的参考文章。更多精彩请关注【狗刨学习网】
看完以上文章后,你也许会想人家都已经给出所有代码了,你还写个毛啊
别急,现在进入主题
在我的项目中,我采用的是物体遮挡作半透明处理,如果按照上述文章中的思路来写代码
的话,那么结果就是当多个物体遮挡角色时,只有第一个物体会半透明,如图:
角色被墙和屋顶遮挡住了,但是可以清楚的看见左下角的墙呈半透明状态,而屋顶依旧不
透明
为了解决这个问题,我们不采用上述文章中的 st,在这里我们需要用到
tAll;使用方法详见圣典
ok,现在我们开始敲代码
首先 ,我们引入命名空间 c,然后在声明三个需要用到的变
量
1.
using c;//引入命名
空间
2.
3.
4.
5.
6.
7.
8.
9.
public class MyCamera1 : MonoBehaviour
{
//观察目标
public Transform Target;
//上次碰撞到的物体
private List
10.
11.
//本次碰撞到的物体
12.
private List
13.
}
复制代码
我们需要发射一条射线,这条射线从角色当前位置发射置摄像机的方向
1.
2.
3.
4.
5.
6.
7.
8.
9.
/*射线可以从头部起始*/
2
3 //这里是计算射线的方向,从主角发射方向是射线机方向
4 Vector3 aim = on;
5 //得到方向
6 Vector3 ve = (on -
on).normalized;
7 float an = ngles.y;
8 aim -= an * ve;
9
10.
10 //在场景视图中可以看到这条射线
11.
11 //ne(on, aim, );
12.
12
13.
13 RaycastHit[] hit;
14.
14 hit = tAll(on, aim, 100f);//起始位
置、方向、距离
复制代码
2024年5月6日发(作者:长孙同方)
在看此文章时请先看上面的参考文章。更多精彩请关注【狗刨学习网】
看完以上文章后,你也许会想人家都已经给出所有代码了,你还写个毛啊
别急,现在进入主题
在我的项目中,我采用的是物体遮挡作半透明处理,如果按照上述文章中的思路来写代码
的话,那么结果就是当多个物体遮挡角色时,只有第一个物体会半透明,如图:
角色被墙和屋顶遮挡住了,但是可以清楚的看见左下角的墙呈半透明状态,而屋顶依旧不
透明
为了解决这个问题,我们不采用上述文章中的 st,在这里我们需要用到
tAll;使用方法详见圣典
ok,现在我们开始敲代码
首先 ,我们引入命名空间 c,然后在声明三个需要用到的变
量
1.
using c;//引入命名
空间
2.
3.
4.
5.
6.
7.
8.
9.
public class MyCamera1 : MonoBehaviour
{
//观察目标
public Transform Target;
//上次碰撞到的物体
private List
10.
11.
//本次碰撞到的物体
12.
private List
13.
}
复制代码
我们需要发射一条射线,这条射线从角色当前位置发射置摄像机的方向
1.
2.
3.
4.
5.
6.
7.
8.
9.
/*射线可以从头部起始*/
2
3 //这里是计算射线的方向,从主角发射方向是射线机方向
4 Vector3 aim = on;
5 //得到方向
6 Vector3 ve = (on -
on).normalized;
7 float an = ngles.y;
8 aim -= an * ve;
9
10.
10 //在场景视图中可以看到这条射线
11.
11 //ne(on, aim, );
12.
12
13.
13 RaycastHit[] hit;
14.
14 hit = tAll(on, aim, 100f);//起始位
置、方向、距离
复制代码