【Unity3d】火炬之光的X射线效果
人物和摄像机之间存在例如墙壁等的阻挡时 可以修改阻挡材质的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
效果