According to samples, I should write something like this in order to convert UnityEngine.RectTransform
to my RectTransform
component.
public class RectTransformConversion : GameObjectConversionSystem
{
protected override void OnUpdate()
{
Entities.ForEach((UnityEngine.RectTransform transform) =>
{
Entity entity = GetPrimaryEntity(transform);
var component = new RectTransform
{
Pivot = transform.pivot,
AnchorMin = transform.anchorMin,
AnchorMax = transform.anchorMax,
SizeDelta = transform.sizeDelta,
Position = (Vector2) transform.localPosition
};
DstEntityManager.AddComponentData(entity, component);
});
}
}
But when I start the game, I get this error:
Error
IndexOutOfRangeException: Index was outside the bounds of the array.
Unity.Entities.ArchetypeChunkComponentObjects1[T].get_Item (System.Int32 index) (at Library/PackageCache/com.unity.entities@0.0.12-preview.33/Unity.Entities/Iterators/ArchetypeChunkArray.cs:630) Unity.Entities.EntityQueryBuilder.ForEach[T0] (Unity.Entities.EntityQueryBuilder+F_C
1[T0] action) (at Library/PackageCache/com.unity.entities@0.0.12-preview.33/Unity.Entities/EntityQueryBuilder_ForEach.gen.cs:192)
GameObjectConversionMappingSystem.CreatePrimaryEntities () (at Library/PackageCache/com.unity.entities@0.0.12-preview.33/Unity.Entities.Hybrid/GameObjectConversion/GameObjectConversionMappingSystem.cs:240)
Unity.Entities.GameObjectConversionUtility.Convert (Unity.Entities.World gameObjectWorld, Unity.Entities.World dstEntityWorld) (at Library/PackageCache/com.unity.entities@0.0.12-preview.33/Unity.Entities.Hybrid/GameObjectConversion/GameObjectConversionUtility.cs:135)
Unity.Entities.ConvertToEntity.ConvertHierarchy (UnityEngine.GameObject root) (at Library/PackageCache/com.unity.entities@0.0.12-preview.33/Unity.Entities.Hybrid/ConvertToEntity.cs:90)
Unity.Entities.ConvertToEntity.Awake () (at Library/PackageCache/com.unity.entities@0.0.12-preview.33/Unity.Entities.Hybrid/ConvertToEntity.cs:30)
What’s the problem?