inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

새싹부터 시작하는 Unity 게임 개발

배열

Dictionary 관련 메소드 사용 질문 드립니다.

해결된 질문

62

Lucas

작성한 질문수 27

0

public Dictionary<string, int> c = new Dictionary<string, int>();

c.Add("A", 5);
public Dictionary<string, int> c = new Dictionary<string, int>();

private void Start()
{
    c.Add("A", 5);
}

왜 Start() 메서드 안에 있으면 에러가 발생하지 않고 dictionary 선언 후 바로 Add를 하면 에러가 발생하는지 궁금합니다.

image.png

 

C# unity collider .csv json-parsing

답변 1

1

Pinous

안녕하세요 🙂
C#에서는 클래스의 필드 선언부에서 메서드 호출(문장 실행)을 직접적으로 할 수 없습니다.

c.Add("A", 5);는 명령문이기 때문에 클래스 바디에서 직접 실행할 수 없습니다.

클래스 바디에서 실행할 수 있는 것은 필드 초기화 뿐입니다.

Start는 Unity의 라이프사이클 메서드이며, 게임 오브젝트가 활성화될 때 호출합니다.
이 시점에는 c라는 딕셔너리가 정확히 new Dictionary<string, int>();
로 초기화가 되어있기 때문에 .Add()가 가능해집니다.

public Dictionary<string, int> c = new Dictionary<string, int>()

{

{ "A", 5 }

};
필드 선언시에 데이터를 함께 넣고 싶으시다면 초기화 구문을 함께 사용하시면 됩니다.

1

Lucas

아하 unity의 작동 방식이 조금 더 이해된 것 같아요. 감사합니다 🙂

프로젝트 질문 문의

0

32

1

UI 기능 관련 질문이 있습니다!

0

24

2

03-01 (16. CharacterController)

0

23

2

TLS 질문드립니다.

0

35

2

Task 구현 28:36 Equals 에서 잘 모르는 부분이 있습니다.

0

20

2

SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.

0

39

2

픽셀 좌표 스크린 좌표

0

26

0

Locomotion랑 Turn 이 꼭 부모 자식 관계일 필요가 있나요?

0

19

1

Rider대신 VS를 써도 괜찮나요?

0

102

2

anim.SetTrigger("IsHit")이 해제가 안됩니다.

0

52

1

8:56초 b.Remove(3) 부분 설명에 대해 질문드립니다.

0

55

2

2D게임에서 트램플린 Trigger감지관련

0

111

1

Tilemap Collider 2D 사용 시 평지에서 캐릭터가 안 움직이는 현상

1

165

1

Game화면에서 캐릭터가 끊기듯 움직입니다.

0

158

1

Start 자동 완성이 안됩니다.

0

179

2

섹션2. 메서드와 접근자에서 잘못된 설명이 있어요.

0

201

2

애니메이션 점프 적용되지 않는 문제

0

317

2

캐릭터 이동 구현 rotation 값 변경

0

251

2

안녕하세여 3D 오브젝트 Material 관련 질문입니다

1

228

1

제가 놓친 부분이 있는데 혹시 어디서 확인할 수 있나요...?

1

323

2

화면 설정 문의의 건

2

248

2

anim.SetBool

1

306

2

Start문 자동완성

2

230

1

2D Object에 Square가 안나옵니다 ㅠ

2

438

2