게임 개발
-
게임개발 21일차 - 캐릭터의 움직임게임 개발 2025. 6. 19. 15:26
2D에서 캐릭터를 움직이는 것에는 3가지 방식이 있다. 1. transform.position 직접 변경직접 중력을 구현해야 하고, 충돌도 구현해야 한다.transform.position += new Vector3(x, y, 0) * speed * Time.deltaTime; 2. Rigidbody2D.velocityUnity 물리엔진이 제공하는 물리 속도를 이용해서 캐릭터를 움직이는 방식rb.linearVelocity = new Vector2(moveInput.x * speed, rb.linearVelocity.y);충돌, 중력에 관해서 이미 구현이 되어있지만, 끼는 버그가 있음 3. Rigidbody2D.MovePosition()물리 충돌을 유지하면서, 위치를 직접 지정하는 방식Vector2 newP..
-
게임개발 20일차 (Unity Learn Material)게임 개발 2025. 6. 16. 16:32
렌더링 : 모든 데이터(오브젝트 지오메트리, 위치, 색상, 조명 등)를 가져와 카메라의 관점에서 2D로 이미지를 생성하는 과정 렌더 파이프라인 : 렌더링하는 다양한 방법 (2D 이미지에 도달하는 다양한 길) URP ( 유니버설 렌더 파이프라인 )은 성능에 최적화되어 있어 모바일, 웹, VR 프로젝트에 이상적입니다. 구성은 다소 복잡하지만, 내장 렌더 파이프라인보다 사용자 정의가 더 자유롭습니다. 꽤 괜찮은 그래픽을 구현할 수 있습니다.HDRP ( 고화질 렌더 파이프라인 ) 는 콘솔이나 게이밍 컴퓨터처럼 처리 능력이 뛰어난 고사양 플랫폼에서 고품질 그래픽을 구현하도록 설계되었습니다. 구성이 매우 복잡하므로 그래픽 작업에 풍부한 경험이 있는 사람만 사용해야 합니다.나는 URP로 게임을 구현하려고 한다. 유니..
-
게임개발 18일차 (Unity Learn 8일차)게임 개발 2025. 6. 14. 19:59
[SerializeField] private 을 이용해서 인스펙터에서 값을 보고 조정할 수 있으면서, 다른 클래스에서 참조하지는 못하게 할 수 있다. protected로 자기자신과 상속받은 클래스들에서만 참조가 되도록 할 수 있다. (인스펙터에는 노출X) \ 이외에도 const, readonly, static이 있다.const는 선언과 동시에 초기화하고 절대 안바뀌는 고정된 값이고readonly는 런타임 중 딱 한 번 설정한 후 안바뀌는 값이고static은 인스턴스 없이 클래스자체에서 접근가능하고 모든 객체가 공유가능하다는데 (이건 아직 잘 모르겠다) const readonly static은 [SerializeFiled]와 같이 쓸 수 없다.시리얼라이즈 필드는 평범한 private이나 protected..
-
게임개발 17일차 (Unity Learn 7일차)게임 개발 2025. 6. 13. 15:57
UI 앵커 피봇에 스트레치에 대해서 배웠다. UI는 이 16개 중에 하나를 따르게 된다. 이 9개는 화면이 늘어났다 줄었다 할때 부모의 어디를 기준점으로 둘 지를 뜻한다.예를 들어 왼쪽 위를 기준으로 잡으면 사실상 왼쪽위에 고정되어 있다고 보면 된다.이렇게 화면이 줄어들어도 왼쪽위에 위치도 그대로, 크기도 그대로다. 스트레치는 반대로 부모의 크기가 줄어들면 같이 줄어든다.이걸쓰면 상하로는 같이 줄어들지만 좌우로는 고정시킨다는뜻이다. using TMPro; public TextMeshProUGUI scoreText; scoreText.text = "Score : " + score; 이런식으로 화면에 글씨를 띄울 수 있게 되었다. using UnityEngine.SceneManagement; pub..
-
게임개발 16일차 (Unity Learn 6일차)게임 개발 2025. 6. 12. 15:00
export package로 현재 상태를 저장해서 버전으로 관리할 수 있다. private GameObject focalPoint; startfocalPoint = GameObject.Find("Focal Point"); updateplayerRb.AddForce(focalPoint.transform.forward * speed * verticalInput); focalpoint를 중앙에두고 player가 global한 forward가 아닌 focalpoint와의 forward로 움직이게 만들 수 있었다. physics material을 만들고 적과 플레이어에게 모두 부여했다. (콜라이더에 넣을수있다.)bounciness를 1로, bounce combine (바운스의 합을 어떻게 할지)을 multip..
-
게임개발 15일차 (Unity Learn 5일차)게임 개발 2025. 6. 11. 15:44
애니메이터에는 레이어와 패러미터가 있다. 오브젝트는 레이어마다 하나의 상태에 있어야 한다.ex) 걷기-달리기 and 점프-땅달리기 상태이면서 점프상태여야 하는것. 패러미터로 애니메이션의 방향을 정할 수 있다.ex) 죽을 때 DeathType_int가 1인지 2인지에 따라서 애니메이션이 2개로 나뉨 private Animator playerAnim; playerAnim.SetBool("Death_b", true); // 생존여부playerAnim.SetInteger("DeathType_int", 1); // 죽음 애니메이션 선택 Animator를 가져온 후 죽게 만들면서 뒷 방향으로 죽게 만든 코드이다.SetTrigger로 상태를 바꿀 수도 있고 저렇게 패러미터로 상태를 바꿀수도 있다.특수효과도 넣었다..
-
게임개발 14일차 (Unity Learn 4일차)게임 개발 2025. 6. 10. 22:36
Physics.gravity *= gravityModifierUnityEngine의 기본 중력을 수정할 수 있게된다. (이 오브젝트에 한해서 가볍게/무겁게 만듬) rb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse)리지드바디의 메소드 중 AddForce로, 힘을 가한다. AddForce(방향*힘, 포스모드)로 사용한다. 모드에는 4가지가 있다..Impulse : 순간적인 충격을 줌.Force : 매 프레임마다 지속적으로 힘을 줌.VelocityChange : Impulse와 비슷하지만 질량무시하고 속도변화 바로 적용.Acceleration : .Force와 비슷하지만 질량무시하고 가속도 자체 적용 (종이나 바위나 똑같아짐) InvokeRepeating("Sp..
-
게임개발 13일차 (Unity Learn 3일차)게임 개발 2025. 6. 8. 18:18
오른쪽 위 layout으로 여러가지 화면으로 게임개발을 할 수 있게 되었다. 메인카메라에 플레이어를 따라가도록 설정했을 때 둘다 update로 하게되면 누가 먼저 실행할지가 랜덤이라서 화면이 떨린다.이 때 카메라의 스크립트를 LateUpdate로 바꿔주면 플레이어가 움직이고 카메라가 따라가기 때문에 부드러워진다. 인스펙터의 변수에다가 마우스좌클릭하고 좌우로 크기 조절을 간편하게 조절할 수 있다. Input.GetAxis("Horizontal")는 왼쪽/오른쪽 방향키나 A/D 키를 감지해서 -1.0f ~ +1.0f 사이의 부드러운 float 값을 반환한다.기본은 0이고 D를 누르면 빠르게 1.0f로 점진적으로 커지고 A를 누르면 -1.0f로 점진적으로 작아진다. Global:→ 축이 항상 똑같음 (빨간 축..