이 글은 PC 버전 TISTORY에 최적화 되어있습니다.
서론
C#의 2차원 배열의 메모리 구조를 확인하기 위해 변수의 주소값을 찍어보려다
1. 예제코드2. 유니티에서 unsafe 코드를 사용하는 방법3. C#의 메모리 구조
예제코드
using UnityEngine;
using System.Collections;
using System;
using System.Collections.Generic;
using System.Text;
public class NewBehaviourScript : MonoBehaviour {
void Start () {
int i, j;
// 4행 2열의 배열 선
int[,] array = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
// 안전하지 않은 포인터를 사용하기 위한 코드
unsafe {
for (i = 0; i < 4; i++) {
for (j = 0; j < 2; j++) {
// 가비지 콜렉터가 변수를 이동시키지 못하게 함
fixed(int *a =&array[i, j]) {
Debug.Log ((int)a);
}
}
}
}
}
}
유니티에서 unsafe 코드를 사용하는 방법
ㄴ. Asset내에 rsp 파일 생성
1. Api Compatibility Level을 to .NET 2.0 Subset 로 바꿉니다.
2. 프로젝트 경로/Asset에 smcs.rsp 파일을 만듭니다. 그리고 유니티와 모노디벨롭을 재 시작해줍니다.
C#의 메모리 구조
'Frontend > Unity' 카테고리의 다른 글
[유니티 에셋번들 사용법] 3. 에셋번들 다운로드와 로드 (11) | 2016.11.28 |
---|---|
[유니티 에셋번들 사용법] 2. 에셋번들의 생성 및 빌드 (15) | 2016.11.25 |
[유니티 에셋번들 사용법] 1. 에셋번들이란? (2) | 2016.11.25 |
[유니티 C# 기초 강의] 13. SendMessage와 BroadcastMessage (0) | 2016.08.05 |
[유니티 트랜스폼] 카메라 추적 (Follow Cam) (1) | 2016.08.04 |
[유니티 트랜스폼] 회전 (Rotate) (0) | 2016.08.04 |