7
Assets/Assets.sln.meta
Normal file
7
Assets/Assets.sln.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 459a7ea4ef65c664482b6377848ac5c3
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
32312
Assets/FR2_Cache.asset
32312
Assets/FR2_Cache.asset
File diff suppressed because it is too large
Load Diff
7
Assets/NLayer/NLayer.csproj.meta
Normal file
7
Assets/NLayer/NLayer.csproj.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6dbdd314784e80440b48088e6357c1ef
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because one or more lines are too long
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
@@ -103,8 +104,9 @@ namespace Ichni.RhythmGame
|
||||
var effectNameInputField = inspector.GenerateInputField(subcontainer, "Effect Name");
|
||||
var addEffectButton = inspector.GenerateButton(this, subcontainer, "Add Effect", () =>
|
||||
{
|
||||
if (EffectCollection.TryGetValue(effectNameInputField.GetValue<string>(), out EffectBase newEffect))
|
||||
if (EffectCollection.TryGetValue(effectNameInputField.GetValue<string>(), out var factory))
|
||||
{
|
||||
EffectBase newEffect = factory.Invoke(); // 创建新实例
|
||||
newEffect.attachedGameElement = attachedGameElement;
|
||||
effectCollection[effect.Key].Add(newEffect);
|
||||
newEffect.AccommodatingList = effectCollection[effect.Key];
|
||||
@@ -132,23 +134,23 @@ namespace Ichni.RhythmGame
|
||||
Note,
|
||||
}
|
||||
|
||||
private static Dictionary<string, EffectBase> EffectCollection { get; } =
|
||||
new Dictionary<string, EffectBase>()
|
||||
private static Dictionary<string, Func<EffectBase>> EffectCollection { get; } =
|
||||
new Dictionary<string, Func<EffectBase>>()
|
||||
{
|
||||
{ "Bloom", new BloomEffect(1, 2, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "CameraShake", new CameraShakeEffect(1, 50, 1, 1, 1) },
|
||||
{ "CameraOffset", new CameraOffsetEffect(0.2f, Vector3.forward, CustomCurvePresets.CustomPeakTimeParabolic(1, 0, 1, 0.3f)) },
|
||||
{ "CameraZoom", new CameraZoomEffect(0.2f, 5f,CustomCurvePresets.Parabolic(1,0,1))},
|
||||
{ "CameraTilt", new CameraTiltEffect(0.2f, new Vector3(0, 0, 5), CustomCurvePresets.CustomPeakTimeParabolic(1, 0, 1, 0.3f)) },
|
||||
{ "ChromaticAberration", new ChromaticAberrationEffect(1, 1, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "RadialBlur", new RadialBlurEffect(1,4,0.5f,0.5f, 1, CustomCurvePresets.Parabolic(1,0,1))},
|
||||
{ "Vignette", new VignetteEffect(1, 1, 0.4f, Color.black, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "SetInteger", new SetIntegerEffect("New Variable", 0, false, 0, 1) },
|
||||
{ "EnableControl", new EnableControlEffect(null, "New Variable", 0, false, "") },
|
||||
{ "Pixelate", new PixelateEffect(1, 320, 180, CustomCurvePresets.Instant())},
|
||||
{ "LowPassFilter", new LowPassFilterEffect(1, 10, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "HighPassFilter", new HighPassFilterEffect(1, 22000, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "DTM_RippleEffect", new DTMRippleEffect(0.65f, Color.white, 0) }
|
||||
{ "Bloom", ()=>new BloomEffect(1, 2, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "CameraShake",()=> new CameraShakeEffect(1, 50, 1, 1, 1) },
|
||||
{ "CameraOffset", ()=>new CameraOffsetEffect(0.2f, Vector3.forward, CustomCurvePresets.CustomPeakTimeParabolic(1, 0, 1, 0.3f)) },
|
||||
{ "CameraZoom",()=> new CameraZoomEffect(0.2f, 5f,CustomCurvePresets.Parabolic(1,0,1))},
|
||||
{ "CameraTilt", ()=>new CameraTiltEffect(0.2f, new Vector3(0, 0, 5), CustomCurvePresets.CustomPeakTimeParabolic(1, 0, 1, 0.3f)) },
|
||||
{ "ChromaticAberration", ()=>new ChromaticAberrationEffect(1, 1, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "RadialBlur",()=> new RadialBlurEffect(1,4,0.5f,0.5f, 1, CustomCurvePresets.Parabolic(1,0,1))},
|
||||
{ "Vignette", ()=>new VignetteEffect(1, 1, 0.4f, Color.black, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "SetInteger",()=> new SetIntegerEffect("New Variable", 0, false, 0, 1) },
|
||||
{ "EnableControl",()=> new EnableControlEffect(null, "New Variable", 0, false, "") },
|
||||
{ "Pixelate", ()=>new PixelateEffect(1, 320, 180, CustomCurvePresets.Instant())},
|
||||
{ "LowPassFilter", ()=>new LowPassFilterEffect(1, 10, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "HighPassFilter",()=> new HighPassFilterEffect(1, 22000, CustomCurvePresets.Parabolic(1, 0, 1)) },
|
||||
{ "DTM_RippleEffect",()=> new DTMRippleEffect(0.65f, Color.white, 0) }
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace Ichni.RhythmGame
|
||||
point.isBeyond1 = trackPercent.animations.Any(animation => animation.endValue > 1); //判断是否有超过1的动画,超过1将会循环
|
||||
|
||||
//添加默认动画
|
||||
if (point.parentElement is Track track1 && track1.submoduleList.Where(submodule => submodule is TrackTimeSubmoduleMovable).Count() == 1)
|
||||
if (isFirstGenerated && point.parentElement is Track track1 && track1.submoduleList.Where(submodule => submodule is TrackTimeSubmoduleMovable).Count() == 1)
|
||||
{
|
||||
TrackTimeSubmoduleMovable trackTimeSubmoduleMovable = track1.submoduleList.Where(submodule => submodule is TrackTimeSubmoduleMovable).FirstOrDefault() as TrackTimeSubmoduleMovable;
|
||||
point.trackPercent.Add(
|
||||
|
||||
@@ -2,6 +2,7 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using DG.Tweening.Core.Easing;
|
||||
using Ichni;
|
||||
using Ichni.Editor;
|
||||
using Ichni.RhythmGame;
|
||||
@@ -309,4 +310,24 @@ public class FlexibleFloatTab : MonoBehaviour
|
||||
FatherWindow.ConnectedPoint.Refresh(true);
|
||||
EventPoint.Locked = false;
|
||||
}
|
||||
public void CutEvent()
|
||||
{
|
||||
EventPoint eventPoint = FatherWindow.ConnectedPoint;
|
||||
if (eventPoint == null) return;
|
||||
for (int i = 0; i < BeatNextDeviver; i++)
|
||||
{
|
||||
float segmentStartTime = eventPoint.animatedFloat.startTime + (eventPoint.animatedFloat.endTime - eventPoint.animatedFloat.startTime) / BeatNextDeviver * i;
|
||||
float segmentEndTime = eventPoint.animatedFloat.startTime + (eventPoint.animatedFloat.endTime - eventPoint.animatedFloat.startTime) / BeatNextDeviver * (i + 1);
|
||||
connectFloat.Add(new AnimatedFloat(
|
||||
segmentStartTime,
|
||||
segmentEndTime,
|
||||
AnimationCurveEvaluator.Evaluate(eventPoint.animatedFloat.animationCurveType, (segmentStartTime - eventPoint.animatedFloat.startTime) / (eventPoint.animatedFloat.endTime - eventPoint.animatedFloat.startTime)) * (eventPoint.animatedFloat.endValue - eventPoint.animatedFloat.startValue) + eventPoint.animatedFloat.startValue,
|
||||
AnimationCurveEvaluator.Evaluate(eventPoint.animatedFloat.animationCurveType, (segmentEndTime - eventPoint.animatedFloat.startTime) / (eventPoint.animatedFloat.endTime - eventPoint.animatedFloat.startTime)) * (eventPoint.animatedFloat.endValue - eventPoint.animatedFloat.startValue) + eventPoint.animatedFloat.startValue,
|
||||
AnimationCurveType.Linear));
|
||||
}
|
||||
RemoveEventPoint(eventPoint);
|
||||
connectFloat.Sort();
|
||||
Initialize(connectFloat, Title);
|
||||
FatherWindow.ChangeValue();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,6 +247,10 @@ public partial class GraphicalFlexibleFloatWindow
|
||||
EventPoint.Locked = false;
|
||||
}
|
||||
}
|
||||
else if (Keyboard.current.lKey.wasPressedThisFrame)
|
||||
{
|
||||
ConnectedPoint.FatherTab.CutEvent();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -282,6 +286,7 @@ public partial class GraphicalFlexibleFloatWindow
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
public partial class GraphicalFlexibleFloatWindow
|
||||
{//以后显示类写这里,别在叠大粪了
|
||||
|
||||
@@ -3,6 +3,8 @@ using UnityEngine;
|
||||
using Ichni.RhythmGame;
|
||||
using UnityEngine.InputSystem;
|
||||
using DG.Tweening;
|
||||
using UniRx;
|
||||
using UniRx.Triggers;
|
||||
|
||||
namespace Ichni.Editor
|
||||
{
|
||||
@@ -46,12 +48,19 @@ namespace Ichni.Editor
|
||||
transform.localScale = Vector3.zero;
|
||||
StartCoroutine(WindowAnim.ShowPanelOnScale(gameObject));
|
||||
|
||||
targetGameElement.OnDestroyAsObservable()
|
||||
.Subscribe(_ =>
|
||||
{
|
||||
if (gameObject != null) Destroy(gameObject);
|
||||
instance = null;
|
||||
});
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (isMoving) return;
|
||||
|
||||
if (isMoving) return;
|
||||
transform.eulerAngles = targetGameElement.parentElement?.transform.eulerAngles ?? Vector3.zero;
|
||||
transform.position = targetGameElement.transform.position;
|
||||
if (Mouse.current.leftButton.wasPressedThisFrame)
|
||||
{
|
||||
@@ -144,13 +153,14 @@ namespace Ichni.Editor
|
||||
|
||||
// 应用新位置
|
||||
Vector3 newPosition = initialTargetPosition + worldAxis * worldDelta;
|
||||
Vector3 newPositionFormatted = new Vector3(
|
||||
Mathf.Round(newPosition.x * 100f) / 100f,
|
||||
Mathf.Round(newPosition.y * 100f) / 100f,
|
||||
Mathf.Round(newPosition.z * 100f) / 100f
|
||||
|
||||
targetGameElement.transform.position = newPosition;
|
||||
targetGameElement.transform.localPosition = new Vector3(
|
||||
Mathf.Round(targetGameElement.transform.localPosition.x * 100f) / 100f,
|
||||
Mathf.Round(targetGameElement.transform.localPosition.y * 100f) / 100f,
|
||||
Mathf.Round(targetGameElement.transform.localPosition.z * 100f) / 100f
|
||||
);
|
||||
targetGameElement.transform.position = newPositionFormatted;
|
||||
transform.position = newPositionFormatted;
|
||||
transform.position = newPosition;
|
||||
}
|
||||
|
||||
private Vector3 GetWorldAxis(int moveCode)
|
||||
|
||||
@@ -56,10 +56,6 @@ namespace Ichni
|
||||
private void Awake()
|
||||
{
|
||||
instance = this;
|
||||
useNotePrefab = true;
|
||||
ExpandWhileClick = true;
|
||||
useQuickMove = true;
|
||||
useClickSelect = true;
|
||||
isLoaded = false;
|
||||
projectManager = new ProjectManager();
|
||||
operationManager = new OperationManager();
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6071,9 +6071,9 @@
|
||||
},{
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
|
||||
"originalPosition" : {
|
||||
"x" : -2.4,
|
||||
"x" : -1,
|
||||
"y" : 0,
|
||||
"z" : 0.000900268555
|
||||
"z" : 0
|
||||
},
|
||||
"originalEulerAngles" : {
|
||||
"x" : 0,
|
||||
@@ -6229,9 +6229,9 @@
|
||||
},{
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
|
||||
"originalPosition" : {
|
||||
"x" : -2.02,
|
||||
"x" : -0.4218756,
|
||||
"y" : 0,
|
||||
"z" : 0.00410461426
|
||||
"z" : 0
|
||||
},
|
||||
"originalEulerAngles" : {
|
||||
"x" : 0,
|
||||
@@ -55344,9 +55344,9 @@
|
||||
},{
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
|
||||
"originalPosition" : {
|
||||
"x" : 0,
|
||||
"x" : 1,
|
||||
"y" : 0,
|
||||
"z" : -976
|
||||
"z" : -473
|
||||
},
|
||||
"originalEulerAngles" : {
|
||||
"x" : 0,
|
||||
@@ -114526,6 +114526,66 @@
|
||||
"attachedElementGuid" : {
|
||||
"value" : "588ff8e9-8646-4385-9d5e-371ecae6ae57"
|
||||
}
|
||||
},{
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.PathNode_BM,Assembly-CSharp",
|
||||
"isShowingSphere" : true,
|
||||
"elementName" : "New Path Node",
|
||||
"tags" : [
|
||||
|
||||
],
|
||||
"elementGuid" : {
|
||||
"value" : "a1bee609-d1b2-4e63-8080-a6c26812d9d3"
|
||||
},
|
||||
"attachedElementGuid" : {
|
||||
"value" : "2ecc4f84-1d6f-4f5f-b56a-039ce54d9b53"
|
||||
}
|
||||
},{
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.TransformSubmodule_BM,Assembly-CSharp",
|
||||
"originalPosition" : {
|
||||
"x" : 0,
|
||||
"y" : 0,
|
||||
"z" : -976
|
||||
},
|
||||
"originalEulerAngles" : {
|
||||
"x" : 0,
|
||||
"y" : 0,
|
||||
"z" : 0
|
||||
},
|
||||
"originalScale" : {
|
||||
"x" : 1,
|
||||
"y" : 1,
|
||||
"z" : 1
|
||||
},
|
||||
"attachedElementGuid" : {
|
||||
"value" : "a1bee609-d1b2-4e63-8080-a6c26812d9d3"
|
||||
}
|
||||
},{
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
|
||||
"isOverridingDuration" : false,
|
||||
"startTime" : -32767,
|
||||
"endTime" : 32767,
|
||||
"attachedElementGuid" : {
|
||||
"value" : "a1bee609-d1b2-4e63-8080-a6c26812d9d3"
|
||||
}
|
||||
},{
|
||||
"__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" : "a1bee609-d1b2-4e63-8080-a6c26812d9d3"
|
||||
}
|
||||
}
|
||||
],
|
||||
"attachedElementGuid" : {
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
ManifestFileVersion: 0
|
||||
CRC: 3206372954
|
||||
CRC: 1884651117
|
||||
AssetBundleManifest:
|
||||
AssetBundleInfos:
|
||||
Info_0:
|
||||
|
||||
Binary file not shown.
@@ -1,15 +1,15 @@
|
||||
ManifestFileVersion: 0
|
||||
CRC: 562226463
|
||||
CRC: 2016530734
|
||||
Hashes:
|
||||
AssetFileHash:
|
||||
serializedVersion: 2
|
||||
Hash: 94eab340bf8fd6cb0a0b0e354cc48b17
|
||||
Hash: 1552a2d53f685e0a2c6886fa73458cb6
|
||||
TypeTreeHash:
|
||||
serializedVersion: 2
|
||||
Hash: 274766e643314232a0624647b0f6f65e
|
||||
Hash: def11529b5fcdd04f866537b77a9d0ed
|
||||
IncrementalBuildHash:
|
||||
serializedVersion: 2
|
||||
Hash: 94eab340bf8fd6cb0a0b0e354cc48b17
|
||||
Hash: 1552a2d53f685e0a2c6886fa73458cb6
|
||||
HashAppended: 0
|
||||
ClassTypes:
|
||||
- Class: 1
|
||||
|
||||
Binary file not shown.
@@ -1,15 +1,15 @@
|
||||
ManifestFileVersion: 0
|
||||
CRC: 969896204
|
||||
CRC: 3790798872
|
||||
Hashes:
|
||||
AssetFileHash:
|
||||
serializedVersion: 2
|
||||
Hash: ba6732b1dc61496eb10a7bdedf0cfa3f
|
||||
Hash: 329c54c663ceab6a6601ca19a05f5121
|
||||
TypeTreeHash:
|
||||
serializedVersion: 2
|
||||
Hash: a82c29dac7008dd4e8ddbd3da1533c37
|
||||
Hash: bc905bc089e6ae59636d56a0812b978b
|
||||
IncrementalBuildHash:
|
||||
serializedVersion: 2
|
||||
Hash: ba6732b1dc61496eb10a7bdedf0cfa3f
|
||||
Hash: 329c54c663ceab6a6601ca19a05f5121
|
||||
HashAppended: 0
|
||||
ClassTypes:
|
||||
- Class: 1
|
||||
|
||||
Binary file not shown.
@@ -1,15 +1,15 @@
|
||||
ManifestFileVersion: 0
|
||||
CRC: 2841792033
|
||||
CRC: 2978929696
|
||||
Hashes:
|
||||
AssetFileHash:
|
||||
serializedVersion: 2
|
||||
Hash: dcd570fc931461005f81963b02073d83
|
||||
Hash: dbc0a33c4cf19f56cd82cf89b7106341
|
||||
TypeTreeHash:
|
||||
serializedVersion: 2
|
||||
Hash: 76414f0bd3072e0f403e9f6ae6853349
|
||||
Hash: e9ae0438db04172fb4d82acc92d8d8de
|
||||
IncrementalBuildHash:
|
||||
serializedVersion: 2
|
||||
Hash: dcd570fc931461005f81963b02073d83
|
||||
Hash: dbc0a33c4cf19f56cd82cf89b7106341
|
||||
HashAppended: 0
|
||||
ClassTypes:
|
||||
- Class: 1
|
||||
|
||||
@@ -96,6 +96,10 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
|
||||
base.Refresh();
|
||||
// judgeEffect.transform.position = tailPoint.transform.position;
|
||||
}
|
||||
public override void SetHighlight()
|
||||
{
|
||||
return; // HoldNoteVisual不需要高亮
|
||||
}
|
||||
}
|
||||
|
||||
public partial class DTMNoteVisualHold
|
||||
|
||||
Reference in New Issue
Block a user