기본기부터 탄탄하게 다지자라는 마인드로 '유니티로 배우는 C#프로그래밍' 책을 구매함 ㅇㅇ
메서드:함수와 같은 개념이다. 작업을 수행시키는 방법이며 모든 것이 메서드로 만들어진다.
클래스: 개념적으로 정보,작업,동작을 담고 있다. 클래스 간에 서로 통신이 가능하다. 데이터 구조로 이루어져 있으며 클래스의 객체가 생성되면 모두 참조할 수 있다. Unity에서 생성되는 모든 스크립트는 클래스이다.
MonoBehaviour: 클래스가 Unity Scene의 게임 오브젝트에 연결될 수 있다는 것을 의미한다.
점 표기법(점 연산자) : 클래스 내 모든 필드, 메서드 기타 데이터 타입은 점 표기업으로 액세스 할 수 있다. 클래스 간의 통신도 가능하다.
Debug.Log(): 이 메서드를 이용해 변수, 문자 등을 출력할 수 있다.
Debug.LogFormat(): 이 메서드를 이용해 텍스트 내부에 플레이스 홀더를 이용해 변수를 배치할 수 있다. ex)Debug.LogFormat(“Hello {0}”,name); 이면 name변수의 문자열이 (0)에 출력된다. 인덱스는 0부터 시작해 순차적으로 사용 가능하다.
문자열 보간: $를 이용해 변수와 리터럴 값을 텍스트에 직접 삽입 가능
ex)Debug.Log($”Hello {name}”);
AccessModifier: public,private,protected,internal
public:제한 없이 모든 스크립트에서 사용 가능
private:생성된 클래스에서만 사용가능
protected:포함하는 클래스 또는 파생된 타입에서 액세스 가능
internal:현재 어셈블리에서만 사용 가능
c# 공용 기본 Type: int, float, string, bool
var:타입추론. 변수의 타입을 추론할 수 있다. 지나친 사용 X
Awake():모든 오브젝트가 초기화되고 실행된다.(Start함수의 이전 및 프리펩의 인스턴스화 직후에 실행)
Start():스크립트 인스턴스가 활성화 될 때 실행. (첫 번째 프레임의 업데이트 전에 실행)
Update():매 프레임마다 실행. 특정 입력에 따라 반복되는 메서드. 마우스, 키보드 입력을 감지하거나 게임 플레이 로직을 실행하는 데 적합하다.
Collection:배열, 리스트. 딕셔너리
배열:여소의 추가나 삭제가 불가능해 유연성이 가장 떨어진다. 대신 처리속도가 빠르다.
기본구조: elementType[] name = new elementType[numberofelemets];
ex) string[] name=new string[3];, string[] name= new string[]{name1, name2, name3};
Length프로퍼티:name.Lenght를 이용해 name배열의 길이를 알 수 있다. List,Dictionary에서는 사용 불가하다.
리스트:배열에 비해 요소의 추가, 삭제, 업데이트가 쉽지만 성능상 비용이 많이 든다.
기본구조: List<elementType> name= new List<elementType>();
ex)List<string> name= new List<string>(){ name1, name2};
Count프로퍼티:리스트의 수를 알 수 있다.
Add()메서드: 리스트의 마지막에 새 요소를 추가한다. ex)name.Add(“name3”);
Insert()메서드: 특정 위치에 요소를 추가한다. ex)name.Insert(1,”name1.5”);
RemoveAt(),Remove():리스트의 요소를 제거한다.
딕셔너리: Key Value Pair를 이루는 값을 저장한다. 베열과 리스트와는 달리 순서가 없다.
기본구조:Dictionary<KeyType,ValueType> name= new Dictionary<KeyType, ValueType>();
ex) Dictionary<string int> Item= new Dictionary<string int>()=
{
{"potion,5"},{"Aspirin",1}
}
으로 선언할 수 있다.
int potionnum= Item["potion"]이면 potionnum이 5가 할당된다.
Item["potion"] =10;이면 potion의 밸류값이 10으로 바뀐다.
Item.Add("Sword",120);을 이용해 추가도 가능하다.
Item.ContainsKey("potion")을 이용하면 potion이 있는지 불 값으로 반환한다.(ContainsKey)사용
.Remove도 사용가능하다.
foreach:컬렉션의 각 요소를 가져온 후 지역변수에 저장해 구문 내에서 액세스 하는 역할을 한다.
지역변수 타입은 컬렉션 요소 타입과 일치해야 한다.
기본구조:foreach(elementType localName in colloectionVariable)
{
}
Dictionary에서 foreach를 다룰 때는 KeyValuePair타입을 사용해야한다.
ex)
foreach(KeyValuePair<string,int> kvp in members)
{
Debug.Log($”name:{kvp.Key} age:{kvp.Value});
}
'Unity & C# Basics' 카테고리의 다른 글
| C#책 공부일지 : Simple Animation, Animation Script (0) | 2023.08.17 |
|---|---|
| C#책 공부일지 : 3D공간, 프리펩, Light (0) | 2023.08.17 |
| C#책 공부일지 : OOP, 생성자, 구조체 (0) | 2023.08.17 |
| C# 공부일지 : Basics (1) | 2023.07.12 |
| Unity 공부일지 : SerializeField, Instance, 접근지정자, Awake, Start, Update, 반복문, 클래스 메서드 (0) | 2023.06.16 |