Documentations of TECHMANIA projects, hosted in a repo so they can be localized.
TECHMANIA version: 2.3
Unity version: 2022.3.62f2 (was 2022.3.36f1 before the security patch on 10/3/2025)
ThemeApi.GameSetup.onNoteResolved callback that provides the time difference on the note.SpriteSheet.flipWhenScanningLeft for allowing some skin elements to be horizontally flipped on right-to-left scans.ComboSkin.animationCurvesSkinAnimationCurve and SkinAnimationKeyframeStatisticsThemeApi.Techmania.stats to retrieve the current Statistics instancePaths.GetStatisticsFilePathEditorOptions.autoSaveThemeApi.IO.ReloadAllSkinsTECHMANIA version: 2.2
Unity version: 2022.3.30f1
This update is focused on setlists.
Setlist, Setlist.PatternReference and Setlist.HiddenPattern.SetlistScoreKeeper, allowing you to query the current score in a setlist using an interface similar to ScoreKeeper.PathsOptionsRecords (also added class SetlistRecord)PatternThemeApi.EditorInterfaceThemeApi.GameSetupThemeApi.GameStateThemeApi.IOGlobalResource
GlobalResource.SetlistInFolder.TrackSubfolder and TrackWithError are renamed to Subfolder and ResourceWithError to be reusable by setlists. This renaming does not affect Lua code.GetSubfolder(string parent) is deprecated as it’s ambiguous between tracks and setlists. It will still work on tracks, after printing a warning to the console. Please call GetTrackSubfolders(string parent) or GetSetlistSubfolders(string parent) instead.VisualElementWrap
PointerMoveEventContainsPointInScreenSpace that takes a Vector3PreparedSetlist and PartialComplete to the TECHMANIA state machine.LegacyRulesetOverride is renamed to WindowsAndDeltas so it can be reused in rulesets.TECHMANIA version: 2.1
Unity version: 2022.3.16f1
Switched to FMOD as the audio backend. All usages of UnityEngine.AudioClip and UnityEngine.AudioSource are replaced with FmodSoundWrap and FmodChannelWrap, new classes that wrap around FMOD classes. The wrapper classes are designed to imitate the Unity classes as closely as possible, so older code on API version 1 still mostly work.
AudioSourceManager is renamed to AudioManager.AudioSourceManager.IsAnySourcePlaying() –> AudioManager.IsAnySoundPlaying()), though the old names remain for backwards compatibility.Options.numAudioBuffers and Options.useAsio, new audio options offered by FMOD.Options.ApplyAudioBufferSize() now has no effect other than printing a warning to Unity console.AudioSource and FmodChannelWrap that we can’t emulate is that, once the sound stops, AudioSource remains valid, but FmodChannelWrap becomes invalid, and all operations on it will print an ERR_INVALID_HANDLE warning to the console. If migrating from version 1, please watch out for these warnings and adjust your code accordingly.Paths.EscapeBackslash, which now does nothing. Added Paths.ForceEscapeBackslash in case escaping is still necessary. EscapeBackslash was added in an age when visual elements parsed escape sequences by default; that is no longer the case.Status.code and ThemeApi.Techmania.GetPlatform() that return an enum instead of string.ThemeApi.IO that release assets (textures, sounds, videos) loaded from files. Themes should use these methods to control their memory footprint.ThemeApi.Techmania.InEditor() that returns whether TECHMANIA is running inside the Unity editor.ThemeApi.Techmania.WrapVisualElement(VisualElement) that creates a VisualElementWrap object.ThemeApi.VideoElement.SetVideoEndCallback that allows you to receive a callback when a video finishes playing.TECHMANIA version: 2.0
Unity version: 2022.3.2f1
Initial version.