采音器初步

This commit is contained in:
2025-05-01 22:54:56 +08:00
parent a0e1338c36
commit 6f1ed89221
23 changed files with 6562 additions and 351 deletions

File diff suppressed because one or more lines are too long

View File

@@ -34,6 +34,7 @@ MonoBehaviour:
type: 3}
defaultTrackMaterial: {fileID: 2100000, guid: 2424431729f1047c4b42f971c2cdd2b6,
type: 2}
sampler: {fileID: 8976586735561836907, guid: 6191c60211a05c04ea9265f89896f4d0, type: 3}
trail: {fileID: 4801226466239889825, guid: a21d9cdd0e3454527bec5f2b0e9a9cae, type: 3}
defaultTrailMaterial: {fileID: 2100000, guid: 8af6dd7f0725540388b84a4697118bb9,
type: 2}

View File

@@ -0,0 +1,195 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7279002289382489418
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4113964437017200012}
- component: {fileID: 3988560902096513509}
- component: {fileID: 3901934672832090415}
m_Layer: 5
m_Name: RawImage
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4113964437017200012
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7279002289382489418}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2523909696294392997}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 12, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3988560902096513509
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7279002289382489418}
m_CullTransparentMesh: 1
--- !u!114 &3901934672832090415
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7279002289382489418}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
--- !u!1 &8453727759659553036
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2523909696294392997}
- component: {fileID: 5461587753206792591}
- component: {fileID: 5335898105413302274}
- component: {fileID: 7343609601733320153}
m_Layer: 5
m_Name: NoteFab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2523909696294392997
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8453727759659553036}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4113964437017200012}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 157.4}
m_SizeDelta: {x: 30, y: 30}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5461587753206792591
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8453727759659553036}
m_CullTransparentMesh: 1
--- !u!114 &5335898105413302274
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8453727759659553036}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 0ecdb2af8ed8f904eacbb8cb7e83603b, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7343609601733320153
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8453727759659553036}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 5335898105413302274}
m_OnClick:
m_PersistentCalls:
m_Calls: []

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b56a53ecbd73dca4aa3152504b1ca92d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,193 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Ichni;
using Ichni.Editor;
using Ichni.RhythmGame;
using TMPro;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.UI;
public class SampleWindow : MovableWindow//该window高度为300横的要在200和500之间切换
{
public static List<SampleWindow> instances = new List<SampleWindow>();
public TMP_InputField DeviverInputField;
public TMP_InputField verticalInputField;
public TMP_InputField horizontalInputField;
public RectTransform LineMovepoint;
public RectTransform NoteMovepoint;
public List<NoteBase> noteBases;
public bool isFocus = false;
public bool isExpand = false;
public int beatDeviver = 100;
public int Xdevide = 1;
public float realDevider;
public GameObject beatLinePrefabv;
public GameObject beatLinePrefabh;
public GameObject NotePrefab;
public RectTransform secBeatLineh;//用于定位屏幕位置
float songTime => EditorManager.instance.songInformation.songTime;
float songBeat => EditorManager.instance.songInformation.songBeat;
float beatmapStartTime => -EditorManager.instance.songInformation.delay;
float timePerBeat => 60f / EditorManager.instance.songInformation.bpm;
public GameElement gameElement;
public void Initialize(GameElement qgameElement, string title)
{
closeButton.onClick.AddListener(() =>
{
instances.Remove(this);
});
if (instances.Where(i => i.gameElement == qgameElement).Count() != 0)
{
Destroy(this.gameObject);
foreach (SampleWindow i in instances)
{
i.StartCoroutine(WindowAnim.Shake(instances.Where(i => i.gameElement == qgameElement).First().windowRect.gameObject));
}
return;
}
this.gameElement = qgameElement;
InitializeWindow(title);
//
SpawnBeatline();
OnceSpawnNote();
instances.Add(this);
}
public void SpawnBeatline()//添加优化措施
{
for (int i = LineMovepoint.childCount - 1; i >= 0; i--)
{
Destroy(LineMovepoint.GetChild(i).gameObject);
}
for (int i = 0; i < (int)EditorManager.instance.songInformation.song.length / timePerBeat; i++)
{
GameObject u = Instantiate(beatLinePrefabh, LineMovepoint);
u.transform.localPosition = new Vector3(0, i * beatDeviver, 0);
if (i == 1)
{
secBeatLineh = u.GetComponent<RectTransform>();
realDevider = secBeatLineh.position.y - LineMovepoint.position.y;
Debug.Log(realDevider);
}
if (u.transform.localPosition.y > 300)
{
Destroy(u);
break;
}
}
}
public void OnceSpawnNote()
{
if (gameElement is Track track) noteBases = track.GetAllNotes();
else if (gameElement is ElementFolder elementFolder) noteBases = elementFolder.GetAllNotes();
for (int i = NoteMovepoint.childCount - 1; i >= 0; i--)
{
Destroy(NoteMovepoint.GetChild(i).gameObject);
}
foreach (var i in noteBases)
{
SpawnNote(i);
}
}
private void SpawnNote(NoteBase i)
{
GameObject u = Instantiate(NotePrefab, NoteMovepoint);
u.transform.localPosition = new Vector3(0, i.exactJudgeTime / timePerBeat * beatDeviver, 0);
switch (i)
{
case Hold hold:
u.GetComponent<Image>().color = new Color(0, 1, 0, 1);
RawImage a = u.GetComponent<RawImage>();
a.transform.localPosition = new Vector3(0, (hold.holdEndTime - hold.exactJudgeTime) / timePerBeat * beatDeviver / 2, 0);
a.GetComponent<RectTransform>().sizeDelta = new Vector2(0, (hold.holdEndTime - hold.exactJudgeTime) / timePerBeat * beatDeviver);
break;
case Tap:
u.GetComponent<Image>().color = new Color(0, 1, 1, 1);
break;
case Stay:
u.GetComponent<Image>().color = new Color(1, 1, 0, 1);
break;
case Flick:
u.GetComponent<Image>().color = new Color(1, 0.2f, 0, 1);
break;
}
}
void Update()
{
LineMovepoint.localPosition = new(0, -beatDeviver * (songBeat - (int)songBeat), 0);
NoteMovepoint.localPosition = new(0, -beatDeviver * songBeat, 0);
if (isFocus && gameElement is Track track)
{
}
}
public void ChangeFocus()
{
isFocus = !isFocus;
}
public void ChangeXdevide(string devide)
{
Xdevide = int.Parse(devide);
}
public void ChangeBeatdevide(string devide)
{
beatDeviver = int.Parse(devide);
SpawnBeatline();
OnceSpawnNote();
}
public void ChangeExpand()
{
if (isExpand)
{
isExpand = false;
windowRect.sizeDelta = new Vector2(200, windowRect.sizeDelta.y);
}
else
{
isExpand = true;
windowRect.sizeDelta = new Vector2(500, windowRect.sizeDelta.y);
}
}
public void AddNote()
{
// 获取鼠标在 NoteMovepoint 中的相对位置
Vector2 localMousePosition = NoteMovepoint.InverseTransformPoint(Mouse.current.position.ReadValue());
Debug.Log(localMousePosition);
// 使用 realDevider 进行整数倍舍入
float mouseBeat = localMousePosition.y / beatDeviver;
float far = 0f;
while (far < mouseBeat)
{
far += 1f / Xdevide;
}
far -= 1f / Xdevide;
float time = (far * timePerBeat);//idk
//Debug.Log($"Rounded Position Y: {time}");
if (!isExpand)
{
Tap a = Tap.GenerateElement("New Tap", Guid.NewGuid(), new List<string>(), true, gameElement, time);
noteBases.Add(a);
SpawnNote(a);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a48a638548bdb6645bfa74867dc72087
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6191c60211a05c04ea9265f89896f4d0
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,74 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3375005738445340647
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1518643130347208655}
- component: {fileID: 4593078808003308247}
- component: {fileID: 1291542366745755282}
m_Layer: 5
m_Name: horizon pointer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1518643130347208655
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3375005738445340647}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 82}
m_SizeDelta: {x: 500, y: 2}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4593078808003308247
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3375005738445340647}
m_CullTransparentMesh: 1
--- !u!114 &1291542366745755282
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3375005738445340647}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 1, b: 1, a: 0.2627451}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d73d411fb33ebdd489321f08668d0673
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,74 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &2977211274865782059
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 799440464203327601}
- component: {fileID: 7961978448294660424}
- component: {fileID: 884661352009148774}
m_Layer: 5
m_Name: vertical pointer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &799440464203327601
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2977211274865782059}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 2, y: 500}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7961978448294660424
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2977211274865782059}
m_CullTransparentMesh: 1
--- !u!114 &884661352009148774
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2977211274865782059}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 1, a: 0.5882353}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Texture: {fileID: 0}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 7006cf01f592ed54593fb8a4f7fc5f97
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because one or more lines are too long

