728x90
this 키워드
메모리는 저장되는 주소, 변수는 그 주소를 한 번에 볼 수 있는 이름의 개념으로 생각하면 된다.
예) 서울역(변수), 서울시 중구 한강대로 405(메모리)
Class는 Heap 영역, 함수는 Code 영역(함수만 들어가 있는 table이 있어 호출하는 개념), 변수는 Stack영역에 저장
obj a = new obj() 객체를 생성하면 heap 메모리 공간에 할당한다.
Gameobject obj = new GameObject();
- GameOjbect : 클래스
- obj : 변수
- new GameObject() : 생성자 함수(객체를 생성해주는 함수, heap 메모리 공간 할당)
this는 함수와 변수 등이 저장되어 있는 메모리 영역에 관련한 이슈, C/C++ 참고
GameObject Player;
// Translate() 파라미터는 없지만 시스템 상에는 player가 들어가 있다
player.Translate()
player.Traslate(player);
// Translate() 라고 쓰지만 시스템 상에는 파라미터에 (GameObject this)가 들어가 있기 때문에
// this 키워드를 사용해 호출해준다.
Translate(GameObject this)
{
this.transform.position ~;
}
void A (TestA this)
{
this. ~ ;
}
이벤트 함수 차이
충돌과 관련된 필수 컴포넌트 : Collider & Rigidbody
isKinemataic 체크 -> 물리 적용 x / isKinematic 체크 해제 -> 물리 적용
- OnCollsionEnter()를 사용하는 경우는 물리적 충돌이 발생했을 때 이벤트가 발생하는 함수
- OnTriggerEnter()를 사용하는 경우는 물리적 충돌이 발생하지 않았을 때 이벤트가 발생하는 함수
(예 : 화면 밖으로 나가는 Bullet을 인식하여 파괴하는 DestroyZone)
728x90
'게임 프로그래밍 > 유니티 프로젝트' 카테고리의 다른 글
[유니티/C#] Get/Set 프로퍼티와 객체지향 캡슐화 (0) | 2022.09.27 |
---|---|
[Unity Error] 유니티 == 비교 연산자와 관련된 랜덤 버그 발생 원인과 방어코드 사용한 해결 방법 (0) | 2022.09.27 |
[유니티/C#]배열과 리스트를 사용한 오브젝트 풀링, 가비지 콜렉팅을 통한 메모리 최적화 (0) | 2022.09.26 |
[Unity] 클래스 상속을 이용한 CameraShake 구현(Random, Sine, Animation) (0) | 2022.08.18 |
[Unity] 애니메이션 이벤트 함수 설정 및 애니메이션 커스터마이징 팁 (0) | 2022.08.10 |