본문 바로가기

Unity 기초16

Unity 3D 엔진 기초 (7) Collider 안녕하세요 연꿈술사입니다. 오늘은 물리적인 충돌감지를 위해 존재하는 컴포넌트 중 하나인 Collider에 대해 설명해 보려고 합니다. 우리가 게임을 하다보면 항상 외치는 게 있습니다. 바로 현실고증! 게임을 하는데 물리적인 충돌이 발생하지 않는다면 어떨까요? 캐릭터와 캐릭터가 부딪혔는데 통과해 버린다면? 바닥은 차치하고 눈앞의 건물들도 그냥 통과가 되어버린다면? 분명 재미없을 겁니다. Unity 에서는 이런 물리적인 충돌을 감지할 수 있도록 Collider를 만들어 놓았습니다. 또한 중력과 관련있는 Rigidbody도 있지만, 이에 대해서는 다음 시간에 다뤄보도록 하겠습니다. Collider에는 Box, Sphere, Capsule, Mesh 등 다양한 Collider가 존재합니다. 사물의 모양이 모두 .. 2023. 8. 10.
Unity C# 문법 (7) 오버로딩, 오버라이딩의 차이 안녕하세요, 연꿈술사 입니다. 오늘은 C# 문법에서 헷갈리기로 유명한 오버로딩과 오버라이딩의 차이에 대해 알아보겠습니다. 사실 오버로딩과 오버라이딩은 이름만 비슷할 뿐 아예 다른 개념입니다. 사전적의미와 사용하는 방법, 모두 알아보겠습니다. 1. 오버로딩(OverLoading) 오버로딩의 사전적 의미는 '과적'입니다. C#에서는 메소드로 불리는 함수에 대해 매개 변수의 갯수와 타입을 다르게 정의해 같은 이름으로 여러 개를 구현하는 것을 말합니다. 주로 같은 역할을 하는 메소드에 대해서 이름을 같게 하고 매개변수의 이름과 타입만 다르게 정의해줍니다. 오버로딩을 사용하면 같은 행동을 하는 메소드에 대해 이름을 새로 지을 필요가 없을 뿐만 아니라 코드를 일관성있게 해주어 다른 사용자가 메소드에 접근할 때 이해.. 2023. 8. 9.
Unity 3D 엔진 기초 (6) Clamp를 통한 이동 제한 안녕하세요 연꿈술사 입니다. 오늘은 Clamp를 이용한 플레이어의 이동을 제한하는 스크립트를 작성해보겠습니다. 게임을 만들다보면 고정된 화면에서 캐릭터를 움직여야하는 경우가 있습니다. 예를 들자면 슈팅게임이 있겠죠. 비행기가 화면 밖으로 나가면 총알을 피하고는 있는지 무슨 행동을 하는지 알 수가 없을 것입니다. 이를 Clamp를 이용해 화면 안에서만 이동하는 것을 구현해 보겠습니다. 먼저, 다양한 방법이 있겠지만 수치를 수정하고 보기 쉽게 하기 위해 한곗값을 설정하는 스크립트를 작성해보겠습니다. [CreateAssetMenu] public class StageData : ScriptableObject { [SerializeField] Vector2 IimitMin; [SerializeField] Vect.. 2023. 8. 8.
Unity 3D 엔진 기초 (3) deltaTime, 플레이어 이동 구현 안녕하세요 연꿈술사입니다. 오늘은 유니티에서 이동 등에서 자주 처리하는 Time.deltaTime에 대해 알아보려고 합니다. 여기서 diltaTime의 delta는 변화된 것을 이야기합니다. 그럼 deltaTime은 무엇일까요? 쉽게 시간이 변한 값이라고 생각해주시면 될 것 같습니다. 우리가 deltaTime을 사용하는 이유는 두 개의 컴퓨터가 있다고 생각을 해보겠습니다. 여기서 한 컴퓨터는 1초에 4번을 처리할 수 있고, 다른 컴퓨터는 1초에 2번 처리할 수 있는 컴퓨터라고 생각을 해보겠습니다. 만약 우리가 좋아하는 게임 카트라이더를 한다고 했을 때 1초에 누군가는 4m를 이동하고 누군가는 2m를 이동한다면 어떨까요? 아마 2m를 이동하는 사람은 컴퓨터의 성능이 좋지 않다는 것 때문에 매 번 패배를 겪.. 2023. 8. 5.