//1.์นด๋ฉ”๋ผ๋ถ€ํ„ฐ ์บ๋ฆญํ„ฐ๊นŒ์ง€ Raycast๋ฅผ ์œ๋‹ค.

// TPSCamera Component


Renderer ObstacleRenderer;

void Update()

{

.....

float Distance = Vector3.Distance(transform.position, Character.transform.position);

Vector3 Direction = ( Character.transform.position -ย transform.positionย ).normalized;

RaycastHit hit;

if(ย Physics.Raycast(transform.position,ย Directionย , out Hit, Distance) )

{

// 2.๋งž์•˜์œผ๋ฉด Renderer๋ฅผ ์–ป์–ด์˜จ๋‹ค.

ObstacleRenderer = Hit.gameObject.GetComponentInChildren<Renderer>();

if(ย ObstacleRendererย  != null )

{

// 3. Metrial์˜ Aplha๋ฅผ ๋ฐ”๊พผ๋‹ค.

Material Mat =ย ObstacleRenderer.material;

Color matColor = Mat.color;

matColor.a = 0.5f;

Mat.color = matColor;

}

}


// =>ย Ray๊ฐ€ ๋”์ด์ƒ ๋งž์ง€ ์•Š๊ฑฐ๋‚˜, ๋‹ค๋ฅธ๋ฌผ์ฒด์— ๋งž์•˜์„๊ฒฝ์šฐ Renderer ๊ต์ฒด ์ฒ˜๋ฆฌ

// => Obstacle๋“ค์˜ Renderer์˜ ๋ Œ๋”๋ชจ๋“œ๋Š” Transparent์—ฌ์•ผํ•จ.

// => Custom Shader์—์„œ๋Š” ๋ณ„๋„ ์ฒ˜๋ฆฌ๊ฐ€ ํ•„์š”ํ• ์ˆ˜ ์žˆ์Œ.

// => Terrain๋„ ๋งˆ์ฐฌ๊ฐ€์ง€, Terrain์€ ๋ถˆํˆฌ๋ช…์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด Custom Shader๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•จ.