- 씬 전환
- 씬 전환 전 준비할 사항
- 다수의 씬이 생성되어 있어야 함
- Build Settings -> scenes in Build 에 씬들을 드래그 앤 드랍하여야 함
Application.LoadLevel("씬명");
- 현재 씬의 이름 값 가져 오기
Application.loadLevelName;
- GUI 만들기
public Texture2D icon = null; //전역변수 선언
GUI.DrawTexture(new Rect(x좌표, y좌표, x Width, y Width), icon);
- GUI 텍스트 필드 출력
GUI.Label( new Rect( x좌표, y좌표, x Width, y Width), "출력할 내용" );
- 사운드 출력
- 사운드 출력 전에 필요한 것들
- 코드로 보면 복잡하지만 다음과 같은 순서이다
- 오디오 플레이어 실행
- 플레이할 오디오 파일 지정
- Play / Stop
- 1번 : Start()에서 AudioSource 컴포넌트를 불러와 AudioSource '변수명' 에 저장.
출력할 사운드 파일을 저장할 변수 선언 AudioClip '변수명' - 2번 : clip 매써드를 사용, 출력할 사운드 파일의 변수를 지정해줌
- 3번 :원하는 위치에서 Play()매써드로 사운드를 출력
( 멈추고 싶을 떄는 Stop() 매써드 )
private AudioSource audio;
public AudioClip jumpSound;
void Start()
{
// GameObject에 <AudioSource> 컴포넌트를 추가한다.
this.audio = this.gameObject.AddComponent<AudioSource>();
// jumpSound에 저장된 소리를 내도록 준비
this.audio.clip = this.jumpSound;
//반복 재생되지 않도록 설정
this.audio.loop = false;
}
void Update()
{
this.audio.Play();
}
- 게임 오브젝트에 접근하는 방법들
transform.Find("오브젝트 이름"); // 자식이나 부모 관계 안에서만 찾음
GameObject.Find("오브젝트 이름"); // Hierarchy안에서 다 찾음
GameObject.FindWithTag("태그 이름"); // 해당하는 태그에 속하는 오브젝트 반환.
여러 개일 경우 그 중에 랜덤으로 반환
컴포넌트에 접근하는 방법
해당 오브젝트.GetComponent<컴포넌트 이름>();
- 오브젝트 활성 / 비활성화
인스턴스된 오브젝트의 active 값 변경
인스턴스된 오브젝트의 기능을 활성/ 비활성화 시키는 것 - ex) obj.active = true; ==> 활성
obj.active = false; == > 비활성 - 이미지 숨기기 / 보이게 하기
- 오브젝트 활성화 / 비활성화와 비슷할 수 있지만, 스프라이트를 생성한 상태에서 화면에서 보이지 않게만 하는 것
- 숨기기 : 이미지변수.GetComponent<spriteRenderer>().enabled = false;
- 숨기기 : 이미지변수.GetComponent<spriteRenderer>().enabled = true;
- ex)
this.img.GetComponent<spriteRenderer>().enabled = false; - 특정시간 뒤에 함수 호출하기
- waitForSeconds(number)
number시간 뒤에 해당 함수를 한번더 호출하는 함수이다. - 이 매쏘드를 사용하기 위해서는 몇가지 알아야할 매써드들이 있다.
- StartCoroutine("함수명")
- IEnumerator
- 함수를 호출할 때 StartCoroutine("함수명") 으로 호출을 해주어야 한다.
- 그리고 호출될 함수가 void형이 아닌 IEnumerator를 붙여 주어야 한다.
- 그리고 함수내에서 waitforSecond(delaytime)을 사용할 때는
- yield return new waitforSecond(delayTime)
- 다음에 실행할 코드를 넣어준다.
- 전체코드를 보면 다음과 같다.
public float delayTime = 3;
void start()
{
StartCoroutine("sceneChange");
}
IEnumerator sceneChange()
{
yield return new waitForSecond(delayTime);
Application.LoadLevel("GameScene");
}
'코딩공부 > Unity3D' 카테고리의 다른 글
[Unity3D] PlayerPrefs를 이용한 데이터 저장, 불러오기 (2) | 2015.12.24 |
---|---|
[Unity3D] c# 변수형변환 int, float, string (0) | 2015.12.19 |
[Unity3D] Attributes 설명 모음 (0) | 2015.12.12 |
펌] Unity 데이터 패스 (0) | 2015.12.10 |
[Unity3d] 에러메세지 ( 정리 중 ) (0) | 2015.12.10 |