Skip to content
This repository was archived by the owner on Jul 12, 2022. It is now read-only.

ProxyTransform

Syadeu edited this page Oct 22, 2021 · 13 revisions

Namespace: Syadeu.Presentation.Proxy
File: ProxyTransform.cs

[StructLayout(LayoutKind.Sequential)]
public readonly struct ProxyTransform : IProxyTransform, IEquatable<ProxyTransform>

Entity<T> 의 Transformation 데이터입니다.

Inheritance: System.Object -> ProxyTransform
Implements: IProxyTransform, IEquatable<ProxyTransform>

Overview

Remarks

사용자가 안전하게 데이터를 읽기 쓰기 할 수 있도록 도와주는 구조체입니다. 실제 데이터는 GameObjectProxySystem 에서 관리되는 NativeProxyDataProxyTransformData 를 읽고 수정합니다.

Description

Examples

public void TestMethod()
{
	ProxyTransform tr = /* Some data works.. */;
    
    // 만약 프록시 객체가 할당이 된 상태이면 프록시 오브젝트의 위치도 같이 업데이트합니다.
    // 이때, OnTransformChangedEvent 도 같이 Post 됩니다.
    tr.position = new float3(100, 0, 100);
}

Internal Fields

Name Description
unsafe m_Pointer GameObjectProxySystem 에서 관리되는 프록시 데이터(NativeProxyData) 배열의 주소입니다.
m_Index GameObjectProxySystem 에서 관리되는 NativeProxyData 배열의 인덱스 값입니다.
m_Generation 프록시 시스템은 메모리도 재사용하므로, 이 값은 현재 이 프록시 데이터가 얼마나 재사용 되었는지를 저장합니다.
m_Hash 이 프록시의 고유 해시입니다.

Internal Properties

Name Description
unsafe Pointer
unsafe Ref

Internal Methods

Name Description
SetProxy(int2)
AsReadOnly() 이 프록시 데이터를 읽기 전용으로 반환합니다.

Properties

Name Description
index GameObjectProxySystem 에서 관리되는 NativeProxyData 배열의 인덱스 값입니다.
generation 프록시 시스템은 메모리도 재사용하므로, 이 값은 현재 이 프록시 데이터가 얼마나 재사용 되었는지를 저장합니다.
enableCull true 일 경우, 화면에서 보여지지 않을 경우 자동으로 프록시를 할당해제하여 다른 곳에 사용할 수 있도록 합니다. true 에서 false 로 설정할 경우, 프록시를 할당하도록 합니다.
isVisible 현재 화면에서 보여지고 있는지 반환합니다.
hasProxy 현재 이 데이터가 프록시를 보유하고 있거나 요청한 상태인지 반환합니다.
hasProxyQueued 현재 이 데이터가 프록시 데이터를 요청한 상태인지 반환합니다.
proxy 이 데이터의 프록시(RecycleableMonobehaviour)를 반환합니다.
isDestroyed 이 데이터가 할당 해제되었는지 반환합니다.
isDestroyQueued 이 데이터가 할당 해제 요청되었는지 반환합니다.
prefab 이 데이터의 Prefab (PrefabReference) 를 반환합니다.
position 이 데이터의 위치입니다. 데이터를 설정할 경우 OnTransformChangedEvent 를 호출합니다.
localPosition
rotation 이 데이터의 회전값입니다. 데이터를 설정할 경우 OnTransformChangedEvent 를 호출합니다.
localRotation
eulerAngles 이 데이터의 Radian 값을 Degree 로 연산한 값입니다. 데이터를 설정할 경우 OnTransformChangedEvent 를 호출합니다.
localEulerAngles
scale 이 데이터의 크기값입니다. 데이터를 설정할 경우 OnTransformChangedEvent 를 호출합니다.
localScale
right 이 Transformation 의 오른쪽 방향 백터입니다.
up 이 Transformation 의 위쪽 방향 백터입니다.
forward 이 Transformation 의 앞쪽 방향 백터입니다.
center 이 Transformation 의 AABB center 값 입니다.
size 이 Transformation 의 AABB size 값 입니다.
aabb 이 Transformation 의 AABB 입니다.
localToWorldMatrix
worldToLocalMatrix

Methods

Name Description
Synchronize(ProxyTransform.SynchronizeOption) 현재 데이터를 할당받은 프록시 데이터의 Translation 값과 일치시킵니다. 이 메소드는 Unity 스레드에서만 실행되야되며, 프록시가 없는 경우 NullReferenceException 을 throw 합니다
SetParent(in ProxyTransform) 부모를 설정합니다.
RemoveParent() 현재 부모를 제거합니다.
Destroy() 이 데이터를 파괴 요청합니다.
Equals(ProxyTransform)
Equals(ITransform)
- Interfaces
- Enums
- Attributes
- Abstract Classes
- Classes
- Structs
- Exceptions

- Syadeu.Presentation
- Syadeu.Collections
- Syadeu.Collections.Converters
- Syadeu.Collections.Proxy
- Syadeu.Presentation.Proxy
- Syadeu.Presentation.Internal
- Syadeu.Presentation.Entities
- Syadeu.Presentation.Attributes
- Syadeu.Presentation.Components
- Syadeu.Presentation.Actions
- Syadeu.Presentation.Render
  • CameraData
  • CameraFrustum
  • IntersectionType
  • RenderSystem
  • WorldCanvasSystem
- Syadeu.Presentation.Data
  • DataContainerSystem
  • DataObjectBase
  • EntityAnimationClipEventData
- Syadeu.Presentation.Events

Clone this wiki locally