自动更新型DUI扩展,将Time变量挪出TImeline UI,Effect效果容器修缮,移除Note的transform模块,Scene Camera优化
This commit is contained in:
@@ -42,7 +42,7 @@ namespace Ichni.Editor
|
||||
var container = inspector.GenerateContainer("Camera Manager");
|
||||
var cameraTypeText = inspector.GenerateHintText(this, container, ShowCameraType);
|
||||
var switchCameraButton = inspector.GenerateButton(this, container, "Switch Camera", SwitchCamera);
|
||||
var cameraMoveSpeedField = inspector.GenerateParameterInputField(this, container, "Scene Camera Move Speed", nameof(sceneCameraMoveSpeed));
|
||||
var cameraMoveSpeedField = inspector.GenerateInputField(this, container, "Scene Camera Move Speed", nameof(sceneCameraMoveSpeed));
|
||||
sceneCamera.SetUpInspector();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace Ichni
|
||||
public static EditorManager instance;
|
||||
|
||||
public ProjectManager projectManager;
|
||||
public MusicPlayer musicPlayer;
|
||||
public EditorUIManager uiManager;
|
||||
public EditorSettings editorSettings;
|
||||
public OperationManager operationManager;
|
||||
@@ -53,7 +54,7 @@ namespace Ichni
|
||||
uiManager.hierarchy.GenerateTab(this, null);
|
||||
|
||||
projectManager.loadManager.Load("TestProject");
|
||||
uiManager.timeline.musicPlayer.audioSource.clip = songInformation.song;
|
||||
musicPlayer.audioSource.clip = songInformation.song;
|
||||
|
||||
beatmapContainer.gameElementList.ForEach(gameElement =>
|
||||
{
|
||||
|
||||
@@ -16,8 +16,10 @@ namespace Ichni.Editor
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (EditorManager.instance.cameraManager.isSceneCameraActive ||
|
||||
!Keyboard.current.leftCtrlKey.isPressed) // 场景相机的移动和旋转
|
||||
bool isPointerOverUI = IsPointerOverUI(out GameObject hoveredUI);
|
||||
|
||||
if (EditorManager.instance.cameraManager.isSceneCameraActive &&
|
||||
!Keyboard.current.leftCtrlKey.isPressed && !isPointerOverUI) // 场景相机的移动和旋转
|
||||
{
|
||||
float cameraMoveSpeed = EditorManager.instance.cameraManager.sceneCameraMoveSpeed * Time.deltaTime;
|
||||
Transform sceneCameraTransform = EditorManager.instance.cameraManager.sceneCamera.transform;
|
||||
@@ -46,8 +48,6 @@ namespace Ichni.Editor
|
||||
sceneCameraTransform.position -= sceneCameraTransform.up * cameraMoveSpeed;
|
||||
}
|
||||
|
||||
bool isPointerOverUI = IsPointerOverUI(out GameObject hoveredUI);
|
||||
|
||||
if (Mouse.current.rightButton.isPressed && !isPointerOverUI)
|
||||
{
|
||||
float cameraRotateSpeed = EditorManager.instance.cameraManager.sceneCameraRotateSpeed * Time.deltaTime;
|
||||
@@ -61,16 +61,15 @@ namespace Ichni.Editor
|
||||
}
|
||||
}
|
||||
|
||||
if (eventSystem.currentSelectedGameObject == null &&
|
||||
Keyboard.current.enterKey.wasPressedThisFrame) // 播放或暂停音乐
|
||||
if (!isPointerOverUI && Keyboard.current.enterKey.wasPressedThisFrame) // 播放或暂停音乐
|
||||
{
|
||||
if (!EditorManager.instance.uiManager.timeline.musicPlayer.isPlaying)
|
||||
if (!EditorManager.instance.musicPlayer.isPlaying)
|
||||
{
|
||||
EditorManager.instance.uiManager.timeline.musicPlayer.PlayMusic();
|
||||
EditorManager.instance.musicPlayer.PlayMusic();
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorManager.instance.uiManager.timeline.musicPlayer.PauseMusic();
|
||||
EditorManager.instance.musicPlayer.PauseMusic();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,7 +97,7 @@ namespace Ichni.Editor
|
||||
}
|
||||
else if (Keyboard.current.dKey.wasPressedThisFrame)
|
||||
{
|
||||
EditorManager.instance.operationManager.currentSelectedElement.Delete();
|
||||
EditorManager.instance.operationManager.CopyPasteDeleteModule.DeleteElement(EditorManager.instance.operationManager.currentSelectedElement);
|
||||
}
|
||||
|
||||
// 开关移动设备分辨率提示
|
||||
|
||||
48
Assets/Scripts/Manager/MusicPlayer.cs
Normal file
48
Assets/Scripts/Manager/MusicPlayer.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Ichni.RhythmGame;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Ichni.Editor
|
||||
{
|
||||
public class MusicPlayer : MonoBehaviour
|
||||
{
|
||||
public bool isPlaying;
|
||||
public AudioSource audioSource;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (isPlaying)
|
||||
{
|
||||
EditorManager.instance.songInformation.songTime = EditorManager.instance.musicPlayer.audioSource.time;
|
||||
}
|
||||
}
|
||||
|
||||
public void PlayMusic()
|
||||
{
|
||||
isPlaying = !isPlaying;
|
||||
Trail.SetAllTrails(true, false);
|
||||
EditorManager.instance.songInformation.songTime = audioSource.time;
|
||||
if(isPlaying)audioSource.Play();
|
||||
else audioSource.Pause();
|
||||
}
|
||||
|
||||
public void PauseMusic()
|
||||
{
|
||||
isPlaying = false;
|
||||
Trail.SetAllTrails(false, false);
|
||||
EditorManager.instance.songInformation.songTime = audioSource.time;
|
||||
audioSource.Pause();
|
||||
}
|
||||
|
||||
public void StopMusic()
|
||||
{
|
||||
isPlaying = false;
|
||||
Trail.SetAllTrails(false, true);
|
||||
EditorManager.instance.songInformation.songTime = 0;
|
||||
audioSource.Stop();
|
||||
EditorManager.instance.uiManager.timeline.timePointerModule.SetRange(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/Manager/MusicPlayer.cs.meta
Normal file
11
Assets/Scripts/Manager/MusicPlayer.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6c12bb7674cd5416f8d846e62018a96d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -17,38 +17,36 @@ namespace Ichni.Editor
|
||||
|
||||
public BaseElement_BM matchedBM { get; set; }
|
||||
|
||||
[HideInInspector]
|
||||
public Vector3 cameraPosition; //注意,这里的Position和EulerAngles,是transform的中介变量,仅能用于Inspector显示!
|
||||
[HideInInspector]
|
||||
public Vector3 cameraEulerAngles;
|
||||
|
||||
public void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Scene Camera");
|
||||
var viewTypeDropdown = inspector.GenerateDropdown(this, container, "View Type", typeof(GameCamera.CameraViewType), nameof(viewType));
|
||||
var perspectiveAngleField = inspector.GenerateParameterInputField(this, container, "Perspective Angle", nameof(perspectiveAngle));
|
||||
var orthographicSizeField = inspector.GenerateParameterInputField(this, container, "Orthographic Size", nameof(orthographicSize));
|
||||
var perspectiveAngleField = inspector.GenerateInputField(this, container, "Perspective Angle", nameof(perspectiveAngle));
|
||||
var orthographicSizeField = inspector.GenerateInputField(this, container, "Orthographic Size", nameof(orthographicSize));
|
||||
viewTypeDropdown.AddListenerFunction(_ => camera.orthographic = viewType == GameCamera.CameraViewType.Orthographic);
|
||||
perspectiveAngleField.AddListenerFunction(_ => camera.fieldOfView = perspectiveAngle);
|
||||
orthographicSizeField.AddListenerFunction(_ => camera.orthographicSize = orthographicSize);
|
||||
|
||||
viewTypeDropdown.AddListenerFunction(_ =>
|
||||
{
|
||||
camera.orthographic = viewType == GameCamera.CameraViewType.Orthographic;
|
||||
});
|
||||
|
||||
perspectiveAngleField.AddListenerFunction(_ =>
|
||||
{
|
||||
camera.fieldOfView = perspectiveAngle;
|
||||
});
|
||||
|
||||
orthographicSizeField.AddListenerFunction(_ =>
|
||||
{
|
||||
camera.orthographicSize = orthographicSize;
|
||||
});
|
||||
|
||||
string GetPosition() => $"Position: {camera.transform.position}";
|
||||
var positionText = inspector.GenerateHintText(this, container, GetPosition);
|
||||
string GetEulerAngles() => $"Euler Angles: {camera.transform.eulerAngles}";
|
||||
var eulerAnglesText = inspector.GenerateHintText(this, container, GetEulerAngles);
|
||||
var positionInputFields = inspector.GenerateVector3InputField(this, container, "Position", nameof(cameraPosition), true);
|
||||
positionInputFields.AddListenerFunction(() => camera.transform.position = cameraPosition);
|
||||
|
||||
var eulerAnglesInputFields = inspector.GenerateVector3InputField(this, container, "Euler Angles", nameof(cameraEulerAngles), true);
|
||||
eulerAnglesInputFields.AddListenerFunction(() => camera.transform.eulerAngles = cameraEulerAngles);
|
||||
|
||||
|
||||
container.SetDeviver(1);
|
||||
}
|
||||
|
||||
public void MoveCamera(Vector3 delta)
|
||||
private void Update()
|
||||
{
|
||||
camera.transform.position += delta;
|
||||
cameraPosition = camera.transform.position;
|
||||
cameraEulerAngles = camera.transform.eulerAngles;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user