본문 바로가기
오류 해결

[유니티 오류] CS1612: Cannot modify the return value of 'List<>.this[int]' because it is not variable

by fortissimo 2024. 2. 20.

C#에서 struct로 되어있는 List를 수정하려 할 때 발생하는 문제.

리스트의 원소를 참조할 때에는 원소의 그 값 자체가 아니라 복사된 값을 가져오기 때문에 발생한다.

 

해결 방법

1. List를 배열로 변경한다. 배열은 원소의 값 자체를 참조할 수 있다.

2. 구조체 대신 클래스를 사용한다.

3. 원하는 데이터를 가진 구조체 인스턴스를 생성 후 수정을 원하는 구조체를 재할당해준다.

 

참고: https://stackoverflow.com/questions/414981/directly-modifying-listt-elements