Dev
-
[Unity] 플랫포머에서 캐릭터 끼임 문제Dev/Unity 2025. 1. 23. 15:29
캐릭터가 평평한 바닥에서 이동 중 어딘가에 걸린 것처럼 움직이지 않는 문제가 발생한다. 특히, Rigidbody의 Freeze Rotation Z를 활성화하면 캐릭터가 끼인 것처럼 멈춘다. 문제 원인이 현상은 플랫폼을 구성하는 여러 개의 Box Collider 사이에 보이지 않는 작은 틈이 존재하여, 캐릭터가 그 틈에 걸려 발생하는 것으로 보인다. 해결 방법플랫폼의 기존 콜라이더에서 Used By Composite를 체크하고 콜라이더를 하나로 합쳐주는 Composite Collider를 추가한다. 그러면 Rigidbody도 같이 생길텐데, 이 때 Rigidbody의 Body Type을 Static으로 바꿔 플랫폼을 고정시켜 주자.
-
[Unity] 캐릭터가 벽에 붙는 현상Dev/Unity 2025. 1. 23. 13:32
transform.Translate를 사용할 때는 문제 없지만, Rigidbody.AddForce, Rigidbody.velocity같은 물리적으로 작동하는 함수로 이동할 때 해당 현상이 발생한다. 문제 원인이런 현상이 발생하는 근본적인 이유는 벽과의 마찰력 때문이다. 마찰력을 0으로 만들면 이런 현상이 발생하지 않는다. 하지만 캐릭터 자체의 마찰력을 0으로 만들면, 지면에서 움직일 때 멈추지 않고 미끄러지므로 측면의 마찰력만 0으로 만들어야 문제가 해결된다. 해결 방법1. Platform Effector 2D 추가 캐릭터에 Platform Effector 2D를 추가해주고, 기존의 Collider 2D의 Used By Effector를 체크해준다.Platform Effector 2D의 Use One..
-
[Unity] 스프라이트 시트(아틀라스)를 사용하는 이유Dev/Unity 2025. 1. 17. 16:46
위 사진은 이미지에 따른 게임 stats 창이다. "1번 -> 2번"으로 갈 때와 "1번 -> 3번"으로 갈 때의 차이를 보면 똑같이 이미지가 1개 추가됐지만 Batches 값이 다른 것을 볼 수 있다.먼저, Batch와 드로우 콜에 대해 알아보자.1. 드로우 콜(Draw Call)CPU → GPU 명령드로우 콜은 “이 오브젝트를 그려라”라는 명령을 CPU가 GPU에게 전달하는 과정을 의미한다.한 번의 드로우 콜이 발생할 때마다 CPU와 GPU 사이에 통신 비용이 들기 때문에, 드로우 콜이 많아질수록 전체 성능(프레임률)에 부담이 된다. 2. 배치(Batch)여러 오브젝트를 한 번에 묶어 그리는 것Unity에서 “Batch”는 “한 번에 그려질 오브젝트 그룹”을 의미한다.배치 1개 = 일반적으로 드로우 ..
-
[Unity] 캐릭터 대각선 이동 시 속도 증가 문제Dev/Unity 2024. 11. 28. 10:54
캐릭터 이동 방법 1. Position 이동using System.Collections;using System.Collections.Generic;using UnityEngine;public class ExampleClass : MonoBehaviour{ public float moveSpeed = 5f; void Update() { if (Input.GetKey(KeyCode.W)) { transform.position += Vector3.forward * Time.deltaTime * moveSpeed; } if (Input.GetKey(KeyCode.S)) { transform.po..