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

Commit 9d1ea5e

Browse files
author
Jamie Brynes
authored
One-to-one GameObject converter (#1472)
1 parent dbf6c0d commit 9d1ea5e

File tree

6 files changed

+78
-0
lines changed

6 files changed

+78
-0
lines changed

workers/unity/Packages/io.improbable.gdk.core/AssemblyInfo.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Runtime.CompilerServices;
22

33
[assembly: InternalsVisibleTo("Improbable.Gdk.Core.EditmodeTests")]
4+
[assembly: InternalsVisibleTo("Improbable.Gdk.Core.Editor")]
45
[assembly: InternalsVisibleTo("Improbable.Gdk.GameObjectCreation.EditmodeTests")]
56
[assembly: InternalsVisibleTo("Improbable.Gdk.EditmodeTests")]
67
[assembly: InternalsVisibleTo("Improbable.Gdk.PlaymodeTests")]

workers/unity/Packages/io.improbable.gdk.core/Editor/SceneAuthoring.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.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using Improbable.Gdk.Core.SceneAuthoring;
2+
using UnityEditor;
3+
4+
namespace Improbable.Gdk.Core.Editor.SceneAuthoring
5+
{
6+
[CustomEditor(typeof(ConvertToSingleEntity))]
7+
public class ConvertToSingleEntityEditor : UnityEditor.Editor
8+
{
9+
private SerializedProperty useSpecificEntityIdProperty;
10+
private SerializedProperty desiredEntityIdProperty;
11+
private SerializedProperty readAclProperty;
12+
13+
private void OnEnable()
14+
{
15+
useSpecificEntityIdProperty = serializedObject.FindProperty(nameof(ConvertToSingleEntity.UseSpecificEntityId));
16+
desiredEntityIdProperty = serializedObject.FindProperty(nameof(ConvertToSingleEntity.DesiredEntityId));
17+
readAclProperty = serializedObject.FindProperty(nameof(ConvertToSingleEntity.ReadAcl));
18+
}
19+
20+
public override void OnInspectorGUI()
21+
{
22+
serializedObject.Update();
23+
24+
EditorGUILayout.PropertyField(useSpecificEntityIdProperty);
25+
26+
if (useSpecificEntityIdProperty.boolValue)
27+
{
28+
EditorGUILayout.PropertyField(desiredEntityIdProperty);
29+
}
30+
31+
EditorGUILayout.PropertyField(readAclProperty);
32+
33+
serializedObject.ApplyModifiedProperties();
34+
}
35+
}
36+
}

workers/unity/Packages/io.improbable.gdk.core/Editor/SceneAuthoring/ConvertToSingleEntityEditor.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.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using System.Collections.Generic;
2+
using UnityEngine;
3+
4+
namespace Improbable.Gdk.Core.SceneAuthoring
5+
{
6+
[AddComponentMenu("SpatialOS/Authoring Components/Convert to Single Entity")]
7+
public class ConvertToSingleEntity : MonoBehaviour, IConvertGameObjectToSpatialOsEntity
8+
{
9+
[SerializeField] internal bool UseSpecificEntityId;
10+
[SerializeField] internal long DesiredEntityId;
11+
[SerializeField] internal string[] ReadAcl = { };
12+
13+
public List<ConvertedEntity> Convert()
14+
{
15+
var components = GetComponents<ISpatialOsAuthoringComponent>();
16+
var template = new EntityTemplate();
17+
18+
foreach (var component in components)
19+
{
20+
component.WriteTo(template);
21+
}
22+
23+
template.SetReadAccess(ReadAcl);
24+
25+
var entity = UseSpecificEntityId
26+
? new ConvertedEntity(new EntityId(DesiredEntityId), template)
27+
: new ConvertedEntity(template);
28+
29+
return new List<ConvertedEntity> { entity };
30+
}
31+
}
32+
}

workers/unity/Packages/io.improbable.gdk.core/SceneAuthoring/ConvertToSingleEntity.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)