37 lines
998 B
C#
37 lines
998 B
C#
|
using System.Collections.Generic;
|
||
|
using System.Linq;
|
||
|
using UnityEngine;
|
||
|
|
||
|
public class SceneContainer : ObjectContainer
|
||
|
{
|
||
|
public CameraContainer MainCameraOrbit;
|
||
|
public CameraContainer WorkCameraOrbit;
|
||
|
|
||
|
public List<ObjectContainer> AllObjects = new List<ObjectContainer>();
|
||
|
|
||
|
public List<T> Objects<T>() where T : ObjectContainer
|
||
|
{
|
||
|
return AllObjects.Cast<T>().ToList();
|
||
|
}
|
||
|
|
||
|
public static SceneContainer Create<T>(ModelViewerMain main) where T : SceneContainer
|
||
|
{
|
||
|
var container = new GameObject("Scene").AddComponent<T>();
|
||
|
container.Init(main);
|
||
|
return container;
|
||
|
}
|
||
|
|
||
|
public virtual void Init(ModelViewerMain main)
|
||
|
{
|
||
|
GUID = "scene";
|
||
|
MainCameraOrbit = main.MainCameraOrbit;
|
||
|
WorkCameraOrbit = main.WorkCameraOrbit;
|
||
|
SetDefaultFrame();
|
||
|
AllObjects.Add(MainCameraOrbit);
|
||
|
}
|
||
|
|
||
|
public override ObjectContainerSerializable Serialize()
|
||
|
{
|
||
|
return new SceneSerializable(this);
|
||
|
}
|
||
|
}
|