유니티 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
'모바일 개발 > 유니티' 카테고리의 다른 글
유니티 | 텍스처와 아틀라스 (0) | 2020.03.07 |
---|---|
유니티 | 이미지와 모델링 (0) | 2020.03.07 |
유니티 | 스크립트와 리소스 최적화 (0) | 2020.03.07 |
유니티 | IAP 설정과 검증 (0) | 2020.03.07 |
유니티 | 컴포넌트 (0) | 2020.03.06 |
유니티 | 게임오브젝트와 프리팹 (0) | 2020.03.06 |
유니티 | 좌표계와 충돌 (0) | 2020.03.06 |
유니티 | 카메라 (0) | 2020.03.06 |
댓글