분류 전체보기 (26) 썸네일형 리스트형 Unity3D_Week1 : Move(Character Controller) CharacterController 유니티가 지원해주는 Character Controller로 이동에 관해 다양한 조작이 가능하다. 유니티에서는 Rigidbody 물리를 활용하지 않는 플레이어에 사용할 것을 권장한다. ㆍSlope Limit : 캐릭터가 올라갈 수 있는 각도. (설치된 오브젝트의 각도 정도) ㆍStep Offset : 어느 높이까지의 공중에 떠있는 물체에 올라갈 수 있는지 설정. ㆍSkin Width : 콜라이더 끼리 관통할 수 있는 스킨 너비. 0.01 Unity2D_Week2 : Property 프로퍼티(Property) · 기본적으로 멤버 보호 단계에는 private, public, protected, internal이 있다. · 이 중에서 private는 정보 은닉을 위해 외부에서 접근하지 못하도록 제한하는 액세스(접근) 한정자이다. · private로 선언하면, 외부에서 접근을 하기 위해서 get/set을 생성 해야하는 번거로움이 존재한다. · C#에서는 이를 간단히 처리할 수 있는 프로퍼티(Property)를 제공한다. 1. 기본 형태 · private 자료형 변수명 { get{ } set{ } } public class Property : MonoBehaviour { private int hp { get { // 값을 참조할 때의 처리. } set { // 값을 대입할 때의 처리. } .. 한 눈에 보기 ※ 키보드 좌우/상하 받아오기 · Input.GetAxisRaw("Horisontal"/"Vertical"); ※ 키보드 입력 · Input.GetKeyDown : 키를 한 번 눌렀을 때 true를 반환 · Input.GetKeyUp : 키를 누르고 뗐을 때 true를 반환 · Input.GetKey : 키를 누르고 있을 때 true를 반환 ※ Time.deltaTime · 프레임과 프레임 사이의 간격시간. · 프레임의 차이(핑의 차이)가 존재하는 게임 환경에서 동일한 처리(연산)속도를 위해 프레임 단위가 아닌 초 단위로 받는 명령어. ※ Mathf.Clamp() · Mathf.Clamp(값, 최소값, 최대값) : 값을 최소, 최대 사이 값으로 고정 후 반환. ※ 레이캐스트 · 직선형 : Physics2.. Unity2D_Week1 : Coroutine ※ 코루틴(Coroutine) : Co(함께/협력) Routine(루틴, 함수) · yield return으로 반환할 때 까지 실행되는 함수. · 반환값은 IEnumerator로 받는다. · 실행문은 StartCoroutine("Coroutine 함수 명"); void Update() { StartCoroutine("FindEnemy())" } IEnumerator FindEnemy() { // 적을 탐색하는 지시문 yield return new WaitForSeconds(1.0f); } 코루틴을 사용하는 이유 · 플레이어를 탐지하는 간단한 AI를 가진 Enemy가 있다. · Update(){}문에서 사용하게 된다면, 프레임당 한 번씩 플레이어를 탐지하려고 한다. · 이것은 지나치게 지속적으로 체크해야 .. Unity2D_Week1 : Raycast 레이캐스트는 오브젝트와 다른 오브젝트가 충돌했을 때 처리할 수 있는 유용한 기술이다. ①. 직선형 Raycast public class Raycast : MonoBehaviour { public Transform raycastPivot; public LayerMask groundMask; public float castDistance; void Update() { RayCast(); } private void RayCast() { // RaycastHit2D : 발사한 광선이 충돌한 오브젝트의 정보가 담긴다. RaycastHit2D raycast = Physics2D.Raycast(raycastPivot.position, Vector2.down, castDistance, groundMask); if(ra.. Unity2D_Week1 : ChargeJump 게임에서 보통 기를 모아서 하는 액션들이 존재한다. 이번에는 기를 모아서 점프를 하는 ChargeJump를 구현해보고자 한다. public float jumpPower; void Update() { chargeJump(); } private void ChargeJump() { // 점프 준비 if (Input.GetKeyDown(KeyCode.Space)) { // 버튼을 누른 즉시 charge 값이 0.0으로 초기화. charge = 0.0f; } // 기 모으기 if (Input.GetKey(KeyCode.Space)) { // 버튼을 누르는 동안 charge에 시간 값 더함. charge += Time.deltaTime; } // 점프 실행 단계 if (Input.GetKeyUp(KeyCode.Sp.. Unity2D_Week1 : Jump 점프를 구현하기 위해서는 제어할 객체에 Rigidbody 2D가 존재해야 한다. 그래야 Rigidbody2D 내부 명령어로 점프에 관한 처리가 가능하기 때문. public class Jump : MonoBehaviour { Rigidbody2D rigid; public int jumpPower; // 게임 실행 시 (혹은 오브젝트 활성화 시) 최초 1회 실행되는 유니티 이벤트 함수 void Start() { rigid = GetComponent(); } // 매 프레임마다 1회씩 실행되는 함수. void Update() { if(Input.GetKeyDown(KeyCode.Space)) { rigid.AddForce(Vector2.up * jumpPower * ForceMode2D.Impulse); } .. Unity2D_Week1 : Move ①. Input.GetAxisRaw로 값을 받아와 그 값이 -1인지 1인지 판단하는 방법. ※ GetAxisRaw(Horisontal/Vertical ) Horizontal과 Vertical은 유니티에서 Edit -> Project Setting -> Input Manager -> Axes에 가보면 확인할 수 있다. axisName에 의해 식별된 가상축의 값을 반환한다. 키보드와 조이스틱 입력값에 대해 -1에서 1까지의 값을 가진다. public class Move : MonoBehaviour { public int moveSpeed; // 매 프레임마다 1회씩 실행되는 함수. void Update() { float x = Input.GetAxisRaw("Horizontal"); // 좌, 우측 키보드 .. 이전 1 2 3 4 다음