분류 전체보기
[Swift] Class와 Inheritance(상속)
Inheritance A parent class = 'Superclass' A child class = 'Subclass' 슈퍼 클래스 없이 정의한 클래스 = 'Base class' class Bicycle: Vehicle { var hasBasket = false } let bicycle = Bicycle() bicycle.hasBasket = true Override property와 method는 오버라이드 할 수 있다. 원래 있던 속성에 올라타서 바꿀 수 있음. 함수 이름 옆에 override 키워드를 붙이면 사용 가능. class Train: Vehicle{ override func makeNoice(){ print("Choo Choo!") } } Reference class Person{ le..
[Unity] Player 방향키로 움직이기 / Animation 설정
Unity를 익히는 전공 수업인 3D스크립트프로그래밍의 팀 프로젝트로 진행한 KATNIP - Astro Cat에서 구현했던 것들을 정리해보려고 한다. Unity를 또 언제 쓸지는 모르지만 까먹기에는 아까운 프로젝트이다. 게임의 기본인 플레이어의 조작법을 구현하겠다. 방향키로 움직이고, 스페이스 바를 누르면 Jump하는 Player를 구현하는 것이 목표! Player의 애니메이션을 컨트롤하기 위해 Animator Controller를 추가해준다. Unity Asset을 구매하면, 엄청나게 많은 애니메이션이 들어있을 텐데 그 중 사용할 애니메이션만 복붙해서 넣어주었다. Walk 애니메이션은 isWalk 파라미터를, Jump 애니메이션은 doJump 파라미터를 이용한다. 기본 모션인 idleA 애니메이션은 E..
[Unity] Update()
Update() Update()는 화면이 한번 갱신될 때마다 실행. 즉, 마지막 Update()가 실행 된 시점과 현재 Update()가 실행된 시점 사이의 시간 간격이 프레임이 새로 그려지는 데 걸리는 시간이다. Time.deltaTIme Update() 실행 사이의 시간 간격을 알고 싶을 때 사용. 초당 프레임은 컴퓨터 성능에 따라 다르다. Instantiate() 실시간으로 오브젝트를 생성할 때 사용 Instantiate(원본Object, transform.position, transform.rotation);
[Unity] 오브젝트 간 충돌 처리
충돌 이벤트 메서드 OnCollision 계열: 일반 충돌 일반적인 콜라이더를 가진 두 게임 오브젝트가 충돌할 때 자동으로 실행. 충돌한 두 콜라이더는 서로 통과하지 않고 밀어냄. - OnCollsionEnter(Collision collsion): 충돌한 순간 - OnCollisionStay(Collision collision): 충돌하는 동안 - OnCollisionExit(Collision collision): 충돌했다가 분리되는 순간 OnTrigger 계열: 트리거 충돌 충돌한 두 게임 오브젝트의 콜라이더 중 최소 하나가 트리거 콜라이더라면 자동으로 실행 이 경우 두 게임 오브젝트가 충돌했을 때 서로 그대로 통과 - OnTriggerEnter(Collider collsion): 충돌한 순간 - O..
[Unity] Rigidbody의 AddForce()와 velocity
Rigidbody의 AddForce()와 velocity 차이점 - AddForce() 메소드는 힘을 누적하고 속력을 점진적으로 증가시킨다. - Rigidbody의 velocity를 수정하는 것은 이전 속도를 지우고 새로운 속도를 사용하는 것 → 관성 무시하고 속도 즉시 변경
[Unity] 사용자 입력 감지
Update() 메소드 입력을 감지하려면 Update() 메소드와 input 클래스의 입력 감지 메소드 필요 Input 실행 시점에 어떤 키를 눌렀는 지 알려줌 Input.GetKey() 메소드는 키보드의 식별자를 KeyCode 타입으로 입력받는다. bool Input.GetKey(KeyCode key); Input.GetKey(): 해당 키를 누르는 동안 Input.GetKeyDown(): 해당 키를 누르는 순간
[Unity] C# 클래스와 오브젝트
클래스 추상화 할 대상과 관련된 코드(변수와 메소드)를 묶는 틀 클래스의 필드 = 클래스의 멤버 중에서 변수 오브젝트 - 원본 클래스에서 여러 개의 오브젝트 생성 가능 - 오브젝트는 서로 독립적이며 구별 가능 참조(reference) 타입 - C#에서 클래스로 만든 변수는 참조 타입 - 참조 타입의 변수는 실체화 된 오브젝트가 아님 - 참조 타입의 변수를 선언하는 것만으로는 오브젝트가 생성되지 않기 때문에 new를 사용해 오브젝트를 개별적으로 생성 - 참조 타입은 ' 한 사람을 여러 개의 별명으로 부르는 상황'을 만들 수 있음. - 즉, 오브젝트는 하나지만 그것을 여러 개의 참조 변수가 동시에 가리킬 수 있음. 값(value) 타입 - float, int, string 등의 C# 내장변수는 참조로 동작 ..
[Unity] C# 상속과 컴포넌트 패턴
상속 - 게임 엔진은 이미 완성된 기반 코드를 제공 - 게임 엔진의 코드를 재사용하므로 생산성 상승 - 유니티의 컴포넌트 기반 구조를 이해하려면 상속을 알아야 함 상속의 한계 부모 클래스를 상속해 자식 클래스의 기초 구현을 대신할 수 있다. 그러나, 상속에만 의존하면 오히려 코드를 재사용하기 힘들 수 도 있다. 부모 클래스는 자식 클래스에 공통적으로 필요한 기능을 구현해야하는 데, 부모 클래스의 기존 기능이 나중에 구현한 자식 클래스의 기능과 오히려 충돌할 수 있다. → 컴포넌트 패턴을 사용해야 함 컴포넌트 패턴 Component Pattern 미리 만들어진 부품을 조립하여 완성된 오브젝트를 만드는 방식 미리 만들어진 컴포넌트를 빈 껍데기인 게임 오브젝트에 조립하는 방식 - 유연한 재사용이 가능하다. -..