๐ŸŽฅ์œ ๋‹ˆํ‹ฐ ์‹œ๋„ค๋จธ์‹  ์นด๋ฉ”๋ผ ์ „ํ™˜ ๊ด€๋ จ ํŒ : ํƒ€์ž„๋ผ์ธ์„ ์‚ฌ์šฉํ•˜์ž

Se0ng_1lยท2022๋…„ 10์›” 5์ผ
0

์ผ์ƒ Unity

๋ชฉ๋ก ๋ณด๊ธฐ
6/9

๋ฏธ๋ฆฌ๋ณด๊ธฐ

๋ฌธ์ œ

Dolly Track๊ณผ Clear Shot์œผ๋กœ ์นด๋ฉ”๋ผ๋ฅผ ๊ตฌํ˜„ํ•˜๋‹ค ๋ณด๋ฉด ์ข…์ข… ๊ฐ€์ƒ ์นด๋ฉ”๋ผ๋“ค์˜ ์ „ํ™˜์ด ๋š๋š ๋Š๊ธฐ๋ฉฐ ์ „ํ™˜๋˜๊ฑฐ๋‚˜ ํ•˜๋Š” ๊ฒฝํ—˜์„ ํ•ด๋ดค์„ ๊ฒƒ์ด๋‹ค.
์ด๋•Œ Timeline์„ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค.

ํ•ด๊ฒฐ

์„ค๋ช…

  1. ํƒ€์ž„๋ผ์ธ์„ ์ผ์„๋•Œ ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๊ตณ์ด ์ „ํ™˜ํ•˜๋Š” ์‹œ๊ฐ„์„ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์•„๋„ Signal์„ ๋งŒ๋“ค์–ด ์ด์ „ ์˜์—ญ์˜ ๊ฐ€์ƒ ์นด๋ฉ”๋ผ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  ๋‹ค์Œ ์˜์—ญ์˜ ๊ฐ€์ƒ ์นด๋ฉ”๋ผ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” ์‹œ๊ทธ๋„์„ ๋งŒ๋“ ๋‹ค.
  2. ์บ๋ฆญํ„ฐ์™€ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ํ†ตํ•ด ํƒ€์ž„๋ผ์ธ์„ ์žฌ์ƒ์‹œํ‚ฌ ์˜ค๋ธŒ์ ํŠธ์™€ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  3. ์บ๋ฆญํ„ฐ๊ฐ€ ํ•ด๋‹น ์˜์—ญ์— ๋“ค์–ด๊ฐ€๋ฉด ๋ถ€๋“œ๋Ÿฝ๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์นด๋ฉ”๋ผ ์ „ํ™˜์ด ์ด๋ฃจ์–ด์ง„๋‹ค.

์ฝ”๋“œ

๐Ÿฅน๋Œ€๋žต์ ์ธ ํ˜•ํƒœ๋Š” ์ด๋ ‡์Šต๋‹ˆ๋‹ค.

	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;
        }
    }

๊ฒฐ๊ณผ

profile
์น˜ํƒ€๊ฐ€ ๋˜๊ณ  ์‹ถ์€ ์ทจ์ค€์ƒ

0๊ฐœ์˜ ๋Œ“๊ธ€