View File

@@ -6,6 +6,7 @@ using Ichni.Editor;
using Ichni.RhythmGame;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Profiling;
using Object = UnityEngine.Object;
namespace Ichni.Editor
@@ -34,6 +35,13 @@ namespace Ichni.Editor
graphicalFlexibleFloatWindow.Initialize(baseElement, title, FlexibleFloats, subTitle);
return graphicalFlexibleFloatWindow;
}
public SampleWindow GenerateSampler(GameElement baseElement, string title)
{
SampleWindow sampler = Object.Instantiate(EditorManager.instance.basePrefabs.sampler, EditorManager.instance.uiManager.inspector.inspectorCanvas.GetComponent<RectTransform>())
.GetComponent<SampleWindow>();
sampler.Initialize(baseElement, title);
return sampler;
}
public DynamicUIContainer GenerateContainer(string titleText)
{
DynamicUIContainer container =

View File

@@ -1,5 +1,7 @@
using System.Collections;
using System.Collections.Generic;
using DG.Tweening.Core.Easing;
using Ichni;
using UnityEngine;
public static class WindowAnim
@@ -41,6 +43,18 @@ public static class WindowAnim
gameObject.transform.localScale = Vector3.zero;
}
public static IEnumerator Shake(GameObject gameObject)
{
float timer = 0f;
Vector3 origpos = gameObject.transform.position;
while (timer <= 1f)
{
float offset = 50 * AnimationCurveEvaluator.Evaluate(AnimationCurveType.OutElastic, timer / 1f);
gameObject.transform.position = origpos + new Vector3(Random.Range(-offset, offset), Random.Range(-offset, offset), 0);
timer += Time.deltaTime;
yield return null;
}
gameObject.transform.position = origpos;
}
}

