시스템 그룹은 시스템 및 스시템 그룹을 하위로 가질 수 있다. public class SystemGroup : ComponentSystemGroup { } System ordering attributes [UpdateInGroup(typeof(systemgrouptype))] systemgrouptype 그룹안에 속한다. [UpdateBefore(typeof(systemtype))] systemtype 이전에 실행한다. [UpdateAfter(typeof(systemtype))] systemtype 이후에 실행한다. [CreateBefore] [CreateAfter] 전 후 로 만들어주는 순서. 기본적으로 UpdateBefore, UpdateAfter랑 같은 방식으로 작동. [DisableAutoCrea..
ISystem - unmanaged memory 사용가능 - Burst 사용가능 SystemBase 보다 더 빠르다. - Job 사용가능 - IJobEntity 사용가능 - IJobChunk 사용가능 - WorldUnManaged. 사용가능 public partial struct UnManagedSystem : ISystem { ... } SystemBase - managed data에 유용하다 - GC사용 가능 - IJobEntity 사용가능 - IJobChunk 사용가능 - World. 사용가능 public partial class ManagedSystem : SystemBase { ... }
UnManaged - struct - primitive type - BlobAssetReference - Collections.FixedString - Collections.FixedList - Fixed array ex) public struct UnManaged : IComponentData { public int Value; } Managed - class - Job, Burst 사용 불가능 - GC - 직렬화를 위해 파라미터가 없는 생성자 필요 - ICloneable, IDisposable 을 추가해주는것이 좋다. - Unity GameObject - 청크에 직접 저장하지 않음 전체 월드에 큰 배열로 저장을한다, 그런다음 청크에 관련 구성 요소의 배열 인덱스를 저장. 엔티티의 Managed 요소에..
ECS는 객체 지향(OO)이 아닌 데이터 지향(DO)의 아키텍처 ECS는 - Entity, Component, System의 약자 Entity - Component를 담는 Index Component - 데이터 System - 데이터 들은 가공하는 작업 ( Behaviour ) Archetype 데이터(Component) 조합이 동일한 Entity. 동일안 아키타입을 가진 엔티티와 컴포넌트는 chunk(청크) 라고 하는 균일한 메모리 블록에 저장된다. 각 청크는 (16kib)구성 되어있다. 데이터 지향의 이점 프로그램에서 데이터가 필요시 CPU의 캐시공간을 검사를 하는데 존재하지 않는경우 메모리(램)에서 해당 데이터를 가져옵니다. 이때 필요 데이터 주변의 데이터들도 같이 가져오게 되는데 DO의 경우 같은..
1 - .gitmodule 파일에 삭제하고싶은 서브 모듈 관련 정보를 지운다. 2 - git add .gitmodule 을 한다. (staged 상태로 만든다) 3 - .git/config를 열어서 삭제하고싶은 서브 모듈 관련 정보를 지운다. 4 - git rm --cached [서브모듈 위치 - 리모트] 실행시켜 리모트 저장소의 서브 모듈 제거. 5 - rm -rf .git/module/[서브모듈 위치] 를 실행시켜 .git/module 안에있는 서브 모듈 제거. 6 - git commit 한다. 7 - rm -rf [서브모듈 위치] 하여 로컬 저장소의 서브 모듈 제거.
public void ClearLog() { var assembly = System.Reflection.Assembly.GetAssembly(typeof(UnityEditor.Editor)); var type = assembly.GetType("UnityEditor.LogEntries"); var method = type.GetMethod("Clear"); method.Invoke(new object(), null); }
using UnityEngine; using UnityEditor; [InitializeOnLoad] public class CustomHierarchy : MonoBehaviour { static CustomHierarchy() { EditorApplication.hierarchyWindowItemOnGUI += HandleHierarchyWindowItemOnGUI; EditorApplication.projectWindowItemOnGUI += HandleProjectWindowItemOnGUI; } private static void HandleHierarchyWindowItemOnGUI(int instanceID, Rect selectionRect) { var obj = EditorUtility...
Comparison Functions 0 - Disabled 1 - Never - 스텐실 테스트를 항상 실패하도록 2 - Less - 레퍼런스 값이 버퍼 안의 값보다 작은 픽셀만 렌더링 3 - Equal - 레퍼런스 값이 버퍼 안의 값과 같은 픽셀만 렌더링 4 - LessEqual - LEqual - 레퍼런스 값이 버퍼 안의 값보다 작거나 같은 픽셀만 렌더링 5 - Greater - 레퍼런스 값이 버퍼 안의 값보다 큰 픽셀만 렌더링 6 - NotEqual - 레퍼런스 값이 버퍼 안의 값과 다른 픽셀만 렌더링 7 - GreaterEqual - GEqual - 레퍼런스 값이 버퍼 안의 값보다 크거나 같은 픽셀만 렌더링 8 - Always - 스텐실 테스트를 항상 통과하도록 Stencil Operations ..
using System; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class OtherScroll : ScrollRect { private bool routeToParent = false; private void FindParents(Action action) where T : IEventSystemHandler { Transform parent = transform.parent; while (parent != null) { foreach (var c in parent.GetComponents()) { if (c is T) { action((T) (IEventSystemHandler) c); } } pa..
