Unity 83

[Unity][개념,방법] 네이티브 플러그인(Native Plugins)

[1] 플러그인 유니티 플러그인에는 두가지 종류가 있습니다. 1. Managed plug-ins 2. Native plug-ins 이 중, 네이티브 플러그인을 살펴보겠습니다. [2] 네이티브 플러그인 1. 네이티브 플러그인은 platform-specific native code libraries 입니다. 2. 네이티브 플러그인은 C 기반 언어 (C, C++, and Objective-C) 로 작성가능합니다. 3. 네이티브 플러그인은 simple C interface를 제공합니다. 4. 네이티브 플러그인은 타겟 플랫폼에서 네이티브 코드 컴파일러로 빌드됩니다. 유니티에서는.. native 플러그인이 제공하는 인터페이스를 다른 C# 스크립트들에게 공개하는 브릿징 C# 스크립트를 만들어줍니다. 그럼 다른 스크립..

Unity 2022.09.02

[Unity][개념,방법] 오브젝트 풀링(ObjectPool) 이란?

오브젝트 풀링 프로그래밍에서 오브젝트를 생성하거나 파괴하는 작업은 메모리가 많이드는 작업이다. 오브젝트 생성은 메모리를 새로 할당하고 리소스를 로드하는 등의 초기화하는 과정이 필요하며 오브젝트 파괴는 파괴 이후에 발생하는 가비지양이 상당하여 가비지 컬렉팅으로 인한 프레임 드랍이 발생할 수 있다. 이를 해결하기 위해서 사용되는 기법이 바로 오브젝트 풀링(Object pooling)이다. https://docs.unity3d.com/ScriptReference/Pool.ObjectPool_1.html Unity - Scripting API: ObjectPool Object Pooling is a way to optimize your projects and lower the burden that is plac..

Unity 2022.08.25

[Unity][개념] 유니티 단위 unity

스케일 및 단위 프로젝트 스케일과 선호하는 측정 단위는 실제 같은 씬을 만드는 데 매우 중요한 역할을 합니다. 많은 “실제” 설정에서 1 Unity 단위 = 1m(100cm)를 사용하는 것이 좋습니다. 많은 물리 시스템이 이 단위 크기를 사용하기 때문입니다. 자세한 내용은 아트 에셋 베스트 프랙티스 가이드를 참조하십시오. 3D 모델링 애플리케이션과 Unity 간에 일관성을 유지하려면 임포트한 게임 오브젝트의 스케일과 크기를 항상 확인해야 합니다. 3D 모델링 애플리케이션은 FBX 익스포트 구성의 단위 및 스케일 설정을 보유하고 있습니다(해당 3D 모델링 소프트웨어의 설명서에서 구성 팁 참조). 일반적으로, Unity로 임포트할 때 스케일을 일치시키는 가장 좋은 방법은 툴을 센티미터 단위로 설정하고 자동 ..

Unity 2022.08.23

[Unity][개념] GameObject, gameObject 차이

유니티 튜토리얼 진행중에 둘의 차이점이 궁금해졌다. 어떨때는 gameObject로 사용하다가 어떨때는 GameObject로 사용하고.. 유니티 매뉴얼을 뒤져보면 GameObject는 Base Class로 Object Class를 상속 받고... blah blah....;; 역시 모든 매뉴얼은 이해하기 최대한 어렵게 써놓아야 제맛(?)인듯. 그래야 그거 쉽게 풀어논 사람이 또 돈도 벌고 책도 쓰고 그러는거 같다. 이와 관련해서 유니티 Q&A에 fafase 라는 아이디를 가진분이 완전 자세히 둘의 차이점을 설명 해준듯. When using gameObject, it means the script has a reference to the game object, Unity did that for you so y..

Unity 2022.08.23

[Unity][방법] 런타임 실행 순서 변경 방법(설정 및 소스)

스크립트 실행 순서 소스 [DefaultExecutionOrder(-10000)] public class Test : MonoBehaviour { void Start() { Init(); } } [DefaultExecutionOrder(-10000)] - ()안에 순번을 정할 수 있다. 스크립트 실행 순서 설정 Script Execution Order 설정을 사용하면 Unity가 다른 MonoBehaviour 클래스의 이벤트 함수를 호출하는 상대 순서를 지정할 수 있습니다. 예를 들어 Unity가 MoveForward MonoBehaviour 스크립트를 실행하기 전에 Rotation MonoBehaviour 스크립트의 이벤트 함수를 실행하도록 지정할 수 있습니다. 이러한 순서는 이벤트 함수의 각 카테고리..

Unity 2022.08.23

[Unity][팁]스크립트가 적용된 오브젝트 쉽게 찾기

