본문 바로가기

전체 글24

Unity 3D 엔진 기초 (6) Clamp를 통한 이동 제한 안녕하세요 연꿈술사 입니다. 오늘은 Clamp를 이용한 플레이어의 이동을 제한하는 스크립트를 작성해보겠습니다. 게임을 만들다보면 고정된 화면에서 캐릭터를 움직여야하는 경우가 있습니다. 예를 들자면 슈팅게임이 있겠죠. 비행기가 화면 밖으로 나가면 총알을 피하고는 있는지 무슨 행동을 하는지 알 수가 없을 것입니다. 이를 Clamp를 이용해 화면 안에서만 이동하는 것을 구현해 보겠습니다. 먼저, 다양한 방법이 있겠지만 수치를 수정하고 보기 쉽게 하기 위해 한곗값을 설정하는 스크립트를 작성해보겠습니다. [CreateAssetMenu] public class StageData : ScriptableObject { [SerializeField] Vector2 IimitMin; [SerializeField] Vect.. 2023. 8. 8.
Unity 3D 엔진 기초 (5) Transform 안녕하세요 연꿈술사 입니다. 오늘은 Unity의 가장 기초 Component 중 하나인 Transform에 대해 알아보겠습니다. 일반적으로 우리가 GameObject 하나를 만들면 다른 건 없어도 Transform에 대한 정보는 나와있습니다. 이는 이 오브젝트의 위치 및 회전값, 그리고 크기 정보에 대해 알려줍니다. 우리는 이 Transform 값을 Scene 화면에서도 조절할 수 있고, Inspector 창에서도 조절할 수 있습니다. 저는 Scene화면을 통해 조절하는 것보다는 Inpector창을 통해 움직이는 것을 좋아하는데요, 둘의 장단점이 있습니다. 위 화면에 있는 버튼들이 Transform 값을 수정할 수 있게 해주는 것들입니다. 정확히는 두 번째, 세 번째, 네 번째 버튼인데요, 각각 w,e,.. 2023. 8. 7.
Unity 3D 엔진 기초 (4) 접근제한자, SerializeField 안녕하세요 연꿈술사 입니다. 오늘은 유니티 C#에서의 접근제한자에 대해 알아보겠습니다. 기본적으로 사용하는 접근제한자는 public, private, internal, protected 가 있습니다. public의 경우에는 모든 클래스 및 외부에서 접근 가능한 접근제한자로, 우리가 이 접근제한자를 사용하여 다른 오브젝트의 컴포넌트로 부착 시 인스펙터 창에 보여지게 할 수 있습니다. 플레이어의 이동속도를 public float speed = 5f; 라고 가정한 뒤 플레이어 오브젝트의 컴포넌트로 부착을 했다고 합시다. 그럼 인스펙터 창에서도 speed에 접근하여 수치를 바꿀 수 있게 해줍니다. 게임의 밸런스를 맞추어가는 과정에서 빠르게 수치를 변화하여 확인할 때 사용하기도 합니다. 또한 메서드를 public.. 2023. 8. 6.
Unity 3D 엔진 기초 (3) deltaTime, 플레이어 이동 구현 안녕하세요 연꿈술사입니다. 오늘은 유니티에서 이동 등에서 자주 처리하는 Time.deltaTime에 대해 알아보려고 합니다. 여기서 diltaTime의 delta는 변화된 것을 이야기합니다. 그럼 deltaTime은 무엇일까요? 쉽게 시간이 변한 값이라고 생각해주시면 될 것 같습니다. 우리가 deltaTime을 사용하는 이유는 두 개의 컴퓨터가 있다고 생각을 해보겠습니다. 여기서 한 컴퓨터는 1초에 4번을 처리할 수 있고, 다른 컴퓨터는 1초에 2번 처리할 수 있는 컴퓨터라고 생각을 해보겠습니다. 만약 우리가 좋아하는 게임 카트라이더를 한다고 했을 때 1초에 누군가는 4m를 이동하고 누군가는 2m를 이동한다면 어떨까요? 아마 2m를 이동하는 사람은 컴퓨터의 성능이 좋지 않다는 것 때문에 매 번 패배를 겪.. 2023. 8. 5.