본문 바로가기

C# 기초19

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 엔진 기초 (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.