1.修复多处错误2.SplineNode依然存在设置不生效的错误

This commit is contained in:
2025-10-05 20:18:48 +08:00
parent c108b2b844
commit 8f8dfcbb64
89 changed files with 104 additions and 1310 deletions

View File

@@ -4,7 +4,7 @@
# 项目
项目的位置全部位于StreamingAssets文件夹内
项目的位置全部位于Unity持久化文件夹的Project文件夹内, 如C:\Users\ASUS\AppData\LocalLow\LiuBai\Murmur-Resonance-Editor\Projects
## 打开
@@ -25,7 +25,9 @@ find中包含的内容是被尝试读取但不存在的内容值为读取时
# 初次运行
StreamingAssets中包含两个特殊的文件夹AssetBundle与Helper与辅助编辑的CMake项目结构
在Unity持久化文件夹中会生成Helper文件夹, 包含可调用函数的注释
下载需要的AssetBundle到StreamingAssets/AssetBundle
## AssetBundle
@@ -37,17 +39,13 @@ StreamingAssets中包含两个特殊的文件夹AssetBundle与Helper与辅
## CMake辅助编辑
脚本风格默认采用c风格因此利用CMake与.h文件关联应用可以快速编写物体脚本
脚本风格默认采用c++风格因此利用CMake与.h文件关联应用可以快速编写物体脚本
如在Unity持久化文件夹, 添加以下文本到CMakeLists.txt, 使用vs打开即可
```
set(CMAKE_BINARY_DIR TEMP_PATH)
project(ProjectHelper)
include_directories(Helper)
add_executable(ProjectHelper ProjectHelper.cpp)
```
如VS更改其中的ProjectHelper.cpp所包含的项目root.h以获取编辑器的智能引擎的支持
# 快捷键
## 音频播放控制快捷键
@@ -119,32 +117,50 @@ add_executable(ProjectHelper ProjectHelper.cpp)
每个文件包含可调用的类成员函数include的头文件是父类可通过其查看其他可调用的父类成员函数
## RootObject
## ScriptableObject
每个项目都从RootObject开始唯一且不可再生成
## TimelineScriptObject
许多类都从TimelineScriptObject派生此处额外讲解其中的关键函数
之后便可以编写如
所有类都从ScriptableObject派生了解其中的关键函数
之后便可以编写灵活的脚本以实现行为
```cpp
//SkyUpdatement
Add(Timeline-Sky, sky)
// 在任一ScriptableObject中设置Var变量为0,
// 此后在该脚本以及该处之后加载的子脚本都会含有Var=0的上下文
SetContext("Var", 0);
// 如在DDT中, 使用花括号包裹的正整型三元组表示时间点,
// 形式为: {该小节划分的节拍数, 小节数, 位于该小节的节拍数}
// 如在BPM=60的情况下, 下例将会被翻译为(4+1/8)*1s=4.125s
Add({8,4,1});
```
的脚本代码而Timeline-Sky的值可由全体脚本动态指定
通过脚本实现模板对象
### ResetTimeline
例如在
- root.cpp
- root
- TemplateLine.h(加载类型为SplineCore的脚本对象)
- TemplateLine
- ...(TemplateLine的子脚本)
- A-Anchor.h(加载类型为Anchor的脚本对象)
- B-Anchor.h(加载类型为Anchor的脚本对象)
重置时间线,不存在时生成,通过时间线变量来灵活获取浮点型的变量,
如分别生成1/4分音单位的时间线与1/8分音的时间线
并配合SetTimePoint与NextTimePoint获取第几个音符的时间
```cpp
// A-Anchor.h
// 将自身在父脚本对象的坐标系中设置为x=-2的偏移
SetLocalPosition(-2,0,0);
// 设置上下文变量
...
// 加载
LoadSubScript(SplineCore, "TemplateLine.h")
```
### NextTimePoint
```cpp
// B-Anchor.h
// 将自身在父脚本对象的坐标系中设置为x=2的偏移
SetLocalPosition(2,0,0);
// 设置上下文变量
...
// 也加载
LoadSubScript(SplineCore, "TemplateLine.h")
```
每次都将时间线变量向前推进times个单位总计会增加times*delta
### SetTimePoint
重新赋值时间线变量,该函数不能生成时间线
自此实现了以脚本TemplateLine.h为根的预制体