Skip to content

Commit 43f31ad

Browse files
authored
Merge pull request #14 from AnnulusGames/feature-onconvert
Add: OnConvert to EntityConversion
2 parents f373171 + 81fd121 commit 43f31ad

3 files changed

Lines changed: 43 additions & 0 deletions

File tree

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ static void Init()
5252
}
5353
#endif
5454

55+
public static event Action<EntityReference, World> OnConvert;
56+
5557
public static EntityReference Convert(GameObject gameObject)
5658
{
5759
return Convert(gameObject, DefaultWorld, EntityConversionOptions.Default);
@@ -115,6 +117,8 @@ public static EntityReference Convert(GameObject gameObject, World world, Entity
115117
syncWithEntity.UseDisabledComponent = options.UseDisabledComponent;
116118
}
117119

120+
OnConvert?.Invoke(entityReference, world);
121+
118122
return entityReference;
119123
}
120124

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using Arch.Core;
2+
using Arch.Unity.Conversion;
3+
using NUnit.Framework;
4+
using UnityEngine;
5+
6+
namespace Arch.Unity.Tests.Runtime
7+
{
8+
public class ConversionTest
9+
{
10+
[Test]
11+
public void Test_OnConvert()
12+
{
13+
var obj = new GameObject("Target");
14+
var converted = false;
15+
16+
void OnConvert(EntityReference entity, World world)
17+
{
18+
converted = true;
19+
}
20+
21+
EntityConversion.OnConvert += OnConvert;
22+
EntityConversion.Convert(obj);
23+
EntityConversion.OnConvert -= OnConvert;
24+
25+
Assert.IsTrue(converted);
26+
}
27+
}
28+
}

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

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)