분류 전체보기 (105) 썸네일형 리스트형 조준(Aim) 시스템 구축 마우스를 바라보는 방향으로 무기를 조준해보기 [ 쿼터니언(Quaternion) ]유니티 인스펙터 창에서 나오는 회전은 Vector3로 표현되며, 이를 오일러각(Euler Angle) 이라고 한다하지만, 시중의 많은 3D 소프트웨어는 내부적으로 쿼터니언을 사용쿼터니언을 사용할 시 짐벌 락(Gimbal Lock) 문제를 피할 수 있음짐벌락 ㅡ> 극단적인 각도로 회전할 경우 한 축으로의 회전을 잃어버리는 것https://youtu.be/yxMQKsab5TQ?si=mbRGEn3Gtn429ntB수학적으로는 4차원 복소수를 이용한 회전 표현으로 (x, y, z, w) 형태로 표현직접 x, y, z, w값을 조정하지 말 것직접 값을 변경하거나 계산하는 대신, Unity의 내장 함수를 사용하는 것이 좋다.(예: Qua.. 충돌 처리와 맵 구성 [ 충돌 ] Collider 게임 오브젝트에 물리적 형태를 부여충돌 감지를 가능BoxCollider는 사각형, SphereCollider는 구형, MeshCollider는 복잡한 메시 형태 Rigidbody 게임 오브젝트에 물리 법칙을 적용Rigidbody가 있는 오브젝트는 중력에 영향을 받고, 힘과 토크를 통해 움직임충돌하려면 최소 한 쪽에는 Rigidbody 컴포넌트가 붙어있어야 Collider와 충돌할 수 있음Trigger 충돌도 Rigidbody 필요한데, 움직이는 쪽이 물리 시뮬레이션을 하면서 충돌 체크를 하기 때문 충돌 발생 시 Unity는 OnCollisionEnter, OnCollisionStay, OnCollisionExit 등의 이벤트를 발생 가능🚧 주의! 2D는 각각 뒤에 2D.. 구조와 설계 샘플 [ InputManager의 문제점 ] 그러므로 우리는 New Input System 을 활용할 것이다 [ 설계 샘플 - 옵저버 패턴 ] [ 기본 설계 ]TopDownController : 캐릭터, 몬스터의 전반적인 행동 정의PlayerInputController : 플레이어들의 키보드 입력이나 마우스 클릭TopDownMovement : 이동해야할 때 이 것을 호출함 [ 입력 받을 준비하기 ] [ 플레이어 생성하기 ] TopDownController.cs캐릭터와 몬스터의 공통적인 기능을 넣어놓는 곳 PlayerInputController.cs TopDownMovement.cs 핵심 기능 소개 [ PPU ]Pixels Per Unit 스프라이트의 픽셀 수와 해당 스프라이트가 게임 세계에서 차지하는 공간의 관계를 설명합니다.예를 들어, PPU가 100이라면 스프라이트의 100픽셀은 게임 세계에서 1 유니티 단위를 나타냅니다. PPU 값이 클수록 스프라이트는 작아집니다.이는 더 많은 픽셀이 동일한 게임 세계의 공간에 매핑되기 때문입니다. PPU 값은 물리 시뮬레이션에 영향을 미칩니다.높은 PPU 값은 더 작은 스프라이트를 생성하므로, 이는 더 높은 해상도의 물리 시뮬레이션을 가능하게 합니다. 높은 PPU 값은 더 많은 연산을 필요로 합니다.이는 성능에 영향을 미칠 수 있습니다.따라서, 필요한 만큼의 PPU 값을 설정하는 것이 중요합니다. 모든 스프라이트에 대해 일관된 PPU 값을 사용하는 것이 좋.. 이벤트 함수 실행 순서 및 특징 Monobehaviour를 상속받는 클래스들은 유니티 이벤트 함수를 활용게임 오브젝트의 생명 주기 동안 호출되는 특정한 메서드들의 순서와 타이밍게임 오브젝트의 생성, 초기화, 업데이트, 파괴 등과 관련된 작업을 수행 Awake: 게임 오브젝트가 생성될 때 호출되는 메서드입니다. 주로 초기화 작업이 수행됩니다.OnEnable: 게임 오브젝트가 활성화될 때 호출되는 메서드입니다.Start: 게임 오브젝트가 활성화되어 게임 루프가 시작될 때 호출되는 메서드입니다. 초기 설정 및 시작 작업을 수행합니다.FixedUpdate: 물리 엔진 업데이트 시 호출되는 메서드입니다. 물리적인 시뮬레이션에 관련된 작업을 처리할 때 사용됩니다.Update: 매 프레임마다 호출되는 메서드로, 게임 로직의 주요 업데이트가 이루어.. OceanStory ✈️ 프로젝트 소개 발표 연습 1 발표 연습 2 발표 연습 3 🕹️ 플레이 영상https://www.youtube.com/watch?v=KNzcftV4bB8 테스팅 하는 방법 (빌드) 객체가 충돌했을 때 회전을 가하는 방법 체크 했을 시 해당 포지션의 움직임을 제한시킴정적인 부분을 원한다면 모두 체크하면 된다 공이 휘는 이유는 컨스트레인츠 z값에 체크를 하지 않았기 때문이다 후입 선출 Stack? Q) 다음 코드의 출력 결과를 작성하고, 왜 그렇게 되는지 이유를 설명해주세요.이 코드는 스택(Stack)을 사용하여 정수를 추가하고 삭제한 후에 출력하는 간단한 예제이다스택은 후입선출(LIFO, Last In First Out) 구조를 가지고 있기 때문에 마지막에 추가된 요소가 가장 먼저 제거된다여기서는 다음과 같은 과정을 거치게 된다스택에 1을 추가스택에 2를 추가스택에 3을 추가.스택에서 요소를 제거. 여기서는 가장 최근에 추가된 3이 제거2를 출력.스택에 4를 추가스택에 5를 추가 전위연산자 후위연산자? 자기객관화를 위해서 응시해 보았던 코딩테스트에 나온 연산자 문제이다.여기서 출력되는 값과 그 이유는 무엇일까? 내가 제출했던 답안이다. 틀렸다. 왜냐하면 전위 연산자 개념과 후위 연산자 개념을 정확히 알고 있지 못했기 때문이다 ++y 는 전위 증가 연산자이므로 y가 먼저 1 증가되고, 그 후에 연산이 수행x++ 는 후위 증가 연산자이므로 x의 현재 값인 10을 출력하고 나서 x를 1 증가 따라서 출력되는 값은 10이 되고, 출력 직후에 x는 11이 된다 이런 경험을 해보니 아직 기본이 한참 부족하다고 느껴지는 시간이었다 클래스에 대하여 더 알아보기 클래스에 대하여 알아보려 했더니 뜬금 없는 그림이 나왔다여기에 등장한 사람들은 누구일까? 왼쪽에 하늘을 가리키는 사람은 플라톤, 그리고 정면을 가리키는 사람은 아리스토텔레스학문의 원천이라고 할 수 있는 사람들이다 컴퓨터의 영역을 탄생시킨 사람들은 서양인이다그리고 컴퓨터 뿐만이 아닌, 대다수 학문의 시초는 서양이라고 볼 수 있다그러므로 우리가 배우는 학문에 대하여 이해하고 나아가려면서양인들의 철학 및 생각기반을 이해하고 중요하게 여길 필요가 있다 결국, 우리가 사용하고 있는 클래스도 시작점은 이 곳이다. 플라톤이 가리키는 하늘, 굉장히 추상적인 세계이며 우리가 흔히 말하는 이데야라고 하는 세계이다우리가 사용하는 클래스는 플라톤의 철학을 받아들였으며아리스토텔레스의 철학을 받아들인 것이 프로토타입이다 사과사과.. 추상클래스 실전에서 사용해보기 추상클래스를 사용하여Main / LoginScene / StartScene / StatusScene이 세 가지 스크립트에 정보를 저장하는 것을 해봤다. 이게 왜 어려웠을까? 기존에는 단순히 Character 클래스에서 정보를 전달하면 되었지만,이번에 어려움을 겪은 부분은 직업을 선택하도록 설계하는 과정에서데이터를 인수 인계가 원활하도록 하는 부분이었다. 직업을 선택한다는 것은 Character 클래스로부터 파생시켜 Warrior 와 Wizard 로 각각의 클래스에 상속시킴으로써객체 지향 프로그래밍을 한다는 것에 의의가 있다는 점이다.즉, Character 클래스를 추상클래스로 전환시켜서 사용한다고 할 수 있다. [ 구성 ]메인에서 메서드 호출 ㅡ> 로그인 화면 ㅡ> 게임 시작 메뉴 ㅡ> 캐릭터 .. 이전 1 2 3 4 5 6 7 ··· 9 다음