View File

@@ -118,7 +118,7 @@ namespace Ichni.RhythmGame
noteVisual.effectSubmodule.effectCollection["Miss"].ForEach(e => e.UpdateEffect(exactJudgeTime));
break;
}
noteVisual.effectSubmodule.effectCollection["AfterJudge"].ForEach(e => e.UpdateEffect(exactJudgeTime));
if (EditorManager.instance.cameraManager.haveGameCamera)
@@ -150,9 +150,9 @@ namespace Ichni.RhythmGame
public override void SetUpInspector()
{
base.SetUpInspector();
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var infoContainer = inspector.GenerateContainer("Note Info");
var noteBaseSettings = infoContainer.GenerateSubcontainer(3);
var exactJudgeTimeInputField =
@@ -163,9 +163,9 @@ namespace Ichni.RhythmGame
{
EditorManager.instance.projectManager.notePrefabManager.SaveNotePrefab(this, GetNoteTypeName(this) + "_Prefab");
});
var noteScreenPositionText = inspector.GenerateHintText(this, noteBaseSettings,
var noteScreenPositionText = inspector.GenerateHintText(this, noteBaseSettings,
() => "Note Screen Position: " + noteScreenPosition);
var noteVisualContainer = inspector.GenerateContainer("Note Visual");
var noteVisualGeneration = noteVisualContainer.GenerateSubcontainer(3);
var generateNoteVisualButton = inspector.GenerateButton(this, noteVisualGeneration, "Generate Note Visual", () =>
@@ -178,6 +178,18 @@ namespace Ichni.RhythmGame
generateNoteVisualButton.button.interactable = false;
}
}
public override void OnDelete()
{
base.OnDelete();
if (parentElement != null)
{
if (EditorManager.instance.uiManager.inspector.connectedGameElement == parentElement)
{
EditorManager.instance.uiManager.timeline.SetTimeLine(parentElement);
foreach (SampleWindow i in SampleWindow.instances.Where(i => i.gameElement)) i.OnceSpawnNote();
}
}
}
}
public abstract partial class NoteBase

