UniversalViewer/Assets/Scripts/ModelViewerBase/Containers/SceneContainer.cs

37 lines
998 B
C#
Raw Normal View History

2024-04-21 22:38:26 +08:00
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);
}
}