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

Commit a9e1e7d

Browse files
author
Jamie Brynes
authored
Transform Authoring Component (#1474)
1 parent ff684b4 commit a9e1e7d

File tree

8 files changed

+63
-33
lines changed

8 files changed

+63
-33
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using Improbable.Gdk.Core;
2+
using Improbable.Gdk.Core.SceneAuthoring;
3+
using UnityEngine;
4+
5+
namespace Improbable.Gdk.TransformSynchronization
6+
{
7+
[AddComponentMenu("SpatialOS/Authoring Components/Transform From GameObject Authoring Component")]
8+
public class TransformFromGameObjectAuthoringComponent : MonoBehaviour, ISpatialOsAuthoringComponent
9+
{
10+
#pragma warning disable 649
11+
[SerializeField] private string writeAccess;
12+
#pragma warning restore 649
13+
14+
public void WriteTo(EntityTemplate template)
15+
{
16+
var transformSnapshot = TransformUtils.CreateTransformSnapshot(transform.position, transform.rotation);
17+
template.AddComponent(transformSnapshot, writeAccess);
18+
}
19+
}
20+
}

workers/unity/Packages/io.improbable.gdk.transformsynchronization/MonoBehaviours/TransformFromGameObjectAuthoringComponent.cs.meta

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

workers/unity/Packages/io.improbable.gdk.transformsynchronization/Tests/Editmode/Improbable.Gdk.TransformSynchronization.EditmodeTests.asmdef

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
"Improbable.Gdk.TransformSynchronization",
55
"Unity.Entities",
66
"UnityEngine.TestRunner",
7-
"UnityEditor.TestRunner"
7+
"UnityEditor.TestRunner",
8+
"Improbable.Gdk.Generated",
9+
"Improbable.Gdk.Core"
810
],
911
"includePlatforms": [
1012
"Editor"
@@ -19,5 +21,6 @@
1921
"defineConstraints": [
2022
"UNITY_INCLUDE_TESTS"
2123
],
22-
"versionDefines": []
24+
"versionDefines": [],
25+
"noEngineReferences": false
2326
}

workers/unity/Packages/io.improbable.gdk.transformsynchronization/Tests/Editmode/Systems.meta

Lines changed: 0 additions & 8 deletions
This file was deleted.

workers/unity/Packages/io.improbable.gdk.transformsynchronization/Tests/Editmode/Systems/TickSystemTests.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

workers/unity/Packages/io.improbable.gdk.transformsynchronization/Tests/Editmode/Systems/TickSystemTests.cs.meta

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using Improbable.Gdk.Core;
2+
using NUnit.Framework;
3+
using UnityEngine;
4+
5+
namespace Improbable.Gdk.TransformSynchronization.EditmodeTests
6+
{
7+
[TestFixture]
8+
public class TransformFromGameObjectTests
9+
{
10+
[Test]
11+
public void WriteTo_uses_the_GameObject_position_and_rotation()
12+
{
13+
var gameObject = new GameObject();
14+
gameObject.transform.position = new Vector3(100, 100, 100);
15+
gameObject.transform.rotation = Quaternion.Euler(90, 0, 0);
16+
var transformFromGameObject = gameObject.AddComponent<TransformFromGameObjectAuthoringComponent>();
17+
18+
var entityTemplate = new EntityTemplate();
19+
transformFromGameObject.WriteTo(entityTemplate);
20+
21+
Assert.IsTrue(entityTemplate.TryGetComponent<TransformInternal.Snapshot>(out var transform));
22+
23+
var position = transform.Location.ToUnityVector();
24+
var positionDifference = Vector3.Distance(gameObject.transform.position, position);
25+
Assert.AreEqual(0.0, positionDifference, float.Epsilon);
26+
27+
var rotation = transform.Rotation.ToUnityQuaternion();
28+
var rotationDifference = Quaternion.Angle(gameObject.transform.rotation, rotation);
29+
Assert.AreEqual(0.0, rotationDifference, float.Epsilon);
30+
}
31+
}
32+
}

workers/unity/Packages/io.improbable.gdk.transformsynchronization/Tests/Editmode/TransformFromGameObjectTests.cs.meta

Lines changed: 3 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)