보통 본인이 소스코드를 직접 짜고, 오브젝트에 붙인 것들은 어떤 오브젝트에 어떤 스크립트가 있는 지 알 수 있겠지만, 외부에서 받아온 Package를 import할 때면, 어떤 오브젝트에 무슨 스크립트가 붙어있는 지 알기 어렵다. 아마 오브젝트를 일일히 클릭해서 어떤 스크립트가 달려있는 지 보았을 것이다. (나는 그랬다 ㅠㅠ) ※ 요약 스크립트를 우클릭한 후, Find References in Scene 을 클릭하면 Scene에 있는 오브젝트에서 스크립트를 가지고 있는 오브젝트만 검색된다. 알기 쉽게, 테스트 씬을 만들어보았다. 1. 순서대로 cube1 , cube2, cube3, cube4 (4개) 2. cube1 과 cube2 에만 a 스크립트를 만들어서 추가했다. 3. a 스크립트를 마우스 우클릭하..

Unity 2022.08.23

[Unity][개념] 유니티 프로퍼티 (인스펙터 정리) PropertyAttribute

유니티 최대 장점중 하나는 스크립트를 통해서 유니티 자체를 확장해 나갈 수 있다는 것입니다. 에셋 스토어(Asset Store)에서 판매되고 있는 유용한 유틸리티들도 바로 이 속성(Attribute)들을 잘 활용해서 사용자가 편리하게 사용할 수 있도록 도와주고 있습니다. 개인 프로젝트를 진행함에 있어서도 인스펙터에서의 작업이 편리해질 수 있다면 이를 사용하지 않을 이유는 없을 것입니다. 유니티는 이 속성을 지정할 수 있는 기능을 많이 있습니다. 오늘은 인스펙터에서 주로 사용되는 기능들만 소개해 드리겠습니다. 보다 자세한 내용은 아래 링크를 참고하시면 됩니다. 첨부된 파일에는 여기서 소개하는 모든 기능을 샘플로 만들어서 담아두었습니다. 그리고 바로 사용하실 수 있도록 소스코드를 통해서 소개해 드리겠습니다...

Unity 2022.08.22

[Unity][개념] RequireComponent란?

Unity - Scripting API: RequireComponent When you add a script which uses RequireComponent to a GameObject, the required component will automatically be added to the GameObject. This is useful to avoid setup errors. For example a script might require that a Rigidbody is always added to the same G docs.unity3d.com RequireComponent RequireComponent속성은 요구되는 컴포넌트를 종속성으로 자동으로 추가해줍니다. RequireComponent를..

Unity 2022.08.22

[Unity][개념] MonoBehaviour 총정리 및 생명주기(Lifecycle)

1. 모노 (Mono) .Net은 마이크로 소프트(MicroSoft)에서 C언어에 자바의 장점을 수용하여 개발한 MS Windows 프로그램 개발 및 실행 환경이자 언어이다. 네트워크와 UI 등의 많은 작업을 캡슐화 하여 코딩의 효율성을 극대화 한 .Net 의 강력한 기능을 사용하기 위해서는 .Net 프레임워크가 설치 된 윈도우 환경이 있어야 했다. 이에 윈도우가 아닌 다른 플랫폼에서 .Net 프레임워크를 사용하기 위해 개발된 것이 얼마 전 MS에서 인수한 자마린(Xamarin) 사의 Mono 이다. Mono 는 .Net 프레임워크(framework) 의 오픈소스 개발 플랫폼으로서 크로스플랫폼(Cross-platform) 어플리케이션의 개발을 지원하며 C#과 CLI (Common Language Infr..

Unity 2022.08.11

[Unity][방법] 스크립터블 오브젝트(Scriptable Object) 기본 사용법

[이 포스트의 내용은 유튜브 영상으로도 시청하실 수 있습니다] 스크립터블 오브젝트(Scriptable Object)는 유니티에서 제공하는 대량의 데이터를 저장하는 데 사용할 수 있는 데이터 컨테이너이다. 스크립터블 오브젝트를 사용하면 값의 사본이 생성되는 것을 방지하여 프로젝트의 메모리 사용을 줄일 수 있으며 이것은 모노비헤이비어(MonoBehaviour) 스크립트에 변경되지 않는 데이터를 저장하는 프리팹을 사용하는 프로젝트에서 유용하다고 한다. 변경되지 않는 데이터를 사용하는 프리팹의 데이터를 일반 변수로 구현할 경우 인스턴스화 할때마다 프리펩에 이 데이터에 대한 자체 사본이 생성되는데, 스크립터블 오브젝트를 사용하면 메모리에 스크립터블 오브젝트의 데이터 사본만을 저장하고 이를 참조하는 방식으로 작동한..

Unity 2022.08.11