Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 32 additions & 2 deletions sdkproject/Assets/Mapbox/Resources/Mapbox/PrefabList.asset
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ MonoBehaviour:
m_Name: PrefabList
m_EditorClassIdentifier:
SceneList:
- {fileID: 114332339576712794, guid: 5424214e66dd94ac79007c7c31989849, type: 2}
- {fileID: 114993899942380100, guid: 5424214e66dd94ac79007c7c31989849, type: 2}
- {fileID: 114700025974298426}
- {fileID: 114727026839306020}
- {fileID: 114308819730444958}
- {fileID: 114247311498626294}
--- !u!114 &114128613080724838
Expand Down Expand Up @@ -61,3 +61,33 @@ MonoBehaviour:
ScenePath: Assets/MapboxAR/Examples/Scenes/TabletopAR.unity
Image: {fileID: 2800000, guid: e96036a81f146439cb33587e192539c7, type: 3}
Text: {fileID: 0}
--- !u!114 &114700025974298426
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d9ef4c9a5f1410ea3cf247b3917654, type: 3}
m_Name: LocationBasedGame
m_EditorClassIdentifier:
Name:
ScenePath: Assets/Mapbox/Examples/0_PrefabScenes/LocationBasedGame.unity
Image: {fileID: 2800000, guid: 5b405ed49599a452bb91b1492ee0a328, type: 3}
Text: {fileID: 0}
--- !u!114 &114727026839306020
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d9ef4c9a5f1410ea3cf247b3917654, type: 3}
m_Name: CitySimulator
m_EditorClassIdentifier:
Name:
ScenePath: Assets/Mapbox/Examples/0_PrefabScenes/CitySimulator.unity
Image: {fileID: 2800000, guid: 53e90d032a2624ab1801469b8ce804e4, type: 3}
Text: {fileID: 0}
20 changes: 20 additions & 0 deletions sdkproject/Assets/Mapbox/Unity/Editor/ScenesListEditor.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
namespace Mapbox.Unity.Utilities.DebugTools
{
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(ScenesList))]
public class ScenesListEditor : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
ScenesList e = target as ScenesList;

if (GUILayout.Button("Link Listed Scenes"))
{
e.LinkScenes();
}
}
}
}
13 changes: 13 additions & 0 deletions sdkproject/Assets/Mapbox/Unity/Editor/ScenesListEditor.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 46 additions & 0 deletions sdkproject/Assets/Mapbox/Unity/Utilities/DebugTools/ScenesList.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,55 @@
namespace Mapbox.Unity.Utilities.DebugTools
{
using UnityEngine;
using UnityEditor;

public class ScenesList : ScriptableObject
{
public SceneData[] SceneList;

//ensure that linked scenes are stored in this object
public void LinkScenes()
{
for (int i = 0; i < SceneList.Length; i++)
{
if(!ThisAssetContainsScene( SceneList[i] ))
{
//duplicate the asset
var path = AssetDatabase.GetAssetPath(this);
var newScene = ScriptableObject.CreateInstance<SceneData>();
newScene.name = SceneList[i].name;
newScene.ScenePath = SceneList[i].ScenePath;
newScene.Text = SceneList[i].Text;
newScene.Image = SceneList[i].Image;

//assign it to the current scene list
AssetDatabase.AddObjectToAsset(newScene, path);
SceneList[i] = newScene;

//save the scenelist
EditorUtility.SetDirty(this);
AssetDatabase.SaveAssets();

//TODO: clean up unreferenced sub-assets with Destroy
}
}
}

private bool ThisAssetContainsScene( SceneData scene )
{
var path = AssetDatabase.GetAssetPath(this);
Object[] assets = AssetDatabase.LoadAllAssetsAtPath(path);
foreach (var asset in assets)
{
if (asset == scene)
{
//Debug.Log("Asset " + scene + " is contained in " + path);
return true;
}
}

return false;

}
}
}