하는 목적 ?

디버깅 시 도저히 모를 경우 메모리를 찾아서 제대로 값이 들어가 있는지 확인 할 때 유용함

※ 메모리 주소 보기

1. 디버깅 포인트를 찍고 디버깅 실행

2. 조사식 열기 (디버그 -> 창 -> 조사식 -> 조사식 1,2,3,4 중에 아무거나 하나 선택)

3. &(주소연산자)를 사용하여 메모리 번지를 볼 수 있다.

 

※ 메모리에 값 보기

1. 디스어셈블 보기

- 디버깅 포인트 찍고 디버깅 활성화 -> 디스어셈블 실행

- 주소 입력 후 엔터 치면 입력 된 주소로 커서가 이동함.(메모리 주소는 16진수 메모리 번지로 되어있어서 0x가 들어감)

 

2. 메모리 보기

- 디버깅 포인트 찍고 디버깅 활성화 -> 메모리 1,2,3,4 중 하나 실행

 

-  디버깅 포인트 찍고 디버깅 활성화 -> 주소 입력 후 엔터 치면 입력 된 주소로 커서가 이동함.

마우스 우클릭하면 아래처럼 나옴

- 1바이트 정수로 표현

★ CC -> C 하나당 4Bit 합쳐서 8bit -> 1Byte

★ C는 주소에 데이터가 없는 상태임(C언어라서 C라는 데이터 들어있다고 생각 됌.)

★ CC -> 오른쪽부터 데이터가 채워짐 

ex) C0 , C1,C2....CF ,0F,1F....FF 이런식 (4bit -> 16진수로 표현)

 

 

- 4바이트 정수로 표현

CCCC CCCC  -> C하나당 4bit 합치면 32bit -> 4byte

 

※ 추가 설명

- 1바이트 정수 표현으로 설명

 

16진법으로 1식 증가하여 메모리 주소 번지를 가짐.

0x00EFF7DC -> 0x00EFF7DD -> ... -> 0x00EFF7DF -> 0x00EFF7E0 -> ...

16진법으로 계산 됌

'VisualStudio 디버깅' 카테고리의 다른 글

반복문 디버깅 시 조건 걸어 보는 방법  (0) 2022.10.18

https://planek.tistory.com/31?category=1125872 

 

RectTransform 이해하기: rect, scale, anchoredPosition vs localPosition

RectTransform WorldSpace 좌표계로 가정한다. RectTransform canvas 값 panel 값 .position (WorldSpace) ㆍWorldSpace 상의 피벗 위치 (3, 2) ㆍWorldSpace 상의 피벗 위치 (5, 4) .position (ScreenSpace) ㆍS..

planek.tistory.com

 

https://drehzr.tistory.com/413

 

Unity) UGUI RectTransform

UGUI RectTransform 유니티 Canvas에서는 RectTransform이라는 컴포넌트를 지원한다. GUI에서 위치 포지션을 설정하는 기본적인 컴포넌트로 UI에 대한 작업을 지원한다. 기본적으로 Canvas의 하위에 있는 UI에

drehzr.tistory.com

굿

- UI 좌표계 정리 잘 된 사이트

https://onecoke.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0-%EC%A2%8C%ED%91%9C%EA%B3%84

 

유니티 :: 좌표계

유니티의 좌표계는 아래와 같이 3가지가 있다. 1. World Point : 실제 gameObject의 transform.position 값 2. Viewport Point : 카메라 내에서 오브젝트가 위치하고 있는 비율 ( 따라서 값이 0~1 사이의 값으로..

onecoke.tistory.com

 

- 다시 정리

※ 카메라

1.  World Point  :

실제 GameObject 의 Transform.position 값

 

2. Viewport Point :

카메라 내에서 오브젝트가 위치하고 있는 비율 (따라서 값이 0 ~1 사이의 값으로 나타난다)

카메라 View에 보여지는 해상도를 (0,0) ~(1,1)로 표현

3. Screen Point : 

카메라 내에서 오브젝트의 위치를 해상도 기준으로 좌표를 매긴 값

ex) 1920 x 1080 해상도에서는 (0, 0) 부터 (1920, 1080) 까지 표현할 수 있다.

카메라 View에 보여지는 해상도를 (0,0) ~ (현재 해상도 크기)로 표현

 

알아 둘 것 : World Point 값 x Viewport Point 값 = Screen Point 값이 된다.

본 코드 작성은 Unity에서 함.

문제점 : 

Unity상에서 Event로 등록 된 Class의 객체가 삭제할 경우 이벤트 호출 시 MissingReferenceException 이 생김.

 

- 1회차 객체 생성 

-1회차 객체 지움

- 2회차 객체 생성 

- 2회차 객체 지움 

이러한 결과가 나옴.

결론 :

이벤트 함수 해제 시, 이벤트로 등록 된 메서드가 아니여서 참조할 주소가 없다고 생각이 되어짐.

등록 할 때의 무명 메서드 메모리 주소와 해제 할 때의 무명 메서드의 메모리 주소가 다를 것이라고 생각함.

 

※ 해결 방법 1

- 2회차 객체 지움

잘됨

※ 해결 방법 2

- 2회차 객체 지움

잘됨

- 동영상 

https://www.youtube.com/watch?v=7h1cnGggY2M 

 

- Input 자료

https://gamedevbeginner.com/how-to-convert-the-mouse-position-to-world-space-in-unity-2d-3d/

 

How to convert the mouse position to world space in Unity (2D + 3D) - Game Dev Beginner

Find the best method for converting the mouse's position on the screen to a real position in the world in my comprehensive guide.

gamedevbeginner.com

 

https://www.csharpstudy.com/CSharp/CSharp-delegate2.aspx

 

C# delegate 2 - C# 프로그래밍 배우기 (Learn C# Programming)

C# delegate 필드와 delegate 속성 C# delegate 1 에서 보듯이, delegate는 메서드의 파라미터로 전달될 수 있다. 이와 맥락을 같이하여 delegate는 또한 클래스의 필드나 속성에 사용될 수 있다. 일종의 함수

www.csharpstudy.com

https://hijuworld.tistory.com/42

 

C#/.NET 이벤트(Event) 이해하기

이벤트를 이해하기 위해선 델리게이트(delegate)를 우선 알아야 한다. 델리게이트에 대해서는 아래 링크를 참조하자. C# 델리게이트와 함수 포인터 : http://hijuworld.tistory.com/39 이벤트를 발생시키는

hijuworld.tistory.com

잘 정리되어있는 사이트이다

+ Recent posts