์กฐ๊ณต.jpeg
์นด๋ฉ๋ผ ํฌ์ ์ขํ(Scene ์ขํ)์์ ๋ฒ์ด๋๋ฉด ์ค๋ธ์ ํธ๋ฅผ ํ๊ดดํ๋ ์ฝ๋๋ฅผ ๋ฐฐ์ฐ๋ ์ค์ธ๋ฐ์.
Vector3 worldpos = transform.position;
worldpos.z = 10;
Vector3 pos = Camera.main.WorldToScreenPoint(worldpos);
if ((pos.y < -30) || (pos.x < -30) ||( pos.xย > ์คํฌ๋ฆฐ.width + 30))
}
Destroy(gameObject);
}
if ๋ฌธ์์ pos.x < -30 ์ ๊ทธ๋ฅ ์ฐ๋๋ฐ ์ pos.x > ์คํฌ๋ฆฐ.width + 30 ๋ถ๋ถ์ ์คํฌ๋ฆฐ. width ๋ฅผ ๋ถ์ด๋ ๊ฑฐ์ฃ ??
์คํฌ๋ฆฐ.width ์์ด๋ก ์ฐ๋ฉด ๋์จ์์ ์ฌ๋ผ์ ธ์ ํ๊ธ๋ก ์ ์์.
ใ ใ ์งค๋จผ๋ฐ
์ฝ๋ ์ ๋๋ก ์ฌ๋ ค๋ผ ์๋ชป์ฌ๋ ธ๋ค
์ฝ๋ ์์ ํ์ต๋๋ค. > ๋ถํธ๋ฅผ ๋นผ๋จน์์๋ค์.
screen, width ์์ด ๋จ์ด ๋ป ์๋ฉด ์ ๋ถ์ด๋์ง ์๊ฑฐ์ผ. ์ฌ์ ์์ ์ฐพ์๋ด
ใด ๋ฐ๋์ ๊ฒฝ์ฐ์๋ ์๋ถ์ด๋๋ฐ +30์ผ๋๋ ์ ๋ถ์ด๋๊ฑด์ง ๊ถ๊ธํด์....
๊ทธ๋ฌ๋ฉด screen, width ๋ป์ ์๊ณ ์๋ค๋ ์๋ฆฌ์ง?
์คํฌ๋ฆฐ ํญ์ ๋ปํ๋๊ฒ ์๋์ง. ์ดํด๋ ฅ์ด ๋ธ๋ ค์ ๊ทธ๋ฌ๋๋ฐ ์กฐ๊ทธ๋ง ์์ธํ ์๋ ค์ฃผ์๋ฉด
1. Vector3 pos์ x, y, z ์ขํ๊ฐ์ ์ ์ฅํ์. 2. ๊ทธ๋ฆฌ๊ณ x, y ๊ฐ์ด ํ๋ฉด ๋ฐ์ผ๋ก ๋๊ฐ๋์ง if๋ฌธ์ ํตํด์ ํ์ธ 3. || ๋ OR๋ก ์กฐ๊ฑด ์ค 1๊ฐ๋ผ๋ ๋ง๋์ง ์ฒดํฌ 4. ์ฆ ํ๋ฉด ์ผ์ชฝ์ผ๋ก ๋๊ฐ๋, ์ค๋ฅธ์ชฝ์ผ๋ก ๋๊ฐ๋, ์๋ก ๋๊ฐ๋, ์๋๋ก ๋๊ฐ๋ ์ฒดํฌํจ 5. ๊ทธ๋ฐ๋ฐ ๋๊ฐ ์ ์ ์ฝ๋ ๋ณด๋ฉด ์๊ฒ ์ง๋ง y๋ 1๋ฒ๋ง ์ฒดํฌํ์ง? ์ฆ ํ๋ฉด ์๋๋ก ๋๊ฐ ๊ฒ์ ์ฒดํฌํ๋๋ฐ ์๋ก ๋๊ฐ ๊ฒ์ ์ฒดํฌ ์ ํ๋ค
screen.width๋ ๋ง๊ทธ๋๋ก ํ๋ฉด ํญ์ด๋ค. ๊ทธ๋ฌ๋๊น ํ๋ฉด ์ผ์ชฝ์ 0์ด๊ณ ํ๋ฉด ์ค๋ฅธ์ชฝ์ ํ๋ฉด ํญ์ ์ฌ์ฉํด์ผ ํ๋๊น screen.width๋ฅผ ์ฌ์ฉํ ๊ฒ์ด์ง
๊ทธ๋ฆฌ๊ณ ์ฝ๋ ๋ณด๋ฉด 30 ์ด๋ผ๋ ์ซ์ ๋ค์ด๊ฐ ์ด์ ๋ ์๋ง๋ ํ๊ดดํ๋ ค๊ณ ํ๋ ์ค๋ธ์ ํธ ํฌ๊ธฐ ๋๋ฌธ์ ๋ค์ด๊ฐ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฌ๋๊น pos.x < 0> screen.width ํ๋ ๊ฒ๋ณด๋ค ์ค๋ธ์ ํธ ํฌ๊ธฐ ๊ณ ๋ คํด์ ์ข์ฐ๋ก ๊ฐ๊ฐ 30์ฉ ๋ ๋๊ฒ ์ฒดํฌํ ๊ฒ์ด์ง
์๋ก ๋๊ฐ ๊ฒ ๊น์ง ์ฒดํฌํ๋ ค๋ฉด if๋ฌธ ์กฐ๊ฑด์ || (pos.y < screen.height + 30) ๋ ์ถ๊ฐํด๋ผ
ํ์ ํ ์ง๋ฌธ์ ์๊ฐ๋ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค;; ์คํฌ๋ฆฐ ์ขํ๋ก ๋ณํํด๋๊ณ ์คํฌ๋ฆฐ ์ขํ๋ฅผ ์ธ์ง๋ชปํ๊ณ ์์๋ค๋ ์กด๋ ๋ถ๋๋ฝ๋ค์;;
๊ฐ๋ก ์ขํ๊ฐ 0๋ถํฐ width ๊น์ง๋๊น 0-30 ๋ณด๋ค ์๊ฑฐ๋ width+30๋ณด๋ค x์ขํ๊ฐ ํฌ๋ฉด ํ๊ดดํ๋ผ๋๊ฑฐ์
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค. ๊ฐ๋จํ๊ฑฐ์๋๋ฐ ์ด๊ฑธ ์ดํด๋ชปํ๋ค๋...์ผ;;
Renderer์๋ฌด๊ฑฐ๋ ๋ถ์ด์์ผ๋ฉด isVisible == false ์ผ๋ destroyํ๋ ๋ฐฉ๋ฒ์ ์ด๋ฐ?
์ค ๊ทธ๋ฐ ๋ฐฉ๋ฒ๋ ์กด์ฌํ๊ตฐ์. ๋ณํ์ด๋ ์์น ๊ฐ์๊ฑฐ ์๊ฐํ ๊ฒ๋ ์์ด ๋น๊ต๋ ์๋ ์ ๋๋ก ๊ฐ๊ฒฐํ๋ค์;; ์กฐ์ธ ๊ณ ๋ง์ต๋๋ค.
OnBecameInvisible()์ด๋ผ๋ ํจ์๋ ์๋ค์
์ฐพ์๋ณด๋ onBecameVisible(), onBecameInVisible() ์ธํธ๋ก ์๋๋ฐ ์ด๊ฑฐ ์ ํ์ฉํ๋ฉด ์ฌ๋ฌ๊ตฐ๋ฐ ์จ๋จน์์ ์์ ๊ฒ๊ฐ๋ค์. ์ข์ ์ ๋ณด ๊ฐ์ฌํฉ๋๋ค. ์ ๋ํฐ ์ฑ ๋ง 3๊ถ์งธ ๋๋ด๊ฐ๋ ์ค์ธ๋ฐ ์์ isVisible์ด๋ผ๋๊ฐ ๋ณธ์ ๋ ์๋๋ฐ.. ์ด๋ณด๋ค์ด ์ฐ๋ ์ฝ๋์๋ ๋ ๋ค๋ฅธ ์ธ์์ด๊ตฐ์.
๊ทธ๋ฅ ์ด๋ฒคํธํจ์๋ก๋ ์์๊ฑธ? ์ด๋ฆ์ด ๊ธฐ์ต์๋๋ค
๋ง์ํ์๋ ค๋๊ฒ onBecameVisible(), onBecameInVisible() ์ด๊ฑฐ ์ธ๊ฒ ๊ฐ๋ค์. ์ฐพ์๋ณด๋ ์ด๋ฒคํธ ํจ์๋ผ๊ณ ์จ์ ธ์๋ค์.