유니티
-
[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-4(객체 지향 언어란?)프로그래밍 2023. 8. 4. 15:07
이전 글에서는 프리팹을 통해 투사체를 생성하고 발사하는 것을 해보았고, 번외로 여러 개를 동시에 발사하는 코드도 작성해 보았습니다. 이번 글에서부터는 "객체 지향 언어"인 C#에 대해 좀 더 자세히 알아보기 위해 객체 지향이 뭔지, 클래스나 추상화가 뭔지 차근차근 알아보도록 하겠습니다. 프로그래밍 언어는 절차 지향 언어와 객체 지향 언어로 나눌 수 있습니다. 절차 지향은 어떠한 일을 여러 과정의 흐름으로 이해하고 순서대로 과정을 나열하는 방식이고, 객체 지향은 어떠한 일을 객체와 객체 간의 상호작용으로 이해하는 방식입니다. 예를 들어 카페에서 음료를 주문하는 것을 절차 지향으로 보게 된다면 고객이 점원에게 음료를 주문한다. 점원이 고객에게 해당 음료의 가격을 알린다. 고객이 음료의 값을 지불한다. 점원이..
-
[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)..
-
[Unity]유니티 입문하기 6-1(오브젝트 활성화/비활성화, 위치 조정)프로그래밍 2023. 8. 1. 19:13
이전 글을 끝으로 C#의 기본은 끝냈습니다. 이젠 스크립트로 오브젝트를 움직이고, 속성을 변경하는 등의 조작을 가하는 법에 대해서 알아보겠습니다. 일단 앞서 C#을 배울 때 PlayerController 스크립트로 여러 가지 실험을 해 봤으므로, 삭제한 뒤 다시 새로 만들어 연결해 주었고, 상하좌우 움직임을 만든 뒤엔 총알도 발사해 볼 것이므로 오브젝트도 비행기로 바꾸어봤습니다. 혹시 이런 스프라이트를 만들거나 찾기 귀찮으시다면 그냥 'Knob' 라는 이름의 스프라이트를 고르시면 원 이미지가 씌워집니다. 만약 스크립트를 생성하고 연결하시는 법을 모르신다면, 이 글에서 확인하실 수 있습니다. gameObject.SetActive() - 오브젝트 활성화와 비활성화 오브젝트를 만들어서 스프라이트를 씌우고 스크..
-
[Unity]유니티 입문하기 5-5(C# 기초개념 - 제어문)프로그래밍 2023. 7. 28. 14:03
이전 글에서는 연산자의 종류와 사용법에 대해서 자세히 알아봤습니다. 이번 글에서는 저번에 배운 다양한 연산자들을 활용하여 코드의 흐름을 제어하는 제어문에 대해서 배워보겠습니다. 제어문 기본적으로 프로그램은 위에서 아래 순서로 코드를 읽어나가며 작동합니다. 하지만 경우에 따라 특정 코드를 반복하거나, 혹은 건너뛰어야 하는 일이 생기기도 하죠. 이렇게 프로그램이 작동하는 흐름을 바꾸는 것이 제어문입니다. 제어문은 크게 조건문과 반복문으로 나뉘게 됩니다. 조건문 조건문은 코드의 한 부분에 조건을 달아, 조건문을 실행하는 시점에 해당 조건을 만족하는 코드만을 실행하도록 하는 코드입니다. 조건문에는 if문과 switch문이 있습니다. if문 if(조건식){ //조건식이 참이라면 괄호 안의 코드를 실행 } if문의..