人物和摄像机之间存在例如墙壁等的阻挡时 可以修改阻挡材质的alpha呈现半透明状
using
UnityEngine;using
System.Collections;public
class example : MonoBehaviour { void
Update() { RaycastHit[] hits; hits = Physics.RaycastAll(transform.position, transform.forward, 100.0F); int
i = 0; while
(i < hits.Length) { RaycastHit hit = hits[i]; Renderer renderer = hit.collider.renderer; if
(renderer) { renderer.material.shader = Shader.Find("Transparent/Diffuse"); renderer.material.color =
new Color(renderer.material.color.r, renderer.material.color.g, renderer.material.color.b, 0.3F); } i++; } }}
|
也可以像火炬之光那样 显示人物的透视效果

绘制被遮挡部分 ZTest Off, ZTest Greater
绘制未被遮挡部分 ZTest On, ZTest LEqual
效果

本文介绍如何在Unity中使用C#脚本实现当摄像机视线被墙体等障碍物阻挡时,这些障碍物变为半透明的效果。通过射线检测到的物体,更改其材质的shader为透明类型,并调整透明度。
4万+

被折叠的 条评论
为什么被折叠?



