Skip to content

Commit 8d1cf6d

Browse files
authored
Merge pull request #15 from AnnulusGames/add-trygetentity
Add: TryGetEntity
2 parents 43f31ad + 7e63207 commit 8d1cf6d

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

src/Arch.Unity/Assets/Arch.Unity/Runtime/Conversion/EntityConversion.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,18 @@ public static EntityReference Convert(GameObject gameObject, World world, Entity
122122
return entityReference;
123123
}
124124

125+
public static bool TryGetEntity(GameObject gameObject, out EntityReference entity)
126+
{
127+
if (gameObject.TryGetComponent<SyncWithEntity>(out var syncWithEntity))
128+
{
129+
entity = syncWithEntity.EntityReference;
130+
return true;
131+
}
132+
133+
entity = default;
134+
return false;
135+
}
136+
125137
public static World DefaultWorld { get; set; }
126138
}
127139
}

src/Arch.Unity/Assets/Arch.Unity/Tests/Runtime/ConversionTest.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,21 @@ void OnConvert(EntityReference entity, World world)
2323
EntityConversion.OnConvert -= OnConvert;
2424

2525
Assert.IsTrue(converted);
26+
27+
Object.Destroy(obj);
28+
}
29+
30+
[Test]
31+
public void Test_TryGetEntity()
32+
{
33+
var obj = new GameObject("Target");
34+
var entityA = EntityConversion.Convert(obj, new EntityConversionOptions() { ConversionMode = ConversionMode.SyncWithEntity });
35+
var result = EntityConversion.TryGetEntity(obj, out var entityB);
36+
37+
Assert.IsTrue(result);
38+
Assert.That(entityA, Is.EqualTo(entityB));
39+
40+
Object.Destroy(obj);
2641
}
2742
}
2843
}

0 commit comments

Comments
 (0)