본문 바로가기
모바일 개발/유니티

유니티 | 클래스

by KISCH 2020. 3. 7.
반응형

유니티 API, C# API, 유니티 엔진 API 등 유니티 관련 클래스들을 살펴볼까요?

 

 

유니티 API + Class

UnityEditor API

UnityEngine API

⊢ Object 클래스

 GameObject 클래스 : UnityEngine.Object

 MonoBehaviour 클래스

 Rigidbody / Rigidbody2D 클래스

 Transform 클래스

∟ Vector3 클래스

 

UnityEngine.Advertisements

UnityEngine.Audio

UnityEngine.Events

∟ Public Function

AddListener : 비 지속성의 리스너를 추가

UnityEngine.IOS

UnityEngine.Purchasing

UnityEngine.UI

Other API

 

 

유니티클래스

 

 

 

C# API + Class


 

.NET API

∟ System namespace

 

기타

SimpleJSON namekspace

 

Unity Engine API 클래스는 다음 글을 참고해 주세요.

 

관련포스트

 

 

UnityEngine API - 

Date 관련

PlayerPrefs : 유니티 데이타 로컬 저장

1. set, get

2, PlayerPrefs.DeleteAll() : 모든 키 값과 데이터 삭제

3. PlayerPrefs.DeleteKey(string key) : 저장된 키값과 데이터 삭제

4. PlayerPrefs.HasKey(string key) : key값 존재

 

 

UnityEngine API - 

Sprite 

알파값 변경

Color c = obj.GetComponent<Renderer>().material.color;

c.a = 1f;

obj.GetComponent<Renderer>().material.color = c;

 

스프라이트 변경

obj.GetComponent<UISprite>().spriteName = "...";

makepixelperfect : 고정된 논리 해상도

 

 

기타 클래스


 

Resources.Load : 해당 경로에 저장 된 에셋 로드

 

Invoke : 지정된 시간에 함수 호출

∟ Cancelinvoke : invoke 함수 취소

 

Random : Random.range(5, 10)

 

Debug.Log() : 로그 찍기

 

OnCollisionEnter2D(Collision2d collision) : 충돌

 

Application 클래스

1. .LoadLevel(Application.loadedLevelName) : 화면이 넘어가는 함수(현재 로드된 씬으로)

2. .LoadLevelAdditive : 씬을 추가해 로드

3. .LoadLevelAdditiveAsync : 비동기 방식 백그라운드로 씬을 추가해 로드

4. .LoadLevelAsync : 비동기 방식으로 씬을 로드

 

 

Net API - System.IO 네임스페이스


 

파일과 디렉토리 처리에 필요한 다양한 클래스 정의

mscorlib.dll 파일 안에 포함

 

주요 클래스

Binary/Write/Reader

BufferedStream

Directory/DirectoryInfo/File/FileInfo

FileStream

MemoryStream

StreamWriter/Reader

 

프로젝트 스크립팅은 hierarchy 창의 게임 오브젝트와 연결되어야 한다.

-> 터치로 캐릭터 이동 구현 시 캐릭터 게임 오브젝트와 연결(드래그 & 드랍)

 

같은 public 변수일 경우 스크립트에 변수값보다 인스펙터에 넣은 값이 우선시 됨 (메타파일 형태로 저장되므로)

-> public변수의 초기값을 수정했을 때 반드시 인스펙터에서 조작하거나, 직접 유니티 에디터로 값을 수정

 

public변수를 따로따로 초기화하는 방법

-> 인스펙터에 Reset버튼으로 초기화 시 모든 Public변수가 초기화 : [System.NonSerialized] public ...

 

 

싱글톤


 

디자인 패턴 

인스턴스에 static 걸고, DontDestroyOnLoad()

 

 

네트워크


 

WWW

웹 페이지에 간단히 접근

url의 컨텐츠를 받아 오기 위한 작은 유틸리티 모듈

 

변수

error : 다운로드 중 오류 발생. 메시지 반환

isDone : 

다운로드가 완료 되었는지 확인, yield 구문으로 다운로드 완료될 때까지 대기

text : 웹 페이지에서 가져온 컨텐츠를 문자열로 반환

url : 현재의 WWW 클래스가 요청하는 URL

 

 

Coroutine


 

서브루틴 : 메인루틴의 반복적인 처리 절차를 수행하기 위해 만든 별도의 함수. 호출 지점으로 돌아감

코루틴 : StartCoroutine(메서드명);

 

public IEnumerator Wait() {

float wait_Time = Random.Range(0.5f, 4.5f); // 랜덤으로 시간 결정

yield return new WaitForSeconds(wait_Time); // 시간만큼 기다려

Method();                                                           // 메서드 실행

}

 

A.     Yield return null : 다음 프레임까지 대기

B.     Yield return new WaitForSeconds(flat) : 지정된 초(float) 만큼 대기

C.     Yield return new WaitForFixedUpdate() : 다음 물리 프레임까지 대기

D.     Yield return new WaitForEndOfFrame() : 모든 렌더링 작업이 끝날 때 까지 대기. 코루틴 끝날때까지

E.     Yield return StartCoroutine(string) : 다른 코루틴이 끝날 때 까지 대기

F.      Yield return new WWW(string) : 웹 통신 작업이 끝날 때까지 대기

G.     Yield return new AsyncOperation : 비동기 작업이 끝날 때 까지 대기 (씬로딩)

Yield break : 코루틴 종료. 이후의 루틴은 무시

 

 

OnTriggerEnter (충돌체크. 멈춤)

void OnTriggerEnter(Collide Get) { // Get된 오브젝트와 충돌이 일어날 때마다

if(Get.Collider.tag == 'box') {

_time_text = time.Tostring(); // 화면 출력은 스트링 타입으로

End = true

}

}

 

void update {

if (End == true) {

// 멈춰

}

}

 

 

transform 클래스 관련 메서드 (오브젝트)


 

1. transform.Tranlate(Vector3.left * 1.7f * Time.deltaTime) : 방향 * 속도 * 전프레임과 현재프레임 시간 간격

2. this.transform.rotation

 

 

배경 이동


 

1. 배경 움직이는 메서드

2. 화면 왼쪽 끝까지 움직이면 제거하는 메서드

3. 화면 오른쪽에서 새로 생성하는 메서드

 

 

자석효과


 

LookAt, lerp

 

 

 

 

 

반응형

댓글