Dolly Track๊ณผ Clear Shot์ผ๋ก ์นด๋ฉ๋ผ๋ฅผ ๊ตฌํํ๋ค ๋ณด๋ฉด ์ข ์ข ๊ฐ์ ์นด๋ฉ๋ผ๋ค์ ์ ํ์ด ๋๋ ๋๊ธฐ๋ฉฐ ์ ํ๋๊ฑฐ๋ ํ๋ ๊ฒฝํ์ ํด๋ดค์ ๊ฒ์ด๋ค.
์ด๋ Timeline์ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
์ค๋ช
- ํ์๋ผ์ธ์ ์ผ์๋ ์ ์ฌ์ง๊ณผ ๊ฐ์ด ๊ตณ์ด ์ ํํ๋ ์๊ฐ์ ์ง์ ํด์ฃผ์ง ์์๋ Signal์ ๋ง๋ค์ด ์ด์ ์์ญ์ ๊ฐ์ ์นด๋ฉ๋ผ ์ค๋ธ์ ํธ๋ฅผ ๋นํ์ฑํํ๊ณ ๋ค์ ์์ญ์ ๊ฐ์ ์นด๋ฉ๋ผ ์ค๋ธ์ ํธ๋ฅผ ํ์ฑํํ๋ ์๊ทธ๋์ ๋ง๋ ๋ค.
- ์บ๋ฆญํฐ์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ํตํด ํ์๋ผ์ธ์ ์ฌ์์ํฌ ์ค๋ธ์ ํธ์ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
- ์บ๋ฆญํฐ๊ฐ ํด๋น ์์ญ์ ๋ค์ด๊ฐ๋ฉด ๋ถ๋๋ฝ๊ณ ์์ฐ์ค๋ฝ๊ฒ ์นด๋ฉ๋ผ ์ ํ์ด ์ด๋ฃจ์ด์ง๋ค.
public PlayableDirector A; // ์ด์ ์์ญ ์ฌ์์์ผ์ฃผ๋ PlayableDirector
public PlayableDirector B; // ๋ค์ ์์ญ ์ฌ์์์ผ์ฃผ๋ PlayableDirector
public TimelineAsset ATimeLine; // A ํ์๋ผ์ธ ํ์ผ
public TimelineAsset BTimeLine; // B ํ์๋ผ์ธ ํ์ผ
// ์๋ค๊ฐ๋ค ํ๋ ์ํฉ์ ์ํ bool ๋ณ์๋ค
private bool isAPlayed;
private bool isBPlayed;
private void OnTriggerEnter(Collider other)
{
if (other.tag == "Player" && isAPlayed == false)
{
A.Play(ATimelines);
ATimeLine = true;
BTimeLine = false;
}
}
private void OnTriggerExit(Collider other)
{
if (other.tag == "Player" && isBPlayed == false)
{
B.Play(BTimelines);
isAPlayed = false;
isBPlayed = true;
}
}