//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๋ฅผ ๋ง๋ค์ด์ผํจ.
์ ๋ณด์ถ
์ ๋ณด๊ธ์ ์ถ์ฒ์ด์ง!
์์ด๊ณ ์๋ชป๋น์ถํจ. ์ ๋ณด์ถ์ง
์ด๊ฒ ์ ๊ฒฉ์ ๋ณด๊ธ์ด๋ค; ๊ฐ์ฌํฉ๋๋ค
๋ ใ ใ ์ด๊ฑฐํ ์ค๋ชฐ๋ผ์ ๊ทธ๋ฅ ์ค๋ธ์ ํธ ๋ ๋๋ฌ ๋นํ์ฑํ์์ผฐ๋๋ฐ ๊ธฐ๋ฅ์์๋ด ใ ใ ใ ใ ใ ใ
์ ๊ฑฐ ๋ง๊ณ ์ด์ ํต์ง์์ ๋ถ๋ถ๋ง ํ๋ ค๋ฉด ์์ด๋๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์ผ ๋จ ใ
์ ๊ฒ ๋ชจ๋ฐ์ผ์์ ํํ ์ฐ๋ ๋ฐฉ๋ฒ์ด๊ณ ๊ฐ๋ณ๋ค.
์ ๋ณด๊ธ์ ใ ใ
๊ฟํใณ
์ ๋ณด์ถ๋จธ๊ฒ
์ ์์ ๋๊ธ ๋์๋ ํํ ๋จ ๋๊ธ์ ๋ณธ๋ฌธ์ ๊ดํ ๋ด์ฉ์ด ์๋๊ณ
๋ฐ๋ผํด๋ณด๋๋ฐ ๋ฉํ ๋ฆฌ์ผ์ด ์ปฌ๋ฌ์์ฑ์ ์๊ฐ์ง๊ณ ์๋ค๊ณ ์๋ฌ๊ฐ๋จ๋ค์. ์คํ ๋ค๋์ ํธ๋์คํจ๋ฐํธ์ธ๋ฐ,์ฐพ์๋ณด๋ ์์ด๋๊ฐ ์ปฌ๋ฌ ์์ฑ์ ๊ฐ์ง๊ณ ์์ด์ผํ๋ค๋๊ตฐ์