View File

@@ -291,9 +291,17 @@ namespace Ichni.RhythmGame
var setOnlyStartEndPathNodeSphereEnabledButton =
inspector.GenerateButton(this, pathNodeToolsSubcontainer, "Only Enable Start & End Path Node's sphere",
SetOnlyStartEndPathNodeSphereEnabled);
var Sampler = inspector.GenerateContainer("Sampler"); //cyq
var SamplerSubcontainer = Sampler.GenerateSubcontainer(1);
var SamplerButton = inspector.GenerateButton(this, SamplerSubcontainer, "Sampler", () =>
{
SampleWindow sampleWindow = inspector.GenerateSampler(this, this.elementName);
}
);
}
}
public partial class Track
{
[Button("Test GetAllNotes")]
@@ -312,7 +320,7 @@ namespace Ichni.RhythmGame
{
Debug.Log(note.GetType() + " " + note.elementName + " " + note.exactJudgeTime);
}
return notes;
}
}

View File

@@ -118,7 +118,7 @@ public class FlexibleFloatTab : MonoBehaviour
eventPoint.Initialize(new AnimatedFloat(GetBeat(),
GetBeat() + (float.Parse(FatherWindow.EventMultiplier.text) * FatherWindow.timePerBeat), 0, 0, AnimationCurveType.Linear));
eventPoints.Insert(FindInsertIndex(eventPoint.animatedFloat.startTime), eventPoint);
LinkNewEventPoint(eventPoint);
LinkNewEventPoint(eventPoint, true);
eventPoint.ReDraw(scalevalue);
eventPoint.selectButton.onClick.Invoke();
FatherWindow.ChangeValue();
@@ -142,7 +142,7 @@ public class FlexibleFloatTab : MonoBehaviour
connectFloat.Sort();
}
// 连接新事件点
private void LinkNewEventPoint(EventPoint eventPoint)
private void LinkNewEventPoint(EventPoint eventPoint, bool link = false)
{
int index = eventPoints.IndexOf(eventPoint);
if (index - 1 >= 0)
@@ -154,7 +154,7 @@ public class FlexibleFloatTab : MonoBehaviour
if (index + 1 < eventPoints.Count)
{
eventPoint.NextEventPoint = eventPoints[index + 1];
eventPoint.animatedFloat.endTime = eventPoint.NextEventPoint.animatedFloat.startTime;
if (link) eventPoint.animatedFloat.endTime = eventPoint.NextEventPoint.animatedFloat.startTime;
eventPoint.Initialize(eventPoint.animatedFloat);
eventPoint.NextEventPoint.LastEventPoint = eventPoint;
}

View File

@@ -2,6 +2,7 @@ using System.Collections;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEngine;
using UnityEngine.Profiling;
using UnityEngine.Serialization;
[CreateAssetMenu(fileName = "BasePrefabsCollection", menuName = "Ichni/BasePrefabsCollection", order = 0)]
@@ -15,6 +16,7 @@ public class BasePrefabsCollection : SerializedScriptableObject
public GameObject trackDisplay;
public GameObject pathNode;
public Material defaultTrackMaterial;
public GameObject sampler;
[Title("Trail相关")] public GameObject trail;
public Material defaultTrailMaterial;
@@ -29,7 +31,7 @@ public class BasePrefabsCollection : SerializedScriptableObject
public AudioClip holdNoteLoopSound;
public AudioClip holdNoteEndSound;
public AudioClip flickNoteSound;
[Title("Note 判定UI")]
[Title("Note 判定UI")]
public GameObject fullscreenNearTimeHint;
public GameObject areaHint;
public GameObject triggerHint;

View File

@@ -2789,8 +2789,8 @@
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp",
"exactJudgeTime" : 10,
"elementName" : "New Tap",
"exactJudgeTime" : 10.96774,
"elementName" : "Tap (10.96774)",
"tags" : [
],
@@ -2958,13 +2958,13 @@
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp",
"exactJudgeTime" : 20,
"elementName" : "New Tap",
"exactJudgeTime" : 11.6129026,
"elementName" : "Tap (11.6129)",
"tags" : [
],
"elementGuid" : {
"value" : "7770d08d-7b98-4fca-a4a1-8b3aaf379d18"
"value" : "a54eb6e2-27ed-45b1-87d4-85dddb836f5c"
},
"attachedElementGuid" : {
"value" : "1500056c-f5cb-4c71-8096-d6aa6e2ef716"
@@ -2975,141 +2975,7 @@
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "7770d08d-7b98-4fca-a4a1-8b3aaf379d18"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteJudgeSubmodule_BM,Assembly-CSharp",
"judgeUnitList" : [
{
"__type" : "Ichni.RhythmGame.Beatmap.TouchAreaJudgeUnit_BM,Assembly-CSharp",
"areaRadius" : 1000
}
],
"attachedElementGuid" : {
"value" : "7770d08d-7b98-4fca-a4a1-8b3aaf379d18"
}
},{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteVisual_BM,Assembly-CSharp",
"themeBundleName" : "departure_to_multiverse",
"objectName" : "DTM_NoteVisualTap",
"elementName" : "New Note Visual",
"tags" : [
],
"elementGuid" : {
"value" : "de8b8758-eb91-40b2-b750-1c253c210304"
},
"attachedElementGuid" : {
"value" : "7770d08d-7b98-4fca-a4a1-8b3aaf379d18"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalEulerAngles" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalScale" : {
"x" : 1,
"y" : 1,
"z" : 1
},
"attachedElementGuid" : {
"value" : "de8b8758-eb91-40b2-b750-1c253c210304"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "de8b8758-eb91-40b2-b750-1c253c210304"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
"originalBaseColor" : {
"r" : 1,
"g" : 1,
"b" : 1,
"a" : 1
},
"emissionEnabled" : false,
"originalEmissionColor" : {
"r" : 0,
"g" : 0,
"b" : 0,
"a" : 1
},
"originalEmissionIntensity" : 0,
"attachedElementGuid" : {
"value" : "de8b8758-eb91-40b2-b750-1c253c210304"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
"effectCollection" : {"Generate":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGenerateExpand_BM,Assembly-CSharp",
"effectTime" : 0,
"generateTime" : 0,
"generateTime" : 1,
"effectTime" : 0.2
}
],"GeneralJudge":[
],"Holding":[
],"Perfect":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNotePerfectBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Good":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGoodBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Bad":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteBadBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Miss":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteMissTransparent_BM,Assembly-CSharp",
"effectTime" : 0.2
}
],"AfterJudge":[
]
},
"attachedElementGuid" : {
"value" : "de8b8758-eb91-40b2-b750-1c253c210304"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp",
"exactJudgeTime" : 19,
"elementName" : "New Tap",
"tags" : [
],
"elementGuid" : {
"value" : "5da95d3a-c0a5-4ed2-b76d-83698afd1330"
},
"attachedElementGuid" : {
"value" : "1500056c-f5cb-4c71-8096-d6aa6e2ef716"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "5da95d3a-c0a5-4ed2-b76d-83698afd1330"
"value" : "a54eb6e2-27ed-45b1-87d4-85dddb836f5c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteJudgeSubmodule_BM,Assembly-CSharp",
@@ -3117,20 +2983,7 @@
],
"attachedElementGuid" : {
"value" : "5da95d3a-c0a5-4ed2-b76d-83698afd1330"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.Stay_BM,Assembly-CSharp",
"exactJudgeTime" : 18,
"elementName" : "New Stay",
"tags" : [
],
"elementGuid" : {
"value" : "1131351f-d3ee-4a57-8e10-5cd0a241903c"
},
"attachedElementGuid" : {
"value" : "1500056c-f5cb-4c71-8096-d6aa6e2ef716"
"value" : "a54eb6e2-27ed-45b1-87d4-85dddb836f5c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -3138,7 +2991,7 @@
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "1131351f-d3ee-4a57-8e10-5cd0a241903c"
"value" : "a54eb6e2-27ed-45b1-87d4-85dddb836f5c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteJudgeSubmodule_BM,Assembly-CSharp",
@@ -3146,94 +2999,7 @@
],
"attachedElementGuid" : {
"value" : "1131351f-d3ee-4a57-8e10-5cd0a241903c"
}
},{
"__type" : "Ichni.RhythmGame.ThemeBundles.MetropolisOnOrbit.Beatmap.MOONoteVisual_BM,Assembly-CSharp",
"themeBundleName" : "metropolis_on_orbit",
"objectName" : "MOO_NoteVisualStay",
"elementName" : "New Note Visual",
"tags" : [
],
"elementGuid" : {
"value" : "feb96959-34da-46cf-9b0d-fc7fe26c0f88"
},
"attachedElementGuid" : {
"value" : "1131351f-d3ee-4a57-8e10-5cd0a241903c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
"originalPosition" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalEulerAngles" : {
"x" : 0,
"y" : 0,
"z" : 0
},
"originalScale" : {
"x" : 1,
"y" : 1,
"z" : 1
},
"attachedElementGuid" : {
"value" : "feb96959-34da-46cf-9b0d-fc7fe26c0f88"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
"isOverridingDuration" : false,
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "feb96959-34da-46cf-9b0d-fc7fe26c0f88"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
"originalBaseColor" : {
"r" : 1,
"g" : 1,
"b" : 1,
"a" : 1
},
"emissionEnabled" : false,
"originalEmissionColor" : {
"r" : 0,
"g" : 0,
"b" : 0,
"a" : 1
},
"originalEmissionIntensity" : 0,
"attachedElementGuid" : {
"value" : "feb96959-34da-46cf-9b0d-fc7fe26c0f88"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
"effectCollection" : {"Generate":[
],"GeneralJudge":[
],"Holding":[
],"Perfect":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.MetropolisOnOrbit.Beatmap.MOONotePerfectAnimation_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Good":[
],"Bad":[
],"Miss":[
],"AfterJudge":[
]
},
"attachedElementGuid" : {
"value" : "feb96959-34da-46cf-9b0d-fc7fe26c0f88"
"value" : "a54eb6e2-27ed-45b1-87d4-85dddb836f5c"
}
},{
"__type" : "Ichni.RhythmGame.ThemeBundles.MetropolisOnOrbit.Beatmap.MOONoteVisual_BM,Assembly-CSharp",
@@ -3244,10 +3010,10 @@
],
"elementGuid" : {
"value" : "21b93284-113f-4d64-9b66-06effa0983d5"
"value" : "66d2a4ec-10ce-44c1-b3db-908e3d479ec8"
},
"attachedElementGuid" : {
"value" : "5da95d3a-c0a5-4ed2-b76d-83698afd1330"
"value" : "a54eb6e2-27ed-45b1-87d4-85dddb836f5c"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -3267,7 +3033,7 @@
"z" : 1
},
"attachedElementGuid" : {
"value" : "21b93284-113f-4d64-9b66-06effa0983d5"
"value" : "66d2a4ec-10ce-44c1-b3db-908e3d479ec8"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -3275,7 +3041,7 @@
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "21b93284-113f-4d64-9b66-06effa0983d5"
"value" : "66d2a4ec-10ce-44c1-b3db-908e3d479ec8"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
@@ -3294,7 +3060,7 @@
},
"originalEmissionIntensity" : 0,
"attachedElementGuid" : {
"value" : "21b93284-113f-4d64-9b66-06effa0983d5"
"value" : "66d2a4ec-10ce-44c1-b3db-908e3d479ec8"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
@@ -3320,7 +3086,7 @@
]
},
"attachedElementGuid" : {
"value" : "21b93284-113f-4d64-9b66-06effa0983d5"
"value" : "66d2a4ec-10ce-44c1-b3db-908e3d479ec8"
}
}
],

