This commit is contained in:
SoulliesOfficial
2026-04-05 03:14:24 -04:00
parent 1e11f95976
commit c392ae4949
116 changed files with 326290 additions and 954253 deletions

View File

@@ -30,7 +30,7 @@ Material:
m_LightmapFlags: 4
m_EnableInstancingVariants: 1
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
m_CustomRenderQueue: 3001
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
@@ -135,7 +135,7 @@ Material:
- _OcclusionStrength: 1
- _Opacity: 0
- _Parallax: 0.005
- _QueueControl: 0
- _QueueControl: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
@@ -172,3 +172,4 @@ Material:
- _Vector0: {r: -0.05, g: 1, b: 0, a: 0}
- _colorremap: {r: 0.5, g: 1, b: 0, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1

View File

@@ -17,7 +17,7 @@ Material:
m_LightmapFlags: 4
m_EnableInstancingVariants: 1
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
m_CustomRenderQueue: 3002
stringTagMap: {}
disabledShaderPasses:
- MOTIONVECTORS
@@ -112,7 +112,7 @@ Material:
- _OcclusionStrength: 1
- _Outline_Thickness: 0.0081
- _Parallax: 0.005
- _QueueControl: 0
- _QueueControl: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using UnityEngine;
namespace Ichni.RhythmGame.Beatmap
{
@@ -23,6 +24,9 @@ namespace Ichni.RhythmGame.Beatmap
public override void ExecuteBM()
{
if(GetElement(attachedElementGuid) == null)
Debug.Log($"Swirl_BM ExecuteBM failed: attached element with guid {attachedElementGuid} not found");
matchedElement = Swirl.GenerateElement(elementName, elementGuid, tags, false, GetElement(attachedElementGuid),
eulerAngleX.ConvertToGameType(), eulerAngleY.ConvertToGameType(), eulerAngleZ.ConvertToGameType());
}

View File

@@ -23,6 +23,7 @@ namespace Ichni.RhythmGame.Beatmap
public override void ExecuteBM()
{
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
//if(attachedElement == null) Debug.Log(attachedElementGuid);
(attachedElement as IHaveTimeDurationSubmodule).timeDurationSubmodule =
new TimeDurationSubmodule(attachedElement, isOverridingDuration, startTime, endTime);
}

View File

@@ -26,6 +26,7 @@ namespace Ichni.RhythmGame.Beatmap
attachedElement = GameElement_BM.GetElement(attachedElementGuid);
(attachedElement as IHaveTransformSubmodule).transformSubmodule =
new TransformSubmodule(attachedElement, originalPosition, originalEulerAngles, originalScale);
}
public override void DuplicateBM(GameElement attached)

View File

@@ -21,8 +21,8 @@ namespace Ichni.RhythmGame
var container = inspector.GenerateContainer("Property Animation Color");
var settings = container.GenerateSubcontainer(3);
inspector.GenerateInputField(this, settings, "Component Name", nameof(componentName));
inspector.GenerateInputField(this, settings, "Property Name", nameof(propertyName));
inspector.GenerateInputField(this, settings, "Component Name", nameof(componentName)).AddListenerFunction(() => AfterInitialize());
inspector.GenerateInputField(this, settings, "Property Name", nameof(propertyName)).AddListenerFunction(() => AfterInitialize());
var graphicEditor = inspector.GenerateButton(this, settings, "GraphicEditor", () =>
{

View File

@@ -20,8 +20,8 @@ namespace Ichni.RhythmGame
var container = inspector.GenerateContainer("Property Animation Float");
var settings = container.GenerateSubcontainer(3);
inspector.GenerateInputField(this, settings, "Component Name", nameof(componentName));
inspector.GenerateInputField(this, settings, "Property Name", nameof(propertyName));
inspector.GenerateInputField(this, settings, "Component Name", nameof(componentName)).AddListenerFunction(() => AfterInitialize());
inspector.GenerateInputField(this, settings, "Property Name", nameof(propertyName)).AddListenerFunction(() => AfterInitialize());
var graphicEditor = inspector.GenerateButton(this, settings, "GraphicEditor", () =>
{

View File

@@ -20,8 +20,8 @@ namespace Ichni.RhythmGame
var container = inspector.GenerateContainer("Property Animation Vector3");
var settings = container.GenerateSubcontainer(3);
inspector.GenerateInputField(this, settings, "Component Name", nameof(componentName));
inspector.GenerateInputField(this, settings, "Property Name", nameof(propertyName));
inspector.GenerateInputField(this, settings, "Component Name", nameof(componentName)).AddListenerFunction(() => AfterInitialize());
inspector.GenerateInputField(this, settings, "Property Name", nameof(propertyName)).AddListenerFunction(() => AfterInitialize());
var graphicEditor = inspector.GenerateButton(this, settings, "GraphicEditor", () =>
{

View File

@@ -12,13 +12,12 @@ namespace Ichni.RhythmGame
{
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
var container = inspector.GenerateContainer("Color");
var subcontainer = container.GenerateSubcontainer(1, 300f);
if ((attachedGameElement as IHaveColorSubmodule).haveBaseColor)
{
var baseColor = inspector.GenerateBaseColorPicker(this, subcontainer, "Base Color", nameof(originalBaseColor));
var subBase = container.GenerateSubcontainer(1, 280f);
var baseColor = inspector.GenerateBaseColorPicker(this, subBase, "Base Color", nameof(originalBaseColor));
baseColor.AddListenerFunction(Refresh);
var hsvDrawer = inspector.GenerateHsvDrawer(this, subcontainer, "HSV", nameof(originalBaseColor));
var hsvDrawer = inspector.GenerateHsvDrawer(this, subBase, "HSV", nameof(originalBaseColor));
hsvDrawer.AddListenerFunction(Refresh);
baseColor.hsvDrawer = hsvDrawer;
hsvDrawer.baseColorPicker = baseColor;
@@ -33,7 +32,8 @@ namespace Ichni.RhythmGame
if ((attachedGameElement as IHaveColorSubmodule).haveEmissionColor)
{
var emissionColor = inspector.GenerateEmissionColorPicker(this, subcontainer, "Emission Color",
var subEmission = container.GenerateSubcontainer(1, 320f);
var emissionColor = inspector.GenerateEmissionColorPicker(this, subEmission, "Emission Color",
nameof(emissionEnabled), nameof(originalEmissionColor), nameof(originalEmissionIntensity));
emissionColor.AddListenerFunction(Refresh);

View File

@@ -21,7 +21,7 @@ namespace Ichni.RhythmGame
inspector.GenerateCompositeParameterWindow(this, "Intensity Curve", nameof(intensityCurve)).SetAsCustomCurve();
});
var colorSettings = container.GenerateSubcontainer(1);
var colorSettings = container.GenerateSubcontainer(1, 280f);
var colorField = inspector.GenerateBaseColorPicker(this, colorSettings, "Color", nameof(color));
SetRemove(effectSettings);
}

View File

@@ -45,10 +45,22 @@ namespace Ichni.RhythmGame
}
#endregion
#region [] Update & Tracking
public void Update()
public override void AfterInitialize()
{
if (track.timeDurationSubmodule.CheckTimeInDuration(SongTime))
base.AfterInitialize();
TrackManager.instance.RegisterHeadPoint(this);
}
public override void OnDelete()
{
base.OnDelete();
TrackManager.instance.UnregisterHeadPoint(this);
}
#region [] Update & Tracking
public void ManualTick(float songTime)
{
if (track.timeDurationSubmodule.CheckTimeInDuration(songTime))
{
trackPositioner.SetPercent(trackTimeSubmoduleMovable.headPercent);
}

View File

@@ -47,12 +47,24 @@ namespace Ichni.RhythmGame
}
#endregion
public override void AfterInitialize()
{
base.AfterInitialize();
TrackManager.instance.RegisterPercentPoint(this);
}
public override void OnDelete()
{
base.OnDelete();
TrackManager.instance.UnregisterPercentPoint(this);
}
#region [] Update & Refresh
public void Update()
public void ManualTick(float songTime)
{
if (trackPercent.animations.Count > 0)
{
trackPercent.UpdateFlexibleFloat(EditorManager.instance.songInformation.songTime);
trackPercent.UpdateFlexibleFloat(songTime);
if (trackPercent.returnType == FlexibleReturnType.MiddleExecuting)
{
float finalValue = trackPercent.value;

View File

@@ -21,7 +21,8 @@ namespace Ichni
private readonly List<CrossTrackPoint> _activeCrossPoints = new List<CrossTrackPoint>(50);
private readonly List<ObjectTracker> _activeObjectTrackers = new List<ObjectTracker>(50);
private readonly List<ParticleTracker> _activeParticleTrackers = new List<ParticleTracker>(50);
// 注意TrackHeadPoint / TrackPercentPoint 在编辑器中无对应的逐帧更新逻辑,暂不加入
private readonly List<TrackHeadPoint> _activeHeadPoints = new List<TrackHeadPoint>(50);
private readonly List<TrackPercentPoint> _activePercentPoints = new List<TrackPercentPoint>(50);
#endregion
#region [] Registration
@@ -48,6 +49,18 @@ namespace Ichni
if (!_activeParticleTrackers.Contains(tracker)) _activeParticleTrackers.Add(tracker);
}
public void UnregisterParticleTracker(ParticleTracker tracker) => _activeParticleTrackers.Remove(tracker);
public void RegisterHeadPoint(TrackHeadPoint point)
{
if (!_activeHeadPoints.Contains(point)) _activeHeadPoints.Add(point);
}
public void UnregisterHeadPoint(TrackHeadPoint point) => _activeHeadPoints.Remove(point);
public void RegisterPercentPoint(TrackPercentPoint point)
{
if (!_activePercentPoints.Contains(point)) _activePercentPoints.Add(point);
}
public void UnregisterPercentPoint(TrackPercentPoint point) => _activePercentPoints.Remove(point);
#endregion
#region [] Manager-Driven Tick
@@ -90,6 +103,22 @@ namespace Ichni
if (!tracker.isActiveAndEnabled) continue;
tracker.ManualTick(songTime);
}
// 5. TrackHeadPoint更新轨道头节点
for (int i = 0; i < _activeHeadPoints.Count; i++)
{
var point = _activeHeadPoints[i];
if (!point.isActiveAndEnabled) continue;
point.ManualTick(songTime);
}
// 6. TrackPercentPoint更新轨道百分比节点
for (int i = 0; i < _activePercentPoints.Count; i++)
{
var point = _activePercentPoints[i];
if (!point.isActiveAndEnabled) continue;
point.ManualTick(songTime);
}
}
#endregion
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5ee3150752ec57b47870b716ba0bf74b
guid: 145755af09107cb40aecf830facf89ef
DefaultImporter:
externalObjects: {}
userData:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 5f99274d8a3ef1b4f8f5f145c1c264e6
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -1 +0,0 @@
ŰuV]ČówŻ»ÔhüµnŁÓĄ}Rµ•tXôŘ­~Ŕa|ęnú­W>+¨•¤Z¨<5A> ˙ÔÓű#*vŁ[˙úZ•ŠÄ.ĚÔű?&®ĹČ‘;.đR—°ŘťrăÔßmŔv…ës=!â]t 7rüxü‰^(óyßĘÚĄmu(ë<>ŐÜ<>Ľýľú4äősá‰Í1sδŁßŕÇ!ă$1媌Ľ<C59A>óČNö„őí8ĽĂ\řĽH¸Nf2<µ'Ň4Ľ;^˘Şöśăýł"‡‹ą.Mł´0¬AĎV±äČ@ĐĹuőµ6YÉ"§

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 522281a720fccd14a89dae708afe9545
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -1 +0,0 @@
гъ ВЬ}ккДnќЪ™щ№1@D?ђЏґ|мнЉцtІ]{аaBЃ

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 230d1ef4a78be7c4ab981f06a602786b
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4d2f8fd23969dca4ab51f19a23e9c42e
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,2 +0,0 @@
…Õå$4¥ù<C2A5>á<EFBFBD>N<EFBFBD>Ê¢ú`y¯Ó rÈŠ|ŠJ¼W ̾7Ÿ iXmÏ]ŸjçTÀôo"Œü5êŠ9I+ú¾JZƒx O½Ž~1l©<07><>ªÈßH<0E>/‹à¼Ô?Õ™®f¿ˆø-Ÿ³´9öMðf<C3B0>FžŸÞUŠÙa”[ñùI<IÓ°
òša³¦˜¬E„[¹¡Ó’ñÄ8,üÑ¥`WÈ+«ÓûK XǪ{RO㙼طÔA“ž[sÅ ¼ÊÿCa<43>]¨<,<E28099>^¤Ð˜ç°;qXíó áþ*Ð+Â

View File

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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 54f76f2e0eea66841b9ad877725438d2
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: f0e331951de095b4ea57137c98f7eb62
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 63b8c1c80834ad0419c96a4b706bd010
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,23 +0,0 @@
{
"ProjectInformation" : {
"__type" : "Ichni.RhythmGame.Beatmap.ProjectInformation_BM,Assembly-CSharp",
"value" : {
"projectName" : "Mr. Weq - Lunar Shade",
"creatorName" : "FE",
"editorVersion" : "0.1.0",
"createTime" : "2026\/1\/15 19:53:06",
"lastSaveTime" : "4\/3\/2026 3:51:48 AM",
"selectedThemeBundleList" : [
"basic","departure_to_multiverse","metropolis_on_orbit","shapes"
],
"tagManager" : {
"tagMatchers" : [
]
},
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"
}
}
}
}

View File

@@ -1,14 +0,0 @@
{
"SongInformation" : {
"__type" : "Ichni.RhythmGame.Beatmap.SongInformation_BM,Assembly-CSharp",
"value" : {
"songName" : "Mr. Weq - Lunar Shade.wav",
"bpm" : 90,
"delay" : 1,
"offset" : 0,
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"
}
}
}
}

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 4fbf3fff9d4e3414a9f4215d80b34cb9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 50839c50085841e4b8c0c6733c02cf08
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 637f5a7bcb429524bbcfdffa0696b0e4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 314b16d7a5ca82c4f888ba4adbeceb2f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 53046437b663e4146ba6afab10f11109
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 563f3a7ee227b5743ae59cd15cd6eae4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6c85348626a6fdc4fac6ac52e4041fbd
guid: 7eeef40f699d308479038f35c5870432
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bb2816cc7ce9a13458c88887eb27eaf6
guid: 41999ded3137be040ac5d68e57401b9a
DefaultImporter:
externalObjects: {}
userData:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bee61c3b0a3fe144c9c7f91a70a61a1f
guid: f06cdf350df11464fac212b7710c6b68
DefaultImporter:
externalObjects: {}
userData:

View File

@@ -2,11 +2,11 @@
"ProjectInformation" : {
"__type" : "Ichni.RhythmGame.Beatmap.ProjectInformation_BM,Assembly-CSharp",
"value" : {
"projectName" : "pof",
"creatorName" : "7",
"projectName" : "Solitudes SP",
"creatorName" : "TRADER",
"editorVersion" : "0.1.0",
"createTime" : "2025\/8\/16 9:40:44",
"lastSaveTime" : "4\/2\/2026 3:39:50 PM",
"createTime" : "2025\/10\/18 20:34:07",
"lastSaveTime" : "4\/4\/2026 2:39:50 PM",
"selectedThemeBundleList" : [
"basic","departure_to_multiverse"
],

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 5e1d91995df63a74a851ef20fe40aafb
guid: 84b0ae29463a2a447b5a9203b138284f
DefaultImporter:
externalObjects: {}
userData:

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e6e993eb6f5c43644b891a6f0ba1be51
guid: c2764a4a4c197a342b33fbf904840dee
DefaultImporter:
externalObjects: {}
userData:

View File

@@ -2,8 +2,8 @@
"SongInformation" : {
"__type" : "Ichni.RhythmGame.Beatmap.SongInformation_BM,Assembly-CSharp",
"value" : {
"songName" : "pof.wav",
"bpm" : 165,
"songName" : "Solitudes.mp3",
"bpm" : 200,
"delay" : 0,
"offset" : 0,
"attachedElementGuid" : {

View File

@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 16fb8f2547cbd854c9b061352f81ed12
guid: f18ce994b0f559c4ab7aaef98809fdaa
DefaultImporter:
externalObjects: {}
userData:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 5229400b82cf31548a8f207430261bb5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -1,13 +0,0 @@
{
"CommandScripts" : {
"__type" : "Ichni.RhythmGame.Beatmap.CommandScripts_BM,Assembly-CSharp",
"value" : {
"commandList" : [
],
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"
}
}
}
}

View File

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

View File

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

View File

@@ -1,23 +0,0 @@
{
"ProjectInformation" : {
"__type" : "Ichni.RhythmGame.Beatmap.ProjectInformation_BM,Assembly-CSharp",
"value" : {
"projectName" : "chaoszone",
"creatorName" : "Mr.frice",
"editorVersion" : "0.1.0",
"createTime" : "2025\/9\/18 0:07:05",
"lastSaveTime" : "4\/2\/2026 7:36:04 AM",
"selectedThemeBundleList" : [
"basic","departure_to_multiverse","metropolis_on_orbit"
],
"tagManager" : {
"tagMatchers" : [
]
},
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"
}
}
}
}

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 73029d7881389514f90880cc857b398d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,14 +0,0 @@
{
"SongInformation" : {
"__type" : "Ichni.RhythmGame.Beatmap.SongInformation_BM,Assembly-CSharp",
"value" : {
"songName" : "DJ_SoraArshi__Chaos_Zone_Bpm200.wav",
"bpm" : 200,
"delay" : 5,
"offset" : 0,
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"
}
}
}
}

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 837de572e4a14394ea320ea9c3f9d291
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 107c05da11917f840a3399bdd4bcc2ef
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 8bbfc9eb45be38946acdaa220fe76d0a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,13 +0,0 @@
{
"CommandScripts" : {
"__type" : "Ichni.RhythmGame.Beatmap.CommandScripts_BM,Assembly-CSharp",
"value" : {
"commandList" : [
],
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"
}
}
}
}

View File

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

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 83d92ab00a108e040ab6ad137d89143f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 4fd661d7889526e4196183637ec7e4b6
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: f4654ba46e8f5144dbae4e2e6db26ca4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 3451d6d90812fb240998a353b422d434
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,13 +0,0 @@
{
"CommandScripts" : {
"__type" : "Ichni.RhythmGame.Beatmap.CommandScripts_BM,Assembly-CSharp",
"value" : {
"commandList" : [
],
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"
}
}
}
}

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 0844cf65fc6387349bfd5a7115d6cf86
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,23 +0,0 @@
{
"ProjectInformation" : {
"__type" : "Ichni.RhythmGame.Beatmap.ProjectInformation_BM,Assembly-CSharp",
"value" : {
"projectName" : "新世纪wow战士",
"creatorName" : "Bipolar",
"editorVersion" : "0.1.0",
"createTime" : "2026\/2\/3 23:04:50",
"lastSaveTime" : "4\/3\/2026 1:08:35 AM",
"selectedThemeBundleList" : [
"basic","departure_to_multiverse"
],
"tagManager" : {
"tagMatchers" : [
]
},
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"
}
}
}
}

View File

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

View File

@@ -1,14 +0,0 @@
{
"SongInformation" : {
"__type" : "Ichni.RhythmGame.Beatmap.SongInformation_BM,Assembly-CSharp",
"value" : {
"songName" : "world for white (lies)(mastered)..mp3",
"bpm" : 184,
"delay" : 0,
"offset" : 0,
"attachedElementGuid" : {
"value" : "00000000-0000-0000-0000-000000000000"
}
}
}
}

View File

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

View File

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

View File

@@ -1,6 +1,6 @@
ManifestFileVersion: 0
UnityVersion: 6000.3.7f1
CRC: 3052627744
CRC: 2843071392
HashAppended: 0
AssetBundleManifest:
AssetBundleInfos:

View File

@@ -1,16 +1,16 @@
ManifestFileVersion: 0
UnityVersion: 6000.3.7f1
CRC: 1144649537
CRC: 3859844782
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 83798e70a7502fee72b88ae5f5ce0a35
Hash: 41d7fd2ca87d88e26dab964c3ddb4236
TypeTreeHash:
serializedVersion: 2
Hash: 67c0bf430a72ecbe3e900b7b983f74b3
Hash: b4c575d0a5d7e1022bee5ac0c2428af4
IncrementalBuildHash:
serializedVersion: 2
Hash: f456205a8e90ad89fd0dcacea34dfda4
Hash: ca3b0d82f45445a7db6c8bbd1cefcb66
HashAppended: 0
ClassTypes:
- Class: 1

View File

@@ -1722,6 +1722,306 @@ MonoBehaviour:
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 57
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -4.745117
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 82
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 57
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -3.1914062
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 88
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 57
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -4.745117
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 72
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 57
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -7.8945312
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 92
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -6.3828125
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 838
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -9.448242
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 852
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -11.001953
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 854
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -9.448242
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 855
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -11.001953
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 948
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -10.498047
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 964
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -10.498047
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 977
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -16.250977
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 979
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -9.532227
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 980
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -11.421875
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 996
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -10.498047
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 1011
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -9.532227
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 1012
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -8.608398
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 1039
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -8.608398
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 1089
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -10.498047
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 17
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
- m_FirstAdjustmentRecord:
m_GlyphIndex: 2020
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: -1.5537109
m_YAdvance: 0
m_SecondAdjustmentRecord:
m_GlyphIndex: 86
m_GlyphValueRecord:
m_XPlacement: 0
m_YPlacement: 0
m_XAdvance: 0
m_YAdvance: 0
m_FeatureLookupFlags: 0
m_MarkToBaseAdjustmentRecords: []
m_MarkToMarkAdjustmentRecords: []
m_ShouldReimportFontFeatures: 0

View File

@@ -4,21 +4,20 @@ using Ichni.Editor;
using Ichni.RhythmGame;
using Ichni.RhythmGame.Beatmap;
using System.Collections.Generic;
using Beatmap;
namespace Ichni.RhythmGame
{
// 以EnvironmentObject为基底支持伪阴影shader参数刷新
public class BasicEnvironmentObject : EnvironmentObject
{
[Header("Pseudo Shadow Settings")]
public Renderer shadowRenderer; // 指向带有伪阴影shader的Renderer
[Header("Pseudo Shadow Settings")] public Renderer shadowRenderer; // 指向带有伪阴影shader的Renderer
[Range(-1, 1)] public float shadowThreshold = 0.2f;
[Range(0, 1)] public float shadowSmoothness = 0.5f;
public bool useWorldLight = false;
public Vector3 fakeLightDir = new Vector3(0.5f, 1, 0.5f);
public override bool haveEmissionColor => true;
public static BasicEnvironmentObject GenerateElement(string elementName, Guid id, List<string> tags,
bool isFirstGenerated, string themeBundleName, string objectName, GameElement parentElement,
bool isStatic,
@@ -34,6 +33,7 @@ namespace Ichni.RhythmGame
basicEnvObj.fakeLightDir = fakeLightDir;
return basicEnvObj;
}
public override void Refresh()
{
base.Refresh();
@@ -64,6 +64,7 @@ namespace Ichni.RhythmGame
var shadowSettings2 = container.GenerateSubcontainer(1);
var w = inspector.GenerateVector3InputField(this, shadowSettings2, "Fake Light Direction", nameof(fakeLightDir));
}
public override void SaveBM()
{
base.SaveBM();
@@ -72,44 +73,46 @@ namespace Ichni.RhythmGame
shadowThreshold, shadowSmoothness, useWorldLight, fakeLightDir);
}
}
}
namespace Beatmap
{
public class BasicEnvironmentObject_BM : EnvironmentObject_BM
namespace Beatmap
{
public float shadowThreshold;
public float shadowSmoothness;
public bool useWorldLight;
public Vector3 fakeLightDir;
public BasicEnvironmentObject_BM() { }
public BasicEnvironmentObject_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM parentElement,
string themeBundleName, string objectName, bool isStatic,
float shadowThreshold, float shadowSmoothness, bool useWorldLight, Vector3 fakeLightDir)
: base(elementName, elementGuid, tags, parentElement, themeBundleName, objectName, isStatic)
public class BasicEnvironmentObject_BM : EnvironmentObject_BM
{
this.shadowThreshold = shadowThreshold;
this.shadowSmoothness = shadowSmoothness;
this.useWorldLight = useWorldLight;
this.fakeLightDir = fakeLightDir;
}
public float shadowThreshold;
public float shadowSmoothness;
public bool useWorldLight;
public Vector3 fakeLightDir;
public override void ExecuteBM()
{
matchedElement = BasicEnvironmentObject.GenerateElement(elementName, elementGuid, tags, false,
themeBundleName, objectName, GetElement(attachedElementGuid), isStatic,
shadowThreshold, shadowSmoothness, useWorldLight, fakeLightDir);
}
public BasicEnvironmentObject_BM()
{
}
public override GameElement DuplicateBM(GameElement parent)
{
return BasicEnvironmentObject.GenerateElement(elementName, Guid.NewGuid(), tags, false,
themeBundleName, objectName, parent, isStatic,
shadowThreshold, shadowSmoothness, useWorldLight, fakeLightDir);
public BasicEnvironmentObject_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM parentElement,
string themeBundleName, string objectName, bool isStatic,
float shadowThreshold, float shadowSmoothness, bool useWorldLight, Vector3 fakeLightDir)
: base(elementName, elementGuid, tags, parentElement, themeBundleName, objectName, isStatic)
{
this.shadowThreshold = shadowThreshold;
this.shadowSmoothness = shadowSmoothness;
this.useWorldLight = useWorldLight;
this.fakeLightDir = fakeLightDir;
}
public override void ExecuteBM()
{
matchedElement = BasicEnvironmentObject.GenerateElement(elementName, elementGuid, tags, false,
themeBundleName, objectName, GetElement(attachedElementGuid), isStatic,
shadowThreshold, shadowSmoothness, useWorldLight, fakeLightDir);
}
public override GameElement DuplicateBM(GameElement parent)
{
return BasicEnvironmentObject.GenerateElement(elementName, Guid.NewGuid(), tags, false,
themeBundleName, objectName, parent, isStatic,
shadowThreshold, shadowSmoothness, useWorldLight, fakeLightDir);
}
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More