半透明面片或墙壁的实现

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++;  
 }  
}
 
 
unity3d 半透明面片或墙壁的实现 - 重庆unity3d - unity3d工作室
 
绘制被遮挡部分 ZTest Off, ZTest Greater 绘制未被遮挡部分 ZTest On, ZTest LEqual 效果
 
unity3d 半透明面片或墙壁的实现 - 重庆unity3d - unity3d工作室

你可能感兴趣的:(实现)