목록Unity(유니티) (72)
Deff_Dev
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. ArrayList 배열과 가장 흡사한 구조를 가지고 있는 컬렉션 요소에 접근할 때는 첨자 연산자 []를 이용하고, 원하는 위치에 데이터를 추가하거나 삭제하는 것이 자유롭다. 배열과는 다르게 용량을 미리 지정할 필요가 없고 데이터를 추가하거나 삭제했을 때 자동으로 용량이 늘어나거나 줄어든다. ArrayList 함수 ArrayList.Add(object) 마지막 요소 뒤에 새로운 요소 추가 int, float, string, class, null 등 원하는 데이터 추가 가능 private void Awake() { // ArrayList 선언 ArrayList array = new ArrayList..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 컬렉션(Collection) object 타입의 데이터를 담는 자료구조 배열과 함께 .NET 프레임워크가 제공하는 다양한 컬렉션 자료 구조 Array, ArrayList, Queue, Stack, Hashtable ArrayList, Queue, Stack, Hashtable대한 내용은 따로 포스팅하겠다.
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 멤버 변수를 public으로 선언 후 사용 시 멤버 변수의 은닉성을 지키지 못하기 때문에 → 멤버 변수의 은닉성을 지키기 위해 Get(), Set() 멤버 함수를 사용한다. 하지만 이 방법은 멤버 변수를 많이 선언할 수록 Get/Set 메소드 쌍이 많아지고, 변수에 접근한다는 개념이 아닌 메소드에 접근한다는 느낌이 크다. 해당 문제를 조금이라도 해소하기 위해 프로퍼티를 사용한다. 프로퍼티 멤버 변수의 은닉성을 보장 변수에 접근하는 것과 같이 대입 연산자 (=) 사용 가능 get {…} 접근자 : 멤버 변수로 부터 값을 읽어옴 set {…} 접근자 : 멤버 변수에 값을 할당함 value : set..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 이름 공간 (namespace) 하는 일이 비슷한 클래스, 구조체를 하나로 묶어 놓은 것 매우 다양한 클래스가 존재할 때 클래스 이름이 중복되지 않도록 따로 이름을 붙여서 설정 클래스 이름과 이름공간 이름이 같아도 되지만 문제가 될 수 있으니 같은 이름을 사용하지 않는다. using (이름공간 이름); 으로 선언한 뒤 이름공간에 있는 클래스, 구조체를 사용하면 된다. 여기서 MyTest와 YourTest에는 같은 이름의 Test 클래스가 존재하기 떄문에 어느 이름공간의 Test 클래스인지 확실하게 명시해줘야 한다. MyTest.Test, YourTest.Test와 같이 해당 이름 공간의 클래스에..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. static 정적 메소드, 정적 변수, 정적 클래스 구현에 사용 정적 메소드, 정적 변수는 클래스의 인스턴스가 아닌 클래스 자체에 소속 정적 메소드 인스턴스 메소드와 달리 클래스로부터 객체를 생성하지 않고 직접 호출 메소드 내부에서 intance 멤버를 참조할 수 없다. new로 만들어진 클래스 객체로부터 호출될 수 없다. 정적 메소드에서 인스턴스 메소드 호출 불가능 객체 생성 없이 정적 메소드 호출 가능 정적 변수 인스턴스 변수와 달리 클래스로부터 객체를 생성하지 않고 직접 호출할 수 있다. 인스턴스 변수는 클래스 인스턴스를 생성할 때마다 메모리에 매번 새로 생성되지만 static 변수는 프로..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 구조체 클래스와 유사한 구조를 가지고 있다. 클래스처럼 변수와 메소드를 가질 수 있다. 클래스는 객체를 만들고 추상화 하는데 목적이 있고, 구조체는 데이터를 담기 위한 자료 구조로 사용한다. 편의를 위해 변수를 public으로 선언하는 경우가 많다. 특징 클래스 구조체 키워드 class struct 형식 참조 형식 값 형식 복사 얕은 복사 깊은 복사 인스턴스 생성 new 연산자와 생성자 필요 선언만으로도 사용 가능 구조체 변수에 new를 붙일 때 기본 생성자를 이용해 구조체 내부 모든 변수의 값을 초기화한다. 구조체 내부 변수에 바로 접근 가능하다. 구조체 변수에 new를 붙이지 않을 때 직접 ..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 중첩 클래스 클래스 안에 선언되어 있는 클래스를 말한다. 중첩 클래스 사용 이유 클래스들의 논리적인 그룹을 나타내기 위해 사용 클래스 외부에 공부하고 싶지 않은 형식을 만들어서 클래스 내부에서만 사용할 때 사용 (향상된 캡슐화) 현재 클래스 일부분처럼 표현할 수 있는 클래스를 만들 때 좋은 가독성과 유지보수 → Troll 클래스는 Enemy 클래스의 모든 멤버(private 포함)에 접근 가능하다. 분할 클래스 하나의 클래스를 여러 구역에 나눠서 구현하는 클래스 분할 클래스 사용 이유 규모가 크더라도 하나의 클래스에 담아야 할 경우 어떤 특징으로 여러 개의 파일에 나누어 구현할 때 사용 part..
해당 포스팅은 고박사님의 유니티 C# 강의를 보고 공부한 내용과 추가적으로 공부한 내용을 정리한 포스팅입니다. 메소드 숨기기란 ? 부모 클래스에 이미 같은 이름의 메서드가 존재하는 경우, 자식 클래스에서 이 메서드를 새롭게 구현하고자 할 때 사용 Unity/C#에서는 이럴 경우 new를 붙일 것을 권장하는 경고가 출력된다. 경고 메소드 숨기기 예제 new 키워드를 작성하지 않고 함수를 선언해도 Test.Heal()을 호출하면 "특수 치료"가 출력된다. 그럼에도 사용하는 이유는 new 키워드를 사용함으로써 경고를 없애고, 코드를 명확하게 해서 다른 프로그래머들에게 이 메소드가 의도된 함수라는 것을 알려주기 위해서 사용한다. 오버라이딩 봉인하기 메소드를 오버라이딩 (override) 할 수 없도록 봉인할 수..