목록Unity(유니티)/유니티 공부 (72)
Deff_Dev
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 중첩 클래스 클래스 안에 선언되어 있는 클래스를 말한다. 중첩 클래스 사용 이유 클래스들의 논리적인 그룹을 나타내기 위해 사용 클래스 외부에 공부하고 싶지 않은 형식을 만들어서 클래스 내부에서만 사용할 때 사용 (향상된 캡슐화) 현재 클래스 일부분처럼 표현할 수 있는 클래스를 만들 때 좋은 가독성과 유지보수 → Troll 클래스는 Enemy 클래스의 모든 멤버(private 포함)에 접근 가능하다. 분할 클래스 하나의 클래스를 여러 구역에 나눠서 구현하는 클래스 분할 클래스 사용 이유 규모가 크더라도 하나의 클래스에 담아야 할 경우 어떤 특징으로 여러 개의 파일에 나누어 구현할 때 사용 part..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 메소드 숨기기란 ? 부모 클래스에 이미 같은 이름의 메서드가 존재하는 경우, 자식 클래스에서 이 메서드를 새롭게 구현하고자 할 때 사용 Unity/C#에서는 이럴 경우 new를 붙일 것을 권장하는 경고가 출력된다. 경고 메소드 숨기기 예제 new 키워드를 작성하지 않고 함수를 선언해도 Test.Heal()을 호출하면 "특수 치료"가 출력된다. 그럼에도 사용하는 이유는 new 키워드를 사용함으로써 경고를 없애고, 코드를 명확하게 해서 다른 프로그래머들에게 이 메소드가 의도된 함수라는 것을 알려주기 위해서 사용한다. 오버라이딩 봉인하기 메소드를 오버라이딩 (override) 할 수 없도록 봉인할 수..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 추상 메소드 한정자, 반환 형식, 메소드 이름, 매개변수 까지만 정의하고, 메소드가 호출되었을 때 어떤 행동을 하는지 내용이 없는 메소드 추상 클래스 추상 메소드를 포함하고 있는 미완성된 클래스 추상 클래스 특징 new 연산자를 이용해 클래스 인스턴스를 생성할 수 없고, 추상 클래스를 상속 받은 자식 클래스에서만 구현 후 사용 가능하다. 추상 메소드와 추상 프로퍼티를 정의할 수 있다. 추상 메소드 특징 추상 클래스에서만 정의할 수 있다. 추상 메소드의 접근 지정자는 public이나 protected 중 하나로 정의한다. 추상 메소드를 정의할 때 static, virtual을 사용할 수 없고, a..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 다형성 객체가 여러 가지 다양한 형태를 가지는 것을 뜻한다. → 상속을 받는 자식 클래스가 다양한 형태를 가지게 된다. 업 캐스팅 (Up - Casting) 부모 클래스의 객체 변수에 자식 클래스 메모리 할당이 가능한 것 부모 클래스와 자식 클래스 사이에 형 변환이 가능하다. 부모 클래스의 참조 변수에 자식 클래스의 객체를 참조하는 업 캐스팅을 했을 때, 부모와 자식에게 동일한 메소드가 있다면 부모 클래스의 메소드가 호출된다. 업 캐스팅을 사용하는 이유 형식을 통일해 효율적으로 작업하기 위해 사용한다. 작성해야하는 코드가 더 간결해지고 추가 코드가 필요하지 않기 떄문에 수정에 용이하다. 업 캐스..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 정보은닉 클래스 외부에서 클래스의 멤버 변수에 직접 접근하지 못하도록 멤버 변수를 private로 선언하는 것 캡슐화 정보은닉으로 인해 클래스 외부에서 접근 불가능한 멤버 변수의 값을 조작할 수 있도록 생성하는 멤버 함수 상속 부모 클래스가 자식 클래스에게 public, protected로 선언된 변수와 메소드를 제공하는 것 상속을 하는 이유 여러 클래스에 동일하게 작성되는 내용은 부모 클래스로 작성한 후 자식 클래스가 상속받아 사용하면 코드 간결화에 도움이 된다. 형식을 통일해 하나의 그룹 (배열, 리스트 등)으로 관리할 수 있도록 한다. base 부모 클래스의 변수나 메소드에 접근할 때 사용..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 클래스 객체를 표현하는 속성(변수)과 기능(메소드)을 하나의 집합으로 묶는 단위 객체 : 게임내의 실제 메모리을 가지고 태어난 하나의 오브젝트 클래스 : 객체를 만들기 위한 틀 ex) 타코야끼를 만들 때 타코야끼 틀 = 클래스 만들어진 타코야끼 = 객체 // Player : 클래스 이름, MonoBehaviour : 부모 클래스 public class Player : MonoBehaviour { // 멤버 변수 (필드) private int currentHP = 100; // 멤버 함수 (메소드) public void TakeDamage(int damage){ currentHP -= damage..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 객체 지향 프로그래밍 객체를 기반으로 하는 프로그래밍 (OOP, Object Oriented Programming) 프로그램을 여러 개의 독립된 객체 단위로 분할해 각각의 객체들이 메세지를 주고받고, 데이터를 처리할 수 있다. 객체 세상의 모든 것을 지칭 (사람, 자동차 등) 세상의 모든 것을 가상의 공간에서 표현해야하기 떄문에 데이터를 나타내는 속성과 행위를 나타내는 기능으로 구분해 객체의 특징을 뽑아서 사용한다. ex) 자동차 속성 : 바퀴, 핸들, 기어, 브레이크, 엔진 등 기능 : 시동을 킨다 ,전진한다 , 후진한다 , 멈춘다 등 객체 지향 프로그래밍의 특징 추상화 : 객체의 공통적인 속..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 메소드란 ? 객체 지향 프로그래밍 언어에서 사용하는 용어 (메소드 = 함수, 프로시져, 서브루틴) 일련의 코드를 하나의 이름 아래 묶은 것 묶어 놓은 코드를 메소드의 이름을 불러 내부 코드들을 실행 public class 클래스이름 { 한정자 반환형식 메소드이름(매개변수) { // 코드 return (반환형식)데이터; } } 메소드의 장점 반복된 코드 작성이 편해지고 가독성이 높아진다. 매개 변수 값에 의한 전달 (Call By Value) 함수의 매개변수에 값을 복사해 전달한다. 값이 복사되어 매개변수로 전달되기 때문에 함수 내에서 해당 변수의 값을 변경하더라도 호출된 함수에서의 원래의 값이 ..