전체 글
-
[Unity]유니티 입문하기 6-8(속성)프로그래밍 2023. 8. 11. 19:35
이전 글에서는 객체 지향의 속성 중 하나인 캡슐화에 대해서 간단히 알아보았습니다. 이번에는 캡슐화의 또 다른 예시인 속성에 대해서 알아보겠습니다. 속성 앞에서 필드에 대해서 설명할 때 필드는 객체의 속성이라고 설명했었습니다. 하지만 여기서 말한 속성은 지금 말할 속성과는 달리, 프로그래밍 용어가 아니라 우리가 실생활에서 사용하는 단어였습니다. 이제부터 말할 속성(Property)는 프로그래밍 용어이며, 필드와 메서드 처럼 클래스를 구성하는 멤버 중의 하나입니다. 즉, 이제부터 말하는 속성은 클래스, 메서드와 같이 C#의 문법 요소라고 생각하시면 됩니다. 속성의 정의 속성은 어떤 필드의 값에 접근하거나 값을 수정하는 메서드입니다. 접근제한자 자료형 속성의이름 { get { return 필드명; } set ..
-
[Unity]유니티 입문하기 6-7(캡슐화)프로그래밍 2023. 8. 10. 22:07
이전 글을 통해서 개념을 추상화해 클래스로 만들고, 클래스를 이용해 객체를 생성하는 법에 대해서 배웠습니다. 이번에는 객체 지향의 특성 중 캡슐화에 대해서 알아보도록 합시다. 캡슐화 캡슐화란 말 그대로 클래스를 이루는 정보를 캡슐에 담듯이 포장해 외부에 공개할 것과 공개하지 않을 것을 구분하는 것을 말합니다. 좀 더 자세히 말하자면, 클래스에서 캡슐화란 정보를 한 데 묶어두는 것과 멤버중 일부는 공개하고 일부는 은닉하는 것을 말합니다. 여기서 정보를 한 데 묶어둔다는 것은 클래스를 생성하는 단계에서 클래스 안에 여러 필드와 메서드를 모아놓았던 것을 말합니다. 그럼, 공개와 은닉은 어떻게 하는 것일까요? 접근 제한자 접근 제한자는 클래스의 외부에 해당 클래스의 멤버를 공개할지 아닐지를 결정하는 키워드입니다..
-
[Unity]유니티 입문하기 6-6(객체, 생성자)카테고리 없음 2023. 8. 7. 19:13
저번 글에서 클래스에 대해 설명하면서 클래스와 객체가 각각 무엇인지에 대해서 배웠습니다. 이번에는 이렇게 생성한 클래스를 통해 객체를 생성해 보고, 그 객체가 가진 필드와 메서드를 이용해 보겠습니다. 이제 이 클래스를 통해 객체를 만들어보도록 하겠습니다. 인스턴스화 C#에서는 객체를 생성하는 것을 객체를 인스턴스화한다고 합니다. 객체를 인스턴스 할 때에는 new라는 키워드를 사용하는데요, 자세한 방법은 아래와 같습니다. //클래스명 객체명 = new 클래스명(); Human john = new Human(); 좀 더 정확하게 말해보자면, Human 자료형의 john이라는 변수를 만든 뒤, 그 안에 Human을 인스턴스화하여 저장한 것입니다. 즉, new Human(); 부분이 객체를 인스턴스화하는 부분이..
-
[Unity]유니티 입문하기 6-5(클래스 - 추상화)프로그래밍 2023. 8. 6. 21:16
이전 글에서는 객체 지향 언어인 C#을 잘 이해하기 위해 객체 지향이 대체 무엇인지, 객체 지향과 절차 지향이 무엇이 다른지 알아봤습니다. 객체 지향 언어의 주요 개념 중 클래스부터 알아보겠습니다. 사실 앞에서 기본 개념이라고 하며 배웠던 대부분의 것들은, C#만이 아니라 다른 객체 지향 언어 및 절차 지향 언어 등 거의 모든 프로그래밍 언어가 기본적으로 사용하는 개념입니다. 따라서 C#를 제대로 이해하기 위해서는 객체 지향이 가지는 개념을 정확히 이해하고 사용할 수 있어야 합니다. 클래스 C#은 객체 지향 언어이고, 따라서 이전 글에서 설명했던 것처럼 객체를 만들고 그 객체들을 기준으로 나누어 프로그램을 작성하게 됩니다. 이때 이 객체가 어떤 속성을 가지고 있으며 어떤 기능을 하는지를 설명해 주는 설계..
-
[Unity]유니티 입문하기 6-4(객체 지향 언어란?)프로그래밍 2023. 8. 4. 15:07
이전 글에서는 프리팹을 통해 투사체를 생성하고 발사하는 것을 해보았고, 번외로 여러 개를 동시에 발사하는 코드도 작성해 보았습니다. 이번 글에서부터는 "객체 지향 언어"인 C#에 대해 좀 더 자세히 알아보기 위해 객체 지향이 뭔지, 클래스나 추상화가 뭔지 차근차근 알아보도록 하겠습니다. 프로그래밍 언어는 절차 지향 언어와 객체 지향 언어로 나눌 수 있습니다. 절차 지향은 어떠한 일을 여러 과정의 흐름으로 이해하고 순서대로 과정을 나열하는 방식이고, 객체 지향은 어떠한 일을 객체와 객체 간의 상호작용으로 이해하는 방식입니다. 예를 들어 카페에서 음료를 주문하는 것을 절차 지향으로 보게 된다면 고객이 점원에게 음료를 주문한다. 점원이 고객에게 해당 음료의 가격을 알린다. 고객이 음료의 값을 지불한다. 점원이..
-
[Unity]유니티 입문하기 6-3 번외(한번에 투사체 여러개 발사하기)프로그래밍 2023. 8. 3. 16:55
이전 글에서 투사체를 생성하고, 발사하고, 사라지는 일련의 과정을 배웠습니다. 이번에는 그 연장선으로, 한 번에 여러 개의 투사체를 발사해 보도록 하겠습니다. 투사체를 여러 발 발사한다는 건, 다시 말하면 한번 클릭에 여러개의 오브젝트가 생긴다는 말입니다. if(Input.GetKeyDown(KeyCode.Space)){ GameObject Bullet1 = Instantiate(BulletPrefab); Bullet1.transform.position = transform.position; Bullet1.GetComponent().AddForce(Vector2.up * BulletSpeed); GameObject Bullet2 = Instantiate(BulletPrefab); Bullet2.trans..
-
[Unity]유니티 입문하기 6-3(투사체 발사)프로그래밍 2023. 8. 2. 19:02
이전 글에서는 Input.GetKey() 메서드를 활용해 키 입력이 있었을 때 오브젝트를 이동시키는 법에 대해 배워봤습니다. 이번에는 프리팹(Prefab)과 리지드바디(Rigidbody)를 이용해 투사체를 만들어보도록 하겠습니다. 투사체를 발사하는 기능을 만들 때, 구현해야 하는 것은 다음과 같습니다. 투사체를 생성한다. 투사체를 움직인다. 투사체가 계속 남아있지 않게 일정 시간이 지난 뒤 투사체를 없앤다. 투사체 생성 지금까지 저희가 게임 오브젝트를 사용할 때는 전부 게임 실행 전에 직접 화면에 배치했었습니다. 하지만 투사체는 게임을 실행하는 도중 생성되어 날아가야 하며, 키 입력에 따라 여러 개가 생길 필요도 있습니다. 이러한 오브젝트를 위해 유니티에서는 프리팹(Prefab)이라는 에셋 타입을 이용합..
-
[Unity]유니티 입문하기 6-2(키 입력, 이동 구현)프로그래밍 2023. 8. 2. 14:15
이전 글에서는 스크립트를 통해 오브젝트와 컴포넌트에 접근하고, 이를 이용해 오브젝트를 비활성화해보거나 위치를 바꿔보거나 했습니다. 이번 글에서는 사용자의 키 입력을 인식해 플레이어 캐릭터가 움직이도록 구현해보겠습니다. Input.GetKey() 키보드 입력을 인식하기 위해서는 Input 클래스의 GetKey() 메서드가 필요합니다. GetKey() 메서드는 특정한 키의 코드를 입력받아, 해당 키를 누른 상태라면 true를, 해당 키가 눌려있지 않다면 false를 반환하는 메서드입니다. 물론 각 키가 어떤 코드를 가지고 있는지 외울 필요는 없고, KeyCode.(원하는 키)를 이용하면 해당 키의 키코드를 바로 사용할 수 있습니다. void Update() { if(Input.GetKey(KeyCode.W)..