Merge branch 'main' of https://github.com/MiracleForest-Ichni/IchniCreatorStudio
This commit is contained in:
@@ -15,7 +15,7 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
public partial class GameCamera : GameElement, IHaveTransformSubmodule, IHaveTimeDurationSubmodule
|
||||
{
|
||||
public new Camera camera;
|
||||
[FormerlySerializedAs("camera")] public new Camera gameCamera;
|
||||
public Transform rotationPoint;
|
||||
public Transform positionPoint;
|
||||
public Transform cameraTransform;
|
||||
@@ -44,13 +44,13 @@ namespace Ichni.RhythmGame
|
||||
gameCamera.Initialize(elementName, id, tags, isFirstGenerated, parentElement);
|
||||
|
||||
cameraManager.gameCamera = gameCamera;
|
||||
cameraManager.backgroundCamera.GetComponent<UniversalAdditionalCameraData>().cameraStack.Add(gameCamera.camera);
|
||||
if (cameraManager.isSceneCameraActive) gameCamera.camera.enabled = false;
|
||||
cameraManager.backgroundCamera.GetComponent<UniversalAdditionalCameraData>().cameraStack.Add(gameCamera.gameCamera);
|
||||
if (cameraManager.isSceneCameraActive) gameCamera.gameCamera.enabled = false;
|
||||
|
||||
|
||||
gameCamera.parentElement = parentElement;
|
||||
gameCamera.cameraViewType = cameraViewType;
|
||||
gameCamera.camera.orthographic = cameraViewType == CameraViewType.Orthographic;
|
||||
gameCamera.gameCamera.orthographic = cameraViewType == CameraViewType.Orthographic;
|
||||
gameCamera.perspectiveAngle = perspectiveAngle;
|
||||
gameCamera.orthographicSize = orthographicSize;
|
||||
gameCamera.cameraTransform = gameCamera.transform;
|
||||
@@ -75,6 +75,10 @@ namespace Ichni.RhythmGame
|
||||
var swirlButton = inspector.GenerateButton(this, generateAnimation, "Swirl",
|
||||
() => Swirl.GenerateElement("New Swirl", Guid.NewGuid(), new List<string>(), true, this,
|
||||
new FlexibleFloat(), new FlexibleFloat(), new FlexibleFloat()));
|
||||
|
||||
var extensionButton = inspector.GenerateButton(this, generateAnimation, "Extension",
|
||||
() => GameCameraExtension.GenerateElement("New Extension", Guid.NewGuid(),
|
||||
new List<string>(), true, this, 1000f));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,18 +1,87 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Ichni.Editor;
|
||||
using Ichni.RhythmGame.Beatmap;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Serialization;
|
||||
|
||||
public class GameCameraExtension : MonoBehaviour
|
||||
namespace Ichni.RhythmGame
|
||||
{
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
public partial class GameCameraExtension : GameElement
|
||||
{
|
||||
public GameCamera gameCamera;
|
||||
public SceneCamera sceneCamera => EditorManager.instance.cameraManager.sceneCamera;
|
||||
|
||||
public float farClipRange = 1000f;
|
||||
|
||||
public static GameCameraExtension GenerateElement(string elementName, Guid id,
|
||||
List<string> tags, bool isFirstGenerated, GameElement parentElement, float farClipRange)
|
||||
{
|
||||
GameCameraExtension gameCameraExtension = Instantiate(EditorManager.instance.basePrefabs.emptyObject)
|
||||
.AddComponent<GameCameraExtension>();
|
||||
gameCameraExtension.Initialize(elementName, id, tags, isFirstGenerated, parentElement);
|
||||
gameCameraExtension.gameCamera = parentElement as GameCamera;
|
||||
gameCameraExtension.farClipRange = farClipRange;
|
||||
gameCameraExtension.ApplyExtension();
|
||||
return gameCameraExtension;
|
||||
}
|
||||
|
||||
public void ApplyExtension()
|
||||
{
|
||||
gameCamera.gameCamera.farClipPlane = farClipRange;
|
||||
sceneCamera.sceneCamera.farClipPlane = farClipRange;
|
||||
}
|
||||
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
base.SetUpInspector();
|
||||
var container = inspector.GenerateContainer("Settings");
|
||||
var settingsSubcontainer = container.GenerateSubcontainer(3);
|
||||
var farClipRangeButton = inspector.GenerateInputField(this, settingsSubcontainer, "Far Clip Range",
|
||||
nameof(farClipRange)).AddListenerFunction(ApplyExtension);
|
||||
}
|
||||
}
|
||||
|
||||
public partial class GameCameraExtension
|
||||
{
|
||||
public override void SaveBM()
|
||||
{
|
||||
matchedBM = new GameCameraExtension_BM(elementName, elementGuid, tags,
|
||||
parentElement.matchedBM as GameElement_BM, farClipRange);
|
||||
}
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
namespace Beatmap
|
||||
{
|
||||
|
||||
public class GameCameraExtension_BM : GameElement_BM
|
||||
{
|
||||
public float farClipRange;
|
||||
|
||||
public GameCameraExtension_BM()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public GameCameraExtension_BM(string elementName, Guid elementGuid, List<string> tags,
|
||||
GameElement_BM attachedElement, float farClipRange)
|
||||
: base(elementName, elementGuid, tags, attachedElement)
|
||||
{
|
||||
this.farClipRange = farClipRange;
|
||||
}
|
||||
|
||||
public override void ExecuteBM()
|
||||
{
|
||||
matchedElement = GameCameraExtension.GenerateElement(elementName, elementGuid, tags, false,
|
||||
GetElement(attachedElementGuid), farClipRange);
|
||||
}
|
||||
|
||||
public override GameElement DuplicateBM(GameElement parent)
|
||||
{
|
||||
return GameCameraExtension.GenerateElement(elementName, Guid.NewGuid(), tags, false,
|
||||
parent, farClipRange);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -211,7 +211,7 @@ namespace Ichni.RhythmGame
|
||||
|
||||
if (EditorManager.instance.cameraManager.haveGameCamera)
|
||||
{
|
||||
noteScreenPosition = EditorManager.instance.cameraManager.gameCamera.camera.WorldToScreenPoint(noteVisual.transform.position);
|
||||
noteScreenPosition = EditorManager.instance.cameraManager.gameCamera.gameCamera.WorldToScreenPoint(noteVisual.transform.position);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ namespace Ichni.RhythmGame
|
||||
|
||||
if (EditorManager.instance.cameraManager.haveGameCamera)
|
||||
{
|
||||
noteScreenPosition = EditorManager.instance.cameraManager.gameCamera.camera.WorldToScreenPoint(noteVisual.transform.position);
|
||||
noteScreenPosition = EditorManager.instance.cameraManager.gameCamera.gameCamera.WorldToScreenPoint(noteVisual.transform.position);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace Ichni.Editor
|
||||
|
||||
public GameCamera gameCamera;
|
||||
public bool haveGameCamera => gameCamera != null;
|
||||
public Camera currentCamera => haveGameCamera && !isSceneCameraActive ? gameCamera.camera : sceneCamera.sceneCamera;
|
||||
public Camera currentCamera => haveGameCamera && !isSceneCameraActive ? gameCamera.gameCamera : sceneCamera.sceneCamera;
|
||||
|
||||
public BaseElement_BM matchedBM { get; set; }
|
||||
|
||||
@@ -33,7 +33,7 @@ namespace Ichni.Editor
|
||||
|
||||
isSceneCameraActive = !isSceneCameraActive;
|
||||
sceneCamera.sceneCamera.enabled = isSceneCameraActive;
|
||||
gameCamera.camera.enabled = !isSceneCameraActive;
|
||||
gameCamera.gameCamera.enabled = !isSceneCameraActive;
|
||||
}
|
||||
|
||||
public void SetUpInspector()
|
||||
|
||||
Reference in New Issue
Block a user