유니티 스크립트 14

코루틴(Coroutine)

using UnityEngine;using System.Collections;public class Example : MonoBehaviour{ void Start() { // 코루틴 시작 StartCoroutine(MyCoroutine()); } IEnumerator MyCoroutine() { // 2초 동안 기다림 yield return new WaitForSeconds(2f); //2초 후에 실행될 코드 Debug.Log("2초 후 작업 실행"); } //코루틴 정지 StopCoroutine(MyCoroutine) //이 스크립트에서 실행되는 모든 코루틴 정지 StopAllMyCoroutine();} 코루..

델리게이트 실제 사용

//델리게이트 선언 public delegate void PlayerDieHandler(); //이벤트 선언 public static event PlayerDieHandler OnPlayerDie;이벤트를 정의하려면 델리게이트를 이용해 이벤트 함수의 원형을 선언해야 된다이때 이벤트는 언제 호출될지 모르기 때문에 정적(static)키워드를 사용해 서언해야 된다OnPlayerDie는 이벤트명이라고 하지만 변수의 일종이며 PlayerDieHandler은 ONPlayerDie변수의 타입일 뿐인이다  //스크립트가 활성화 될때마다 호출되는 함수 void OnEnable() { //이벤트 발생 시 수행할 함수 연결 PlayerCtrl.OnPlayerDie += this.On..

오브젝트를 포착하고 안의 함수를 호출(실행)

void PlayerDie() { Debug.Log("Player Die !"); //MONSTER 태그를 가진 모든 게임오브젝트를 찾아옴 GameObject[] monsters = GameObject.FindGameObjectsWithTag("MONSTER"); //모든 몬스터의 OnPlayerDie 함수를 순차적으로 호출 foreach(GameObject monster in monsters) { monster.SendMessage("OnPlayerDie", SendMessageOptions.DontRequireReceiver); } }위 코드는 유니티 엔진 내부에 MONSTER의 태그를 가진 오브젝트를 포착한 뒤안의 스크립트에서 OnPl..

Resources 폴더에서 프리팹 사용

변수로 프리팹을 지정해야 됨void Start에 있는 프리팹 로드강좌에서는 혈흔 효과였으므로 피가 튈 곳을 지정해줘야 한다 혈흔 효과 재생하는 함수 만약 하위 폴더 안에 있다면 이 예시 처럼 추가 작성을 해줘야함\Resources/Prefabs/Monster 처럼 되이 있다면Resources.Load("Prefabs/Monster");Resources/Sounds/gunFire 처럼 되어 있다면Resources.Load("Sounds/gunFire");