Files
Convention-Unity-Demo/Assets/StreamingAssets/README/Tutorial/README.md

150 lines
4.5 KiB
Markdown
Raw Normal View History

2025-09-25 19:04:05 +08:00
**教程**
---
# 项目
项目的位置全部位于StreamingAssets文件夹内
## 打开
通过Tools中的Open打开已存在的项目在打开之前总是会先关闭当前打开的项目
## 新建
通过Tools中的Create新建项目在新建之前总是会先关闭当前打开的项目
## 配置
项目文件夹内的config.json文件即为配置文件其中包含property与find两个项目
property中包含的内容是已配置的内容将会被读取并使用
find中包含的内容是被尝试读取但不存在的内容值为读取时设定的默认值
一些重要的键值如song需要在新建项目后配置
**重要:在运行时可能会触发配置文件的保存,被保存的配置与你希望的可能并不一致,所以不要尝试在项目运行时编辑该项目的配置文件**
# 初次运行
StreamingAssets中包含两个特殊的文件夹AssetBundle与Helper与辅助编辑的CMake项目结构
## AssetBundle
内置了主题包,包括但不限于环境物体与材质
## Helper
其中包含了物体可使用的函数以宏的形式展现可以删除Helper文件夹来重新生成最新的Helper内容
## CMake辅助编辑
脚本风格默认采用c风格因此利用CMake与.h文件关联应用可以快速编写物体脚本
```
set(CMAKE_BINARY_DIR TEMP_PATH)
project(ProjectHelper)
include_directories(Helper)
add_executable(ProjectHelper ProjectHelper.cpp)
```
如VS更改其中的ProjectHelper.cpp所包含的项目root.h以获取编辑器的智能引擎的支持
# 快捷键
## 音频播放控制快捷键
几乎所有快捷键都需要按住LeftCtrl下文中无特殊说明将会忽略该按键
组合快捷键中只有最后一个键被按下时才会触发前置的键只需要处于按下的状态包括隐藏的LeftCtrl
### 基础播放控制
- **P**
- 功能:播放/暂停音频
- 说明:如果音频正在播放则暂停,如果已暂停则开始播放
- **S**
- 功能:停止音频播放
- 说明:停止当前播放的音频并重置播放位置
### 时间轴控制
- **鼠标滚轮**
- 功能:滚动控制播放时间
- 说明:向上滚动前进时间,向下滚动后退时间,单位为一秒
- 特性:滚轮操作时会自动暂停播放
## 项目管理快捷键
### 项目刷新与重载
- **R**
- 功能:刷新当前项目
- 说明:重新加载当前打开的项目,用于应用代码更改
- 注意:只有在项目已加载且未处于刷新状态时才能使用
### 项目关闭
- **Tab**
- 功能:关闭当前项目
- 说明:关闭当前打开的项目并返回项目选择界面
## 相机控制快捷键
### 相机重置
- **LeftShift**
- 功能:重置相机旋转为水平状态
- 说明:将场景相机的旋转重置为水平状态
- **LeftShift + Z**
- 功能:完全重置相机
- 说明:将场景相机的位置和旋转都重置为初始状态
## 界面提示
编辑器界面中的某些按钮会显示对应的快捷键提示,例如:
- "Play(P)" - 播放按钮,对应 P 键
- "Pause(P)" - 暂停按钮,对应 P 键
- "Stop(S)" - 停止按钮,对应 S 键
- "Reset Rotation(LeftShift)" - 重置旋转对应左Shift键
- "Reset(LeftShift+Z)" - 完全重置对应左Shift+Z组合键
这些提示可以帮助您快速记忆和使用相应的快捷键功能。
# 物体脚本
项目中物体的行为被物体脚本(Script)控制,编辑脚本会更改其行为,
在项目运行时编辑,并通过更新热重载项目查看实时效果,
**重要:脚本的执行总是顺序的,先后顺序会影响实际行为**
不同的物体拥有的脚本函数请在Helper中查看
## CPP风格Helper
每个文件包含可调用的类成员函数include的头文件是父类可通过其查看其他可调用的父类成员函数
## RootObject
每个项目都从RootObject开始唯一且不可再生成
## TimelineScriptObject
许多类都从TimelineScriptObject派生此处额外讲解其中的关键函数
之后便可以编写如
```cpp
//SkyUpdatement
Add(Timeline-Sky, sky)
```
的脚本代码而Timeline-Sky的值可由全体脚本动态指定
### ResetTimeline
重置时间线,不存在时生成,通过时间线变量来灵活获取浮点型的变量,
如分别生成1/4分音单位的时间线与1/8分音的时间线
并配合SetTimePoint与NextTimePoint获取第几个音符的时间
### NextTimePoint
每次都将时间线变量向前推进times个单位总计会增加times*delta
### SetTimePoint
重新赋值时间线变量,该函数不能生成时间线