LookAt,Offset,Effect Remove
Signed-off-by: TRAfoer <lhf190@outlook.com>
This commit is contained in:
32184
Assets/FR2_Cache.asset
32184
Assets/FR2_Cache.asset
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -32,6 +32,9 @@ namespace Ichni.Editor
|
||||
Scale.GenerateElement("New Scale", Guid.NewGuid(), new List<string>(), true, gameElement,
|
||||
new FlexibleFloat(), new FlexibleFloat(), new FlexibleFloat());
|
||||
}); //缩放
|
||||
var LookAtButton = inspector.GenerateButton(gameElement, animationSubcontainer, "Look At",
|
||||
() => LookAt.GenerateElement("New Look At", Guid.NewGuid(),
|
||||
new List<string>(), true, gameElement, null, new FlexibleBool()));
|
||||
}
|
||||
public static void GenerateForLoading()
|
||||
{
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace Ichni.Editor
|
||||
public void SetTime(string time)
|
||||
{
|
||||
EditorManager.instance.musicPlayer.PauseMusic();
|
||||
EditorManager.instance.musicPlayer.audioSource.time = float.Parse(time);
|
||||
EditorManager.instance.musicPlayer.audioSource.time = Mathf.Clamp(float.Parse(time) - EditorManager.instance.songInformation.offset, 0, EditorManager.instance.songInformation.songLength);
|
||||
EditorManager.instance.songInformation.songTime = float.Parse(time);
|
||||
|
||||
timePointerModule.UpdatePointers();
|
||||
@@ -104,7 +104,7 @@ namespace Ichni.Editor
|
||||
public void SetBeat(string beat)
|
||||
{
|
||||
EditorManager.instance.musicPlayer.PauseMusic();
|
||||
EditorManager.instance.musicPlayer.audioSource.time = float.Parse(beat) * timePerBeat;
|
||||
EditorManager.instance.musicPlayer.audioSource.time = Mathf.Clamp((float.Parse(beat) * timePerBeat) - EditorManager.instance.songInformation.offset, 0, EditorManager.instance.songInformation.songLength);
|
||||
EditorManager.instance.songInformation.songTime = float.Parse(beat) * timePerBeat;
|
||||
|
||||
timePointerModule.UpdatePointers();
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Ichni.RhythmGame
|
||||
/// </summary>
|
||||
public partial class LookAt : AnimationBase
|
||||
{
|
||||
public GameElement targetGameElement;
|
||||
|
||||
public TransformSubmodule targetTransformSubmodule;
|
||||
public GameElement lookAtObject;
|
||||
public FlexibleBool enabling;
|
||||
@@ -33,9 +33,9 @@ namespace Ichni.RhythmGame
|
||||
look.enabling = enabling;
|
||||
look.animationReturnType = FlexibleReturnType.Before;
|
||||
|
||||
look.targetGameElement = lookAtTarget;
|
||||
|
||||
look.targetTransformSubmodule = (animatedObject as IHaveTransformSubmodule).transformSubmodule;
|
||||
|
||||
|
||||
|
||||
//look.timeDurationSubmodule.SetDuration(-999f, 999f); //TODO: 换为(-delay, songLength)
|
||||
|
||||
@@ -49,8 +49,9 @@ namespace Ichni.RhythmGame
|
||||
|
||||
protected override void UpdateAnimation(float songTime)
|
||||
{
|
||||
if (lookAtObject is null) return;
|
||||
enabling.UpdateFlexibleBool(songTime);
|
||||
|
||||
|
||||
if (enabling.value)
|
||||
{
|
||||
animationReturnType = FlexibleReturnType.MiddleExecuting;
|
||||
@@ -58,13 +59,17 @@ namespace Ichni.RhythmGame
|
||||
|
||||
Vector3 eulerAnglesOffset = Quaternion.LookRotation(lookingDirection).eulerAngles;
|
||||
|
||||
targetTransformSubmodule.eulerAnglesOffsetLock = true;
|
||||
targetTransformSubmodule.currentEulerAngles = eulerAnglesOffset;
|
||||
targetTransformSubmodule.eulerAnglesOffset.Add(eulerAnglesOffset);
|
||||
targetTransformSubmodule.eulerAnglesDirtyMark = true;
|
||||
// targetTransformSubmodule.eulerAnglesOffsetLock = true;
|
||||
// targetTransformSubmodule.currentEulerAngles = eulerAnglesOffset;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (animationReturnType != FlexibleReturnType.MiddleInterval) targetTransformSubmodule.eulerAnglesOffset.Add(Vector3.zero);
|
||||
targetTransformSubmodule.eulerAnglesDirtyMark = true;
|
||||
animationReturnType = FlexibleReturnType.MiddleInterval;
|
||||
targetTransformSubmodule.eulerAnglesOffsetLock = false;
|
||||
// targetTransformSubmodule.eulerAnglesOffsetLock = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +78,7 @@ namespace Ichni.RhythmGame
|
||||
matchedBM = new LookAt_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM,
|
||||
enabling.ConvertToBM(), lookAtObject.elementGuid);
|
||||
}
|
||||
|
||||
|
||||
public override void ApplyTimeOffset(float offset)
|
||||
{
|
||||
base.ApplyTimeOffset(offset);
|
||||
@@ -87,35 +92,35 @@ namespace Ichni.RhythmGame
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
Inspector inspectorMain = EditorManager.instance.uiManager.inspector;
|
||||
|
||||
|
||||
var container = inspector.GenerateContainer("Enable Control");
|
||||
var effectSettings = container.GenerateSubcontainer(3);
|
||||
var connectedGameElementInputField = inspector.GenerateInputField(effectSettings, "Game Element Name");
|
||||
var effectSettings = container.GenerateSubcontainer(2);
|
||||
var connectedGameElementInputField = inspector.GenerateInputField(effectSettings, "Try Get Element");
|
||||
var connectGameElementButton = inspector.GenerateButton(this, effectSettings, "Connect Game Element", () =>
|
||||
{
|
||||
GameElement targetElement = EditorManager.instance.beatmapContainer.gameElementList
|
||||
.First(e => e.elementName == connectedGameElementInputField.GetValue<string>());
|
||||
|
||||
|
||||
if (targetElement == null)
|
||||
{
|
||||
LogWindow.Log("Game Element not found.", Color.red);
|
||||
LogWindow.Log("Game Element not found.", Color.yellow);
|
||||
}
|
||||
|
||||
targetGameElement = targetElement;
|
||||
targetTransformSubmodule = (targetElement as IHaveTransformSubmodule).transformSubmodule;
|
||||
|
||||
|
||||
lookAtObject = targetElement;
|
||||
//targetTransformSubmodule = (targetElement as IHaveTransformSubmodule).transformSubmodule;
|
||||
|
||||
inspectorMain.SetInspector(this);
|
||||
});
|
||||
string ShowConnection() => targetGameElement == null ? "No Game Element Connected" : "Connected With: " + targetGameElement.elementName;
|
||||
string ShowConnection() => lookAtObject == null ? "No Game Element Connected" : "Connected With: " + lookAtObject.elementName;
|
||||
var connectHintText = inspector.GenerateHintText(this, effectSettings, ShowConnection);
|
||||
|
||||
|
||||
var enablingButton = inspector.GenerateButton(this, effectSettings, "Enabling", () =>
|
||||
{
|
||||
inspector.GenerateCompositeParameterWindow(this, "Enabling", nameof(enabling)).SetAsFlexibleBool();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
namespace Beatmap
|
||||
{
|
||||
public class LookAt_BM : GameElement_BM
|
||||
@@ -134,16 +139,16 @@ namespace Ichni.RhythmGame
|
||||
this.enabling = enabling;
|
||||
this.lookAtObjectGuid = lookAtObjectGuid;
|
||||
}
|
||||
|
||||
|
||||
public override void ExecuteBM()
|
||||
{
|
||||
matchedElement = LookAt.GenerateElement(elementName, elementGuid, tags, false,
|
||||
GetElement(attachedElementGuid), GetElement(lookAtObjectGuid), enabling.ConvertToGameType());
|
||||
}
|
||||
|
||||
|
||||
public override GameElement DuplicateBM(GameElement parent)
|
||||
{
|
||||
return LookAt.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent,
|
||||
return LookAt.GenerateElement(elementName, Guid.NewGuid(), tags, false, parent,
|
||||
GetElement(lookAtObjectGuid), enabling.ConvertToGameType());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ using Ichni.Editor;
|
||||
using Ichni.RhythmGame.Beatmap;
|
||||
using UnityEngine;
|
||||
using NLayer;
|
||||
using UnityEngine.Events;
|
||||
namespace Ichni.RhythmGame
|
||||
{
|
||||
public class SongInformation : IBaseElement
|
||||
@@ -19,14 +20,15 @@ namespace Ichni.RhythmGame
|
||||
public float songLength;
|
||||
public float songTime;
|
||||
public float songBeat => songTime / 60 * bpm;
|
||||
|
||||
public float offset = 0f;//设定偏移
|
||||
public BaseElement_BM matchedBM { get; set; }
|
||||
|
||||
public SongInformation(string songName, float bpm, float delay)
|
||||
public SongInformation(string songName, float bpm, float delay, float offset)
|
||||
{
|
||||
this.songName = songName;
|
||||
this.bpm = bpm;
|
||||
this.delay = delay;
|
||||
this.offset = offset;
|
||||
songLocation = Path.Combine(EditorManager.instance.projectInformation.projectPath, songName);
|
||||
if (!ES3.FileExists(songLocation))
|
||||
{
|
||||
@@ -45,6 +47,11 @@ namespace Ichni.RhythmGame
|
||||
throw new Exception("Failed to load audio: " + songLocation);
|
||||
}
|
||||
songLength = song.length;
|
||||
EditorManager.instance.uiManager.mainPage.toolBar.songInfoButton.onClick.AddListener(() =>
|
||||
{
|
||||
EditorManager.instance.uiManager.inspector.ClearInspector();
|
||||
SetUpInspector();
|
||||
});
|
||||
}
|
||||
private AudioClip LoadMP3(string filepath)//猜猜我从哪里偷的
|
||||
{
|
||||
@@ -64,13 +71,30 @@ namespace Ichni.RhythmGame
|
||||
return ac;
|
||||
}
|
||||
|
||||
|
||||
public void SaveBM()
|
||||
{
|
||||
matchedBM = new SongInformation_BM(songName, bpm, delay);
|
||||
matchedBM = new SongInformation_BM(songName, bpm, delay, offset);
|
||||
}
|
||||
|
||||
public void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var a = inspector.GenerateContainer("Song Info");
|
||||
var subsetting = a.GenerateSubcontainer(3);
|
||||
var c = inspector.GenerateInputField(this, subsetting, "Offset", nameof(offset));
|
||||
|
||||
var o = inspector.GenerateInputField(this, subsetting, "Delay", nameof(delay));
|
||||
|
||||
var p = inspector.GenerateInputField(this, subsetting, "BPM", nameof(bpm));
|
||||
UnityAction action = (() =>
|
||||
{
|
||||
Debug.Log($"Song Information Updated: {songName}, BPM: {bpm}, Delay: {delay}, Offset: {offset}");
|
||||
EditorManager.instance.uiManager.timeline.timePointerModule.Initialize(delay, bpm);
|
||||
});
|
||||
p.AddListenerFunction(action);
|
||||
o.AddListenerFunction(action);
|
||||
c.AddListenerFunction(action);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -82,22 +106,23 @@ namespace Ichni.RhythmGame
|
||||
public string songName;
|
||||
public float bpm;
|
||||
public float delay;
|
||||
|
||||
public float offset;
|
||||
public SongInformation_BM()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public SongInformation_BM(string songName, float bpm, float delay)
|
||||
public SongInformation_BM(string songName, float bpm, float delay, float offset)
|
||||
{
|
||||
this.songName = songName;
|
||||
this.bpm = bpm;
|
||||
this.delay = delay;
|
||||
this.offset = offset;
|
||||
}
|
||||
|
||||
public override void ExecuteBM()
|
||||
{
|
||||
EditorManager.instance.songInformation = new SongInformation(songName, bpm, delay);
|
||||
EditorManager.instance.songInformation = new SongInformation(songName, bpm, delay, offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,6 +77,7 @@ namespace Ichni.RhythmGame
|
||||
var extensionButton = inspector.GenerateButton(this, generateAnimation, "Extension",
|
||||
() => GameCameraExtension.GenerateElement("New Extension", Guid.NewGuid(),
|
||||
new List<string>(), true, this, 1000f));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -90,7 +90,10 @@ namespace Ichni.RhythmGame
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new CameraOffsetEffect(duration, offsetValue, offsetCurve);
|
||||
return new CameraOffsetEffect(duration, offsetValue, offsetCurve)
|
||||
{
|
||||
attachedGameElement = attachedGameElement
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,7 +85,10 @@ namespace Ichni.RhythmGame
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new CameraShakeEffect(duration, frequency, amplitudeX, amplitudeY, amplitudeZ);
|
||||
return new CameraShakeEffect(duration, frequency, amplitudeX, amplitudeY, amplitudeZ)
|
||||
{
|
||||
attachedGameElement = attachedGameElement
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,7 +104,10 @@ namespace Ichni.RhythmGame
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new CameraTiltEffect(duration, tiltValue, tiltCurve);
|
||||
return new CameraTiltEffect(duration, tiltValue, tiltCurve)
|
||||
{
|
||||
attachedGameElement = attachedGameElement
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace Ichni.RhythmGame
|
||||
public override void SetUpInspector()
|
||||
{
|
||||
IHaveInspection inspector = EditorManager.instance.uiManager.inspector;
|
||||
var container = inspector.GenerateContainer("Camera Shake");
|
||||
var container = inspector.GenerateContainer("Camera Zoom");
|
||||
var effectSettings = container.GenerateSubcontainer(3);
|
||||
var zoomDurationInputField = inspector.GenerateInputField(this, effectSettings, "Zoom Duration", nameof(duration));
|
||||
var relativeZoomInputField = inspector.GenerateInputField(this, effectSettings, "Relative Zoom", nameof(relativeZoom));
|
||||
@@ -77,7 +77,10 @@ namespace Ichni.RhythmGame
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new CameraZoomEffect(duration, relativeZoom, zoomCurve);
|
||||
return new CameraZoomEffect(duration, relativeZoom, zoomCurve)
|
||||
{
|
||||
attachedGameElement = attachedGameElement
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,7 +77,10 @@ namespace Ichni.RhythmGame
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new ChromaticAberrationEffect(duration, peak, intensityCurve);
|
||||
return new ChromaticAberrationEffect(duration, peak, intensityCurve)
|
||||
{
|
||||
attachedGameElement = attachedGameElement
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,7 +121,10 @@ namespace Ichni.RhythmGame
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new EnableControlEffect(GameElement_BM.GetElement(connectedGameElementGuid), connectedVariableName,
|
||||
enableValue, useExpression, expression);
|
||||
enableValue, useExpression, expression)
|
||||
{
|
||||
attachedGameElement = attachedGameElement
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,10 @@ namespace Ichni.RhythmGame
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new HighPassFilterEffect(duration, peak, intensityCurve);
|
||||
return new HighPassFilterEffect(duration, peak, intensityCurve)
|
||||
{
|
||||
attachedGameElement = attachedGameElement
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,7 +78,10 @@ namespace Ichni.RhythmGame
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new LowPassFilterEffect(duration, bottom, intensityCurve);
|
||||
return new LowPassFilterEffect(duration, bottom, intensityCurve)
|
||||
{
|
||||
attachedGameElement = attachedGameElement
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,7 +82,10 @@ namespace Ichni.RhythmGame
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new SetIntegerEffect(targetVariableName, targetValue, isRandom, minValue, maxValue);
|
||||
return new SetIntegerEffect(targetVariableName, targetValue, isRandom, minValue, maxValue)
|
||||
{
|
||||
attachedGameElement = attachedGameElement
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,10 @@ namespace Ichni.RhythmGame
|
||||
|
||||
public override EffectBase ConvertToGameType(GameElement attachedGameElement)
|
||||
{
|
||||
return new VignetteEffect(duration, peak, smoothness, color, intensityCurve);
|
||||
return new VignetteEffect(duration, peak, smoothness, color, intensityCurve)
|
||||
{
|
||||
attachedGameElement = attachedGameElement
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,9 +138,10 @@ namespace Ichni.RhythmGame
|
||||
}
|
||||
}
|
||||
//Editor
|
||||
|
||||
noteVisual.GetComponent<Collider>().enabled = !isFirstJudged;
|
||||
|
||||
if (noteVisual != null)
|
||||
{
|
||||
noteVisual.GetComponent<Collider>().enabled = !isFirstJudged;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace Ichni.Editor
|
||||
|
||||
if (isPlaying)
|
||||
{
|
||||
EditorManager.instance.songInformation.songTime = EditorManager.instance.musicPlayer.audioSource.time;
|
||||
EditorManager.instance.songInformation.songTime = EditorManager.instance.musicPlayer.audioSource.time - EditorManager.instance.songInformation.offset;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace Ichni.Editor
|
||||
|
||||
isPlaying = !isPlaying;
|
||||
|
||||
EditorManager.instance.songInformation.songTime = audioSource.time;
|
||||
EditorManager.instance.songInformation.songTime = audioSource.time - EditorManager.instance.songInformation.offset;
|
||||
if (isPlaying)
|
||||
{
|
||||
Trail.FreezeAllTrails(!isPlaying);
|
||||
@@ -42,17 +42,17 @@ namespace Ichni.Editor
|
||||
}
|
||||
public IEnumerator PlayBackMusic()
|
||||
{
|
||||
float startt = audioSource.time;
|
||||
float startt = audioSource.time - EditorManager.instance.songInformation.offset;
|
||||
PlayMusic();
|
||||
yield return new WaitUntil(() => Keyboard.current.rightAltKey.wasReleasedThisFrame);
|
||||
audioSource.time = startt;
|
||||
audioSource.time = startt + EditorManager.instance.songInformation.offset;
|
||||
PauseMusic();
|
||||
|
||||
}
|
||||
public void PauseMusic()
|
||||
{
|
||||
isPlaying = false;
|
||||
EditorManager.instance.songInformation.songTime = audioSource.time;
|
||||
EditorManager.instance.songInformation.songTime = audioSource.time - EditorManager.instance.songInformation.offset;
|
||||
audioSource.Pause();
|
||||
Trail.FreezeAllTrails(!isPlaying);
|
||||
}
|
||||
|
||||
@@ -20,14 +20,14 @@ namespace Ichni.StartMenu
|
||||
public TMP_InputField projectNameInputField, creatorNameInputField, bpmInputField, songLocationInputField, delayInputField;
|
||||
public Button selectSongButton, autoFillSongPathButton;
|
||||
public Button createEmptyProjectButton;
|
||||
|
||||
|
||||
private OpenFileName songFile;
|
||||
public string songName;
|
||||
|
||||
public ThemeBundleSelector themeBundleSelector;
|
||||
|
||||
public AsyncOperation loadEditor;
|
||||
|
||||
|
||||
private void Start()
|
||||
{
|
||||
loadEditor = SceneManager.LoadSceneAsync("EditorScene");
|
||||
@@ -51,7 +51,7 @@ namespace Ichni.StartMenu
|
||||
{
|
||||
Directory.CreateDirectory(projectPath);
|
||||
}
|
||||
|
||||
|
||||
InformationTransistor.instance.projectInfo_BM = new ProjectInformation_BM(
|
||||
projectNameInputField.text,
|
||||
creatorNameInputField.text,
|
||||
@@ -59,17 +59,19 @@ namespace Ichni.StartMenu
|
||||
DateTime.Now.ToString(CultureInfo.CurrentCulture),
|
||||
DateTime.Now.ToString(CultureInfo.CurrentCulture),
|
||||
themeBundleSelector.GetSelectedThemeBundleList());
|
||||
|
||||
File.Copy(songLocationInputField.text,
|
||||
|
||||
File.Copy(songLocationInputField.text,
|
||||
Application.streamingAssetsPath + "/Projects/" +
|
||||
projectNameInputField.text + "/" + songName, true);
|
||||
|
||||
|
||||
InformationTransistor.instance.songInfo_BM = new SongInformation_BM(
|
||||
songName, float.Parse(bpmInputField.text),
|
||||
float.Parse(delayInputField.text));
|
||||
|
||||
float.Parse(delayInputField.text),
|
||||
0
|
||||
);
|
||||
|
||||
InformationTransistor.instance.isLoadedProject = false;
|
||||
|
||||
|
||||
//Load ThemeBundles, then go to EditorScene
|
||||
ThemeBundleManager.instance.LoadThemeBundles(InformationTransistor.instance.projectInfo_BM.selectedThemeBundleList);
|
||||
ThemeBundleManager.instance.waitingBundleAmount
|
||||
@@ -89,7 +91,7 @@ namespace Ichni.StartMenu
|
||||
{
|
||||
fadeIn = DOTween.Sequence();
|
||||
fadeOut = DOTween.Sequence();
|
||||
|
||||
|
||||
fadeIn.Join(canvasGroup.DOFade(1f, 0.5f))
|
||||
.SetEase(Ease.InOutQuad)
|
||||
.SetAutoKill(false)
|
||||
@@ -121,7 +123,7 @@ namespace Ichni.StartMenu
|
||||
string forward = Application.streamingAssetsPath + "/Songs/";
|
||||
songName = str.Replace(forward, "");
|
||||
});
|
||||
|
||||
|
||||
selectSongButton.onClick.AddListener(SelectSong);
|
||||
autoFillSongPathButton.onClick.AddListener(AutoFillSongPath);
|
||||
createEmptyProjectButton.onClick.AddListener(CreateEmptyProject);
|
||||
@@ -132,7 +134,7 @@ namespace Ichni.StartMenu
|
||||
string path = Application.streamingAssetsPath + "/Songs/";
|
||||
songLocationInputField.text = path;
|
||||
}
|
||||
|
||||
|
||||
private void SelectSong()
|
||||
{
|
||||
songFile = new OpenFileName();
|
||||
@@ -153,7 +155,7 @@ namespace Ichni.StartMenu
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
|
||||
public class OpenFileName
|
||||
{
|
||||
@@ -190,7 +192,7 @@ namespace Ichni.StartMenu
|
||||
{
|
||||
return GetOpenFileName(ofn);
|
||||
}
|
||||
|
||||
|
||||
[DllImport("Comdlg32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
|
||||
public static extern bool GetSaveFileName([In, Out] OpenFileName ofn);
|
||||
public static bool GetSFN([In, Out] OpenFileName ofn)
|
||||
|
||||
@@ -5266,7 +5266,7 @@
|
||||
"isHighlighted" : false,
|
||||
"themeBundleName" : "departure_to_multiverse",
|
||||
"objectName" : "DTM_NoteVisualTap",
|
||||
"elementName" : "New Note Visual",
|
||||
"elementName" : "12332434532456",
|
||||
"tags" : [
|
||||
|
||||
],
|
||||
@@ -37308,7 +37308,7 @@
|
||||
"isStatic" : false,
|
||||
"themeBundleName" : "departure_to_multiverse",
|
||||
"objectName" : "DTM_Trail",
|
||||
"elementName" : "New Environment Object",
|
||||
"elementName" : "dgfhjfyuk",
|
||||
"tags" : [
|
||||
|
||||
],
|
||||
@@ -60875,6 +60875,12 @@
|
||||
"startTime" : 28.8,
|
||||
"endTime" : 32,
|
||||
"animationCurveType" : 0
|
||||
},{
|
||||
"startValue" : 0,
|
||||
"endValue" : 1,
|
||||
"startTime" : 28.8,
|
||||
"endTime" : 32,
|
||||
"animationCurveType" : 0
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -206188,6 +206194,40 @@
|
||||
"attachedElementGuid" : {
|
||||
"value" : "52f103e0-61bc-4881-b563-801354c7cfa1"
|
||||
}
|
||||
},{
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.LookAt_BM,Assembly-CSharp",
|
||||
"enabling" : {
|
||||
"animatedBoolList" : [
|
||||
{
|
||||
"value" : false,
|
||||
"time" : 0
|
||||
},{
|
||||
"value" : true,
|
||||
"time" : 19.2
|
||||
}
|
||||
]
|
||||
},
|
||||
"lookAtObjectGuid" : {
|
||||
"value" : "8cdc8ac8-8afa-41f0-b08f-71b810d4a0bd"
|
||||
},
|
||||
"elementName" : "New Look At",
|
||||
"tags" : [
|
||||
|
||||
],
|
||||
"elementGuid" : {
|
||||
"value" : "b0bd9ca3-4722-412f-b710-f70d0070c2cb"
|
||||
},
|
||||
"attachedElementGuid" : {
|
||||
"value" : "fd3aa9d5-da52-4a3e-94ce-41478f20492b"
|
||||
}
|
||||
},{
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
|
||||
"isOverridingDuration" : false,
|
||||
"startTime" : -32767,
|
||||
"endTime" : 32767,
|
||||
"attachedElementGuid" : {
|
||||
"value" : "b0bd9ca3-4722-412f-b710-f70d0070c2cb"
|
||||
}
|
||||
}
|
||||
],
|
||||
"attachedElementGuid" : {
|
||||
|
||||
@@ -5266,7 +5266,7 @@
|
||||
"isHighlighted" : false,
|
||||
"themeBundleName" : "departure_to_multiverse",
|
||||
"objectName" : "DTM_NoteVisualTap",
|
||||
"elementName" : "New Note Visual",
|
||||
"elementName" : "12332434532456",
|
||||
"tags" : [
|
||||
|
||||
],
|
||||
@@ -37308,7 +37308,7 @@
|
||||
"isStatic" : false,
|
||||
"themeBundleName" : "departure_to_multiverse",
|
||||
"objectName" : "DTM_Trail",
|
||||
"elementName" : "New Environment Object",
|
||||
"elementName" : "dgfhjfyuk",
|
||||
"tags" : [
|
||||
|
||||
],
|
||||
@@ -60869,6 +60869,12 @@
|
||||
"startTime" : 28.8,
|
||||
"endTime" : 32,
|
||||
"animationCurveType" : 0
|
||||
},{
|
||||
"startValue" : 0,
|
||||
"endValue" : 1,
|
||||
"startTime" : 28.8,
|
||||
"endTime" : 32,
|
||||
"animationCurveType" : 0
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -206182,6 +206188,40 @@
|
||||
"attachedElementGuid" : {
|
||||
"value" : "52f103e0-61bc-4881-b563-801354c7cfa1"
|
||||
}
|
||||
},{
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.LookAt_BM,Assembly-CSharp",
|
||||
"enabling" : {
|
||||
"animatedBoolList" : [
|
||||
{
|
||||
"value" : false,
|
||||
"time" : 0
|
||||
},{
|
||||
"value" : true,
|
||||
"time" : 19.2
|
||||
}
|
||||
]
|
||||
},
|
||||
"lookAtObjectGuid" : {
|
||||
"value" : "8cdc8ac8-8afa-41f0-b08f-71b810d4a0bd"
|
||||
},
|
||||
"elementName" : "New Look At",
|
||||
"tags" : [
|
||||
|
||||
],
|
||||
"elementGuid" : {
|
||||
"value" : "b0bd9ca3-4722-412f-b710-f70d0070c2cb"
|
||||
},
|
||||
"attachedElementGuid" : {
|
||||
"value" : "fd3aa9d5-da52-4a3e-94ce-41478f20492b"
|
||||
}
|
||||
},{
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.TimeDurationSubmodule_BM,Assembly-CSharp",
|
||||
"isOverridingDuration" : false,
|
||||
"startTime" : -32767,
|
||||
"endTime" : 32767,
|
||||
"attachedElementGuid" : {
|
||||
"value" : "b0bd9ca3-4722-412f-b710-f70d0070c2cb"
|
||||
}
|
||||
}
|
||||
],
|
||||
"attachedElementGuid" : {
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
"songName" : "DJ_SoraArshi _Chaos Zone_Bpm200.wav",
|
||||
"bpm" : 200,
|
||||
"delay" : 0,
|
||||
"offset" : -0.05,
|
||||
"attachedElementGuid" : {
|
||||
"value" : "00000000-0000-0000-0000-000000000000"
|
||||
}
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6fca336ee9c4ef747ae83244f0ec242b
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 62627515737b6184f8cae4763a313ad1
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"CommandScripts" : {
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.CommandScripts_BM,Assembly-CSharp",
|
||||
"value" : {
|
||||
"commandList" : [
|
||||
|
||||
],
|
||||
"attachedElementGuid" : {
|
||||
"value" : "00000000-0000-0000-0000-000000000000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 717e1ba1097c00047b775ca7f1a656de
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"ProjectInformation" : {
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.ProjectInformation_BM,Assembly-CSharp",
|
||||
"value" : {
|
||||
"projectName" : "Terminal",
|
||||
"creatorName" : "sls",
|
||||
"editorVersion" : "0.1.0",
|
||||
"createTime" : "6\/21\/2025 8:58:34 AM",
|
||||
"lastSaveTime" : "6\/21\/2025 8:58:34 AM",
|
||||
"selectedThemeBundleList" : [
|
||||
"basic","departure_to_multiverse"
|
||||
],
|
||||
"attachedElementGuid" : {
|
||||
"value" : "00000000-0000-0000-0000-000000000000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e37745cb07d6cb44e977606c8d153dfd
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"SongInformation" : {
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.SongInformation_BM,Assembly-CSharp",
|
||||
"value" : {
|
||||
"songName" : "Terminal.wav",
|
||||
"bpm" : 120,
|
||||
"delay" : 0,
|
||||
"attachedElementGuid" : {
|
||||
"value" : "00000000-0000-0000-0000-000000000000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e170683b857e64b4b9f71d0ba87cc6e2
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bf5ff2b0da555164f9f19613296e7a39
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 139567ae4d221644db4eef4c90226cf3
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"Beatmap" : {
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.BeatmapContainer_BM,Assembly-CSharp",
|
||||
"value" : {
|
||||
"elementList" : [
|
||||
|
||||
],
|
||||
"attachedElementGuid" : {
|
||||
"value" : "00000000-0000-0000-0000-000000000000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 52d1ea80c2d84934dba98400eab59d57
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"CommandScripts" : {
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.CommandScripts_BM,Assembly-CSharp",
|
||||
"value" : {
|
||||
"commandList" : [
|
||||
|
||||
],
|
||||
"attachedElementGuid" : {
|
||||
"value" : "00000000-0000-0000-0000-000000000000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8ed054260f23d5e4388f342acd05235f
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"ProjectInformation" : {
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.ProjectInformation_BM,Assembly-CSharp",
|
||||
"value" : {
|
||||
"projectName" : "World of white lies",
|
||||
"creatorName" : "Bipolar",
|
||||
"editorVersion" : "0.1.0",
|
||||
"createTime" : "7\/7\/2025 6:24:52 AM",
|
||||
"lastSaveTime" : "7\/7\/2025 6:24:52 AM",
|
||||
"selectedThemeBundleList" : [
|
||||
"basic","departure_to_multiverse"
|
||||
],
|
||||
"attachedElementGuid" : {
|
||||
"value" : "00000000-0000-0000-0000-000000000000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a67e9a3e83ead5048afadbd58f7be93d
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"SongInformation" : {
|
||||
"__type" : "Ichni.RhythmGame.Beatmap.SongInformation_BM,Assembly-CSharp",
|
||||
"value" : {
|
||||
"songName" : "world for white (lies)(mastered)..mp3",
|
||||
"bpm" : 60,
|
||||
"delay" : 0,
|
||||
"attachedElementGuid" : {
|
||||
"value" : "00000000-0000-0000-0000-000000000000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 16b956f5cadafe34b9c07475c99c3bcd
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -1,7 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4e6909edcabdfc44e8949d3020b20eab
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user