no image
[Unity, C#] Boxing과 Unboxing에 대하여
목차 1. Boxing과 Unboxing의 개요 2. Boxing과 Unboxing이 성능에 미치는 영향에 관하여 요약 박싱은 값 타입을 참조 타입으로 변환하는 작업을 의미하고, 언박싱은 참조 타입의 값을 값 타입으로 변환하는 작업을 의미합니다. 값 타입의 변수가 저장되는 위치는 stack메모리에 위치하고, 참조 타입은 heap 메모리에 위치합니다. 박싱이 발생할 때 힙에 공간을 할당해서(box) stack에 있는 값을 복사해 넣습니다. 그리고 stack 메모리에서는 값이 저장되어있는 객체를 가리키는 힙 메모리의 주소를 저장하게 됩니다. 사용 예시코드 int i = 123; // a value type object o = i; // boxing (박싱발생, 암묵적 형변환 가능.) int j = (int)..
2021.08.08
no image
[Unity, C#] 모바일 UI 터치방지
문제 해결링크 https://answers.unity.com/questions/1115464/ispointerovergameobject-not-working-with-touch-inp.html IsPointerOverGameObject not working with touch input - Unity Answers answers.unity.com 사용한 코드 private bool IsPointerOverUIObject() { PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current); eventDataCurrentPosition.position = new Vector2(Input.mousePosition.x,..
2021.06.02
[Unity AR Foundation] AR Foundation에서 Scaling
Scaling with ARFoundation We wanted to make scale a first class citizen in ARFoundation, so I'd like to clarify how it works. A basic AR scene has an ARSession and an... forum.unity.com 결론 GameObject의 크기 및 방향을 변화시키려면 물체의 scale이나 rotate를 줄이거나 늘리는 것 보다 ARSessionOrigin을 이동시키거나 회전시키는 편이 좋다. 이걸 할 수 있도록 도와주는 메소드가 ARSessionOrigin.MakeContentAppearAt이다. Scaling with ARFoundation 번역 기본 AR Scene에는 ARSessi..
2021.05.05
[Unity, AR Foundation] AR Foundation에 대하여
About AR Foundation | AR Foundation | 3.1.10 About AR Foundation AR Foundation allows you to work with augmented reality platforms in a multi-platform way within Unity. This package presents an interface for Unity developers to use, but doesn't implement any AR features itself. To use AR Foundation o docs.unity3d.com AR Foundation version : AR Foundation 3.1.10 www.notion.so notion에 About AR Fou..
2021.05.05
no image
[Unity, C#] 중첩 클래스(Nested Class)
중첩 형식 - C# 프로그래밍 가이드 클래스, 구조체 또는 인터페이스 내에서 정의된 형식을 C#에서 중첩 형식이라고 합니다. docs.microsoft.com 중첩 클래스의 사용이유 1. 현재의 클래스의 일부분처럼 표현할 수 있는 클래스를 만들고자 할 때 2. 클래스 외부에 공개하고 싶지 않은 형식을 만들고자 할 때 위 특징을 보면 이해가 되겠지만, 저런 특징들 때문에 접근 한정자의 디폴트가 private입니다. 뒤에 사용법 설명에서 확인할 수 있습니다. 중첩 클래스 사용법 중첩 클래스란 클래스, 구조체, 인터페이스 내에서 또 class가 선언된 것을 의미합니다. // 1번 코드 public class Container { class Nested { Nested() { } } } 예제코드를 보면, 위 처..
2021.05.02
[Unity, C#] 배열의 default 초기화
배열 - C# 프로그래밍 가이드 C#의 배열 데이터 구조에 형식이 동일한 변수를 여러 개 저장합니다. 형식을 지정해 배열을 선언하거나 개체를 지정해 모든 형식을 저장합니다. docs.microsoft.com 배열을 선언했을 때(static, 전역이 아닐 때) C언어처럼 생각하여 배열에 쓰레기 값이 들어가있을 것이라 착각하여 찾아본 레퍼런스입니다. 배열 개요 배열에는 다음과 같은 속성이 있습니다. 배열은 단일 차원, 다차원 또는 가변일 수 있습니다. 차원 수와 각 차원의 길이는 배열 인스턴스를 만들 때 설정됩니다. 이러한 값은 인스턴스의 수명 동안 변경할 수 없습니다. 숫자 배열 요소의 기본값은 0으로 설정되고, 참조 요소는 null로 설정됩니다. 가변 배열은 여러 배열로 구성되어 있기 때문에 해당 요소가..
2021.04.30
[Unity] GameObject 코드에서 생성
Unity - Scripting API: GameObject.GameObject Transform is always added to the GameObject that is being created. The creation of a GameObject with no script arguments will add the Transform but nothing else. Similarly, the version with just a single string argument just adds this and the Transform. Fi docs.unity3d.com GameObject 생성자 public GameObject(); public GameObject(string name); public Game..
2021.04.18
[Unity, C#] 다른 c#파일의 class 호출
다른 C#파일의 Class 호출 C#은 C, C++처럼 다른 곳의 소스코드를 들고올 때 #include와 같은 것을 사용안해도 호출이 가능합니다. 모두 동일한 네임스페이스에 있는 한 모두 마법처럼 서로를 찾을 수 있습니다. 그래서 C#에는 #include문이 존재하지 않습니다. C#은 다른 파일에 있는 클래스를 참조하는 경우 파일이 프로젝트에 포함되어 있고 동일한 네임 스페이스에 있으면 아무것도 수행할 필요없이 참조할 수 있습니다. 다른 네임스페이스에 있는 Class호출의 경우 호출하고 싶은 C#파일의 Class가 다른 파일에 있다면 이런 경우에는 한 가지 작업만 해주면 똑같이 사용할 수 있습니다. 예를들어, Call.cs 파일의 A class를 호출하고 싶은데 A class가 NamespaceStudy..
2021.04.18
no image
[Unity error] UI버튼 클릭 안됨. / Runtime Inspector & Hierarchy Asset
문제 해결 링크 Can't click UI Buttons Hi , why my button can't be pressed?? Here is my screenshot: forum.unity.com UI버튼 클릭 안됨. Runtime Inspector & Hierarchy Asset을 사용해서 디버깅을 하려했는데, UI클릭이 먹지 않았다. 되는게 없냐. 이벤트 시스템도 확인했었고, 여러 가지를 다 체크해봤지만 되지 않았다. 그러다 위 링크해서 해결법을 발견했는데, 내가 클릭하려는 UI 부모 게임 오브젝트에게 Graphic Raycaster 컴포넌트를 추가하면 해결된다고 해서 했더니 됐다. 다행..
2021.04.07