프로퍼티 경로는 컨테이너 오브젝트 내에서 프로퍼티의 위치를 설명하는 문자열입니다.
프로퍼티 경로를 사용하여 특정 경로에서 오브젝트의 데이터를 가져오거나 설정하거나 오브젝트의 하위 프로퍼티에서 방문자를 수락할 수 있습니다.
프로퍼티 경로는 문자열로 구성되며 루트 오브젝트에서 특정 프로퍼티 인스턴스를 확인합니다. 예를 들어 foo.bar.baz[12] 경로는 foo 컨테이너 내에 중첩된 baz 리스트 컨테이너의 13번째 요소를 bar 컨테이너 내에서 확인합니다.
프로퍼티 경로를 만들고 조정하려면 Unity.Properties.PropertyPath 클래스를 사용합니다.
프로퍼티 경로를 사용하여 다음을 수행할 수 있습니다.
Unity.Properties.PropertyPath는 변하지 않는 구조체 유형입니다. 문자열에서 프로퍼티 경로를 구성할 때 하위 문자열 추출에 대한 할당이 발생합니다.
다음 표에는 프로퍼티 경로가 문자열에서 구성될 때 발생하는 할당 동작이 나열되어 있습니다.
| 문자열 | 길이 | 할당 | 할당 사유 |
|---|---|---|---|
"Path" |
1 | 0 | 문자열을 그대로 사용합니다. |
"Path.To" |
2 | 2 | 문자열을 두 부분으로 나눕니다. |
"Path.To[2]" |
3 | 3 | 문자열을 두 부분으로 나누고 인덱스를 추출합니다. |
"Path.To[2].My" |
4 | 4 | |
"Path.To[2].My.Value" |
5 | 6 | 추가 부분에 배열을 할당합니다. |
다음 표에는 프로퍼티 경로가 여러 부분으로 구성될 때 발생하는 할당 동작이 나열되어 있습니다.
| 문자열 | 길이 | 할당 | 할당 사유 |
|---|---|---|---|
PropertyPath.FromName("Path") |
1 | 0 | |
PropertyPath.AppendName(previous, "To") |
2 | 0 | |
PropertyPath.AppendIndex(previous, 2) |
3 | 0 | |
PropertyPath.AppendName(previous, "My") |
4 | 0 | |
PropertyPath.AppendName(previous, "Value") |
5 | 1 | 추가 부분에 배열을 할당합니다. |
성능을 최적화하고 메모리 할당을 방지하려면 다음을 수행합니다.