View File

@@ -4,13 +4,13 @@
"value" : [
{
"__type" : "Ichni.RhythmGame.Beatmap.Tap_BM,Assembly-CSharp",
"exactJudgeTime" : 11,
"exactJudgeTime" : 3.87096763,
"elementName" : "New Tap",
"tags" : [
],
"elementGuid" : {
"value" : "b39c5df5-7828-40da-9953-be4df206e5fe"
"value" : "2ccbeb3b-05ec-4821-8f1e-b67a40a2a192"
},
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"
@@ -21,32 +21,29 @@
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "b39c5df5-7828-40da-9953-be4df206e5fe"
"value" : "2ccbeb3b-05ec-4821-8f1e-b67a40a2a192"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.NoteJudgeSubmodule_BM,Assembly-CSharp",
"judgeUnitList" : [
{
"__type" : "Ichni.RhythmGame.Beatmap.TouchAreaJudgeUnit_BM,Assembly-CSharp",
"areaRadius" : 1000
}
],
"attachedElementGuid" : {
"value" : "b39c5df5-7828-40da-9953-be4df206e5fe"
"value" : "2ccbeb3b-05ec-4821-8f1e-b67a40a2a192"
}
},{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteVisual_BM,Assembly-CSharp",
"themeBundleName" : "departure_to_multiverse",
"objectName" : "DTM_NoteVisualTap",
"__type" : "Ichni.RhythmGame.ThemeBundles.MetropolisOnOrbit.Beatmap.MOONoteVisual_BM,Assembly-CSharp",
"themeBundleName" : "metropolis_on_orbit",
"objectName" : "MOO_NoteVisualTap",
"elementName" : "New Note Visual",
"tags" : [
],
"elementGuid" : {
"value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e"
"value" : "66284cbc-9e86-4568-a7ca-f4e9c9eedd98"
},
"attachedElementGuid" : {
"value" : "b39c5df5-7828-40da-9953-be4df206e5fe"
"value" : "2ccbeb3b-05ec-4821-8f1e-b67a40a2a192"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
@@ -66,7 +63,7 @@
"z" : 1
},
"attachedElementGuid" : {
"value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e"
"value" : "66284cbc-9e86-4568-a7ca-f4e9c9eedd98"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
@@ -74,7 +71,7 @@
"startTime" : -32767,
"endTime" : 32767,
"attachedElementGuid" : {
"value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e"
"value" : "66284cbc-9e86-4568-a7ca-f4e9c9eedd98"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.ColorSubmodule_BM,Assembly-CSharp",
@@ -93,7 +90,7 @@
},
"originalEmissionIntensity" : 0,
"attachedElementGuid" : {
"value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e"
"value" : "66284cbc-9e86-4568-a7ca-f4e9c9eedd98"
}
},{
"__type" : "Ichni.RhythmGame.Beatmap.EffectSubmodule_BM,Assembly-CSharp",
@@ -105,46 +102,13 @@
],"Perfect":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNotePerfectBurst_BM,Assembly-CSharp",
"effectTime" : 0
},{
"__type" : "Ichni.RhythmGame.Beatmap.BloomEffect_BM,Assembly-CSharp",
"duration" : 1,
"peak" : 10,
"intensityCurve" : {
"keys" : [
{
"time" : 0,
"value" : 5,
"inTangent" : 0,
"outTangent" : 0
},{
"time" : 0.5,
"value" : 2,
"inTangent" : 0,
"outTangent" : 0
},{
"time" : 1,
"value" : 0,
"inTangent" : 0,
"outTangent" : 0
}
],
"preWrapMode" : 8,
"postWrapMode" : 8
},
"__type" : "Ichni.RhythmGame.ThemeBundles.MetropolisOnOrbit.Beatmap.MOONotePerfectAnimation_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Good":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteGoodBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Bad":[
{
"__type" : "Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse.Beatmap.DTMNoteBadBurst_BM,Assembly-CSharp",
"effectTime" : 0
}
],"Miss":[
],"AfterJudge":[
@@ -152,9 +116,9 @@
]
},
"attachedElementGuid" : {
"value" : "1f28baf0-02e1-4e6b-8257-c13b2745bd7e"
"value" : "66284cbc-9e86-4568-a7ca-f4e9c9eedd98"
}
},null
}
]
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long