using UnityEngine;
using System.Collections;
using System.Collections.Generic;
/// <summary>
/// 脚本功能:当人物主角被障碍物遮挡的时候(从摄像机视角看去),使障碍物半透明化,当主角可见时,恢复障碍物透明度
/// 脚本位置:MainCamera 或者任意一个可以始终存在的游戏对象身上即可
/// 创建时间:2015年12月29日
/// 障碍物Shader使用的是Unity内置的Standard
/// Rendering Mode选择Transparent模式
/// </summary>
public class Obstacle2transparente : MonoBehaviour {
// 所有障碍物的Renderer数组
private List<Renderer> _ObstacleCollider;
// 人物主角(之后通过名字识别?还是tag?目前手动拖过来)
public GameObject _target;
// 临时接收,用于存储
private Renderer _tempRenderer;
void Start()
{
_ObstacleCollider = new List<Renderer>();
}
void Update()
{
// 调试使用:红色射线,仅Scene场景可见
#if UNITY_EDITOR
Debug.DrawLine(_target.transform.position, transform.position, Color.red);
#endif
RaycastHit[] hit;
【Unity】当人物主角被障碍物遮挡后,将障碍物半透明化
最新推荐文章于 2024-07-18 16:40:33 发布
该Unity脚本实现当主角被障碍物遮挡时,从摄像机视角看障碍物会自动变为半透明。适用于使用Unity内置Standard Shader且Rendering Mode为Transparent的障碍物。脚本挂载在MainCamera或持久存在对象上,通过Raycast检测主角与障碍物的碰撞,动态调整障碍物的透明度。
摘要由CSDN通过智能技术生成