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

유니티 | 클래스

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

 

 

 

 

 

반응형

댓글

KISCH님의
글이 좋았다면 응원을 보내주세요!