Compare commits

..
Author SHA1 Message Date
bottlefish 0f7caeb308 修复 2026-04-02 12:05:16 +08:00
1852 changed files with 217639 additions and 111304 deletions
-17
View File
@@ -1,17 +0,0 @@
# Yarn 插线维修对话 — 快速审查
`FP_Huoshan1` 或同类 **BodyModule 插线 + `$gameStage` 多阶段**`.yarn` 做一轮检查。
## 用法
在对话里说明「按 yarn-plug-review 审查某文件/目录」或直接粘贴节点片段。
## 审查项(简版)
1. **跳转条件**:会 `jump` 结束/换阶段的块是否带 `$gameStage==…`,避免后期变量仍为 true 时回退阶段。
2. **重复插线**:同一 stage、同一模块第二次插线是否为短总结 + 下一步提示,而非全长对白与重复 `complete_task`
3. **TaskToDo**`TaskToDo--` 是否与「首次完成」绑定(如 `$speakerFinalOK` / `$saleFinalOK`),避免重复递减。
4. **无序插线**:是否已去掉「分支外无条件 set 完成标记」导致跳剧情。
5. **EventNode**`*PlugIn` 名称与 `moduleName`、目标 `title:` 一致。
完整说明与模式见:`.cursor/skills/yarn-plug-in-flow/SKILL.md`
@@ -1,356 +0,0 @@
---
name: 塔罗牌小游戏实现
overview: 基于 Sprite + EventTriggerEx 实现塔罗牌小游戏,Yarn 命令细粒度控制每个阶段(展示牌堆、展开、等待选牌、翻牌、设置朝向),与对话深度配合。
todos:
- id: tarot-card
content: 创建 TarotCard.cs -- 单张牌组件:IInteraction、SpriteRenderer 正反面、EventTriggerEx 注册、翻牌动画、朝向控制(正/倒)、悬停/点击回调
status: completed
- id: tarot-deck
content: 创建 TarotDeck.cs -- 牌堆管理:动态生成牌、扇形展开布局、悬停推出效果、选牌流程(FadeOut + 居中检视)
status: completed
- id: tarot-manager
content: 创建 TarotManager.cs -- 系统管理器:SystemDic 注册、视图开关、阶段状态机、选牌结果
status: completed
- id: tarot-yarn
content: 创建 TarotYarnCommand.cs -- 细粒度 Yarn 命令集(show/spread/wait_select/flip/set_orientation/rotate/hide
status: completed
isProject: false
---
# 塔罗牌小游戏实现计划
## 设计目标
Yarn 脚本能**细粒度控制**塔罗牌的每个视觉阶段,每个命令之间可以穿插对话,实现对话与交互的深度配合。
## Yarn 脚本示例(对应 FP_Day1_night 第 364-395 行的改造)
```yarn
ql: 我觉得也许你需要这个。
<<show_tarot_deck>>
【它拿出一套崭新的卡牌。】
me: 这是什么?
ql: "塔罗牌"。
ql: 试试吧。抽一张。
<<spread_tarot 5>>
-> 抽牌
<<wait_tarot_select>>
【你看了看牌。】
<<flip_tarot "inverted">>
// 翻到正面,但预设为倒置朝向(inverted)
【上面画着一个张开双臂的机体...像是...在把它吸过去。】
me: 这画的是什么?
ql: 倒吊人。你拿反了。
<<rotate_tarot "normal">>
// Yarn 命令改变朝向:倒置 -> 正向(旋转 180 度动画)
【你把牌转过来。】
【这下你看明白了。这是一个倒吊着的机体...】
// ...更多对话...
<<hide_tarot>>
```
## 架构概览
```mermaid
flowchart TD
Yarn["Yarn 脚本"] -->|"<<show_tarot_deck>>"| CMD["TarotYarnCommand\n(静态 Yarn 命令类)"]
Yarn -->|"<<spread_tarot 5>>"| CMD
Yarn -->|"<<wait_tarot_select>>"| CMD
Yarn -->|"<<flip_tarot inverted>>"| CMD
Yarn -->|"<<rotate_tarot normal>>"| CMD
Yarn -->|"<<hide_tarot>>"| CMD
CMD --> TM["TarotManager\n(SystemDic 注册)"]
TM --> TD["TarotDeck\n牌堆/扇形/选牌"]
TD --> TC["TarotCard x N\nSprite + EventTriggerEx"]
TC -->|IInteraction| ES["EventSystemEx"]
```
## 新增文件结构
```
Assets/Scripts/MiniGame/Tarot/
TarotManager.cs -- 管理器:SystemDic 注册、视图开关、阶段协调
TarotCard.cs -- 单张牌:IInteraction + 翻牌 + 朝向
TarotDeck.cs -- 牌堆逻辑:生成、展开、悬停、选牌
TarotYarnCommand.cs -- 细粒度 Yarn 命令集
```
## 核心设计
### 1. TarotCard -- 单张牌
参考 [KnobController](Assets/Scripts/MiniGame/HuoShan/SalesSystem/KnobController.cs) 的 EventTriggerEx 注册模式(行 165-199)。
- 实现 `IInteraction` 接口(`IsActive`, `IsAvailable`, `GetGameObject()`
- 需要 `Collider2D`BoxCollider2D,牌面大小)
- `SpriteRenderer` + 两个 Sprite 引用:`frontSprite` / `backSprite`
**朝向系统(Orientation**
- 枚举 `TarotOrientation { Normal, Inverted }`
- `Normal`:正面朝上(localScale.y = 1
- `Inverted`:倒置(localScale.y = -1,即上下颠倒)
- `SetOrientation(orientation, animated)` 方法,animated 时用 DOTween 做 Y 轴 scale 过渡
**翻牌动画**
- `Flip(targetOrientation, duration)` 协程
- DOTween 缩放 localScale.x: 1 -> 0(前半),切换 Sprite,再 0 -> 1(后半)
- 翻牌完成时根据 `targetOrientation` 设置 localScale.y
**交互注册**Awake):
- 获取/添加 `EventTriggerEx`
- `EnsureEventTriggerEntries()` 确保 PointerEnter/PointerExit/PointerClick 条目
- `Register(PointerEnter, OnHoverEnter)` / `Register(PointerExit, OnHoverExit)` / `Register(PointerClick, OnClick)`
- 回调通过 `System.Action` 委托给 `TarotDeck`
**状态**
- `bool IsFaceUp` -- 当前是否正面朝上
- `TarotOrientation Orientation` -- 当前朝向
- `bool IsInteractable` -- 是否接受交互(由 Deck 控制)
### 2. TarotDeck -- 牌堆管理
**动态生成**
- `Setup(int cardCount, Sprite front, Sprite back)` -- 创建 N 个 TarotCard 子物体
- 每张牌初始背面朝上,叠在一起(牌堆状态)
**扇形展开**
- `SpreadCards(float duration)` 协程
- 配置项:`fanAngleRange`(扇形总角度,如 120 度)、`fanRadius`(扇形半径)
- 每张牌的目标角度:`centerAngle + (i - (count-1)/2f) * angleStep`
- 每张牌的目标位置:以旋转角度沿圆弧分布
- DOTween `DOLocalMove` + `DOLocalRotate` 同步动画
**悬停推出**
- 牌注册的 `OnHoverEnter` -> 沿牌面法线方向(局部 Y 轴上方)推出一段距离
- `OnHoverExit` -> 回到扇形位置
- 用 DOTween `DOLocalMove`,设短 duration0.15s
**选牌**
- `OnCardClicked(TarotCard card)` -- 锁定交互,触发选牌序列
- 其余牌 `SpriteRenderer.DOFade(0, 0.3f)` 渐隐
- 选中牌移至检视位置(屏幕中央偏上),放大到检视尺寸
- 设置 `_selectedCard`,通知 Manager 选牌完成
**检视位置**
- `[SerializeField] Transform inspectPosition` -- 检视锚点
- `[SerializeField] float inspectScale` -- 检视缩放
### 3. TarotManager -- 管理器
- `Start()``FixSystemCenter.SystemDic.Register(this)`
- 持有 `TarotDeck` 引用(`GetComponentInChildren`
- 状态标记:`_isWaitingForSelection`(是否在等待玩家选牌)、`_isCardSelected`
- `OpenView()` / `CloseView()` 控制根 GameObject 显隐
- `WaitForSelection()` 协程 -- while 循环等待 `_isCardSelected`,供 YarnCommand 使用
- `SelectedCard` 属性 -- 获取当前选中的牌
### 4. TarotYarnCommand -- 细粒度 Yarn 命令集
所有命令通过 `FixSystemCenter.SystemDic.Get<TarotManager>()` 获取 Manager 实例。
| Yarn 命令 | 方法签名 | 说明 |
| ----------------------------------------- | ------------------------------------------------------ | --------------------------------------------------------------------- |
| `<<show_tarot_deck>>` | `ShowTarotDeck(int count = 5)` | 显示牌堆(叠放状态),可指定牌数 |
| `<<spread_tarot>>``<<spread_tarot 5>>` | `IEnumerator SpreadTarot(int count = -1)` | 扇形展开,count=-1 用已有牌数;协程等待展开动画完成 |
| `<<wait_tarot_select>>` | `IEnumerator WaitTarotSelect()` | 阻塞 Yarn 直到玩家点击选中一张牌;选中后执行选牌动画(其余牌淡出、选中牌居中);结果写入 `$tarotSelectedIndex` |
| `<<flip_tarot "normal">>` | `IEnumerator FlipTarot(string orientation = "normal")` | 翻牌到正面,同时设置朝向;`"normal"` = 正向,`"inverted"` = 倒置 |
| `<<rotate_tarot "normal">>` | `IEnumerator RotateTarot(string orientation)` | 改变已翻开牌的朝向(旋转动画),不翻面 |
| `<<hide_tarot>>` | `IEnumerator HideTarot()` | 淡出并隐藏所有塔罗元素 |
### 5. 完整交互流程
```mermaid
stateDiagram-v2
[*] --> DeckVisible: show_tarot_deck
DeckVisible --> DeckVisible: 对话继续\n(牌堆静态展示)
DeckVisible --> FanOut: spread_tarot
FanOut --> WaitSelect: wait_tarot_select
WaitSelect --> WaitSelect: hover 推出/回位
WaitSelect --> Selected: 玩家点击选牌
Selected --> InspectBack: 其余牌淡出\n选中牌居中(背面)
InspectBack --> InspectBack: 对话继续\n(背面检视)
InspectBack --> InspectFront: flip_tarot\n(预设朝向)
InspectFront --> InspectFront: 对话继续
InspectFront --> InspectRotated: rotate_tarot\n(改变朝向)
InspectRotated --> InspectRotated: 对话继续
InspectRotated --> [*]: hide_tarot
InspectFront --> [*]: hide_tarot
```
关键:每个状态之间 Yarn 对话可以自由穿插,命令只推进视觉阶段,不阻塞对话本身(除了 `wait_tarot_select` 是阻塞等待玩家交互)。
### 6. Sprite 资源
当前使用 `Assets/RawResources/Art/CG/塔罗牌/塔罗牌正面.png``塔罗牌背面.png`,所有牌共用同一对正反面。后续可扩展为每张牌不同正面。
## 场景配置
### 层级结构
```
TarotSystem -- 空 GameObject,放在需要的场景中
├── TarotManager (Component) -- 管理器脚本
├── TarotView -- 视图容器(OpenView/CloseView 控制这个)
│ ├── TarotDeck (Component) -- 牌堆逻辑脚本
│ │ └── [运行时动态生成的牌] -- TarotCard x N
│ │
│ └── InspectAnchor -- 检视锚点(空物体,标记牌选中后居中的位置)
│ (Transform 位置设在画面中央偏上)
└── (可选) Cinemachine Camera -- 如果塔罗需要独立相机视角
```
### 需要手动配置的部分
**1. TarotSystem 根物体**
- 放在对应场景中(如 Day1_night 所在场景)
- 位置在世界空间中合适的地方(与当前相机视角对齐)
**2. TarotManager 组件(Inspector 面板)**
```
[Header("视图")]
TarotView -- 拖入 TarotView 子物体(或自动 Find
[Header("牌面素材")]
FrontSprite -- 拖入 塔罗牌正面 Sprite
BackSprite -- 拖入 塔罗牌背面 Sprite
[Header("牌 Prefab")]
CardPrefab -- 拖入预制的单张牌 Prefab(见下方)
```
**3. 单张牌 Prefab(预制体)**
需要提前制作一个 Prefab,结构如下:
```
TarotCard (Prefab)
Components:
- SpriteRenderer (默认 sprite = 背面,sortingOrder 按需)
- BoxCollider2D (Size 匹配牌面大小,用于点击/悬停检测)
- EventTriggerEx (Inspector 中添加 3 个 Trigger 条目:
PointerEnter, PointerExit, PointerClick)
- TarotCard.cs (脚本自动注册事件)
```
EventTriggerEx 的 Inspector 配置要点:
- 点击 "Add New Event Type"
- 分别添加 `PointerEnter``PointerExit``PointerClick` 三个条目
- 回调列表留空(代码中 `Register` 动态绑定)
> 这与 KnobController 的模式一致:EventTriggerEx 需要 Inspector 中预配好条目,代码中 `TryGetTriggerEvent` 才能找到对应的 callback list。代码中也会 `EnsureEventTriggerEntries()` 作为保底自动添加。
**4. TarotDeck 组件(Inspector 面板)**
```
[Header("扇形展开参数")]
FanAngleRange = 120 -- 扇形总角度(度)
FanRadius = 3.0 -- 扇形半径(世界单位)
FanCenter = (0,0,0) -- 扇形圆心偏移
[Header("悬停")]
HoverOffset = 0.5 -- 悬停推出距离
HoverDuration = 0.15 -- 悬停动画时长
[Header("检视")]
InspectAnchor -- 拖入 InspectAnchor 子物体
InspectScale = 1.5 -- 检视模式缩放倍数
[Header("动画时长")]
SpreadDuration = 0.6 -- 展开动画时长
FadeOutDuration = 0.3 -- 未选中牌淡出时长
MoveToInspectDuration = 0.4 -- 选中牌移至检视位置时长
```
### 运行时流程
```mermaid
sequenceDiagram
participant Y as Yarn
participant M as TarotManager
participant D as TarotDeck
participant C as TarotCard
Y->>M: show_tarot_deck(5)
M->>M: OpenView()
M->>D: Setup(5, frontSprite, backSprite)
D->>D: Instantiate CardPrefab x 5
D->>C: 初始化 (背面, 叠放)
Note over Y: 对话继续...
Y->>D: spread_tarot
D->>C: DOTween 扇形展开动画
Note over Y: 对话继续...
Y->>M: wait_tarot_select (阻塞)
Note over C: 玩家悬停/点击
C-->>D: OnCardClicked
D->>D: 其余牌淡出, 选中牌居中
D-->>M: 选牌完成
M-->>Y: 协程返回
Note over Y: 对话继续...
Y->>M: flip_tarot("inverted")
M->>C: Flip(inverted)
C->>C: X轴缩放动画 + 切换Sprite + Y轴倒置
Note over Y: 对话: "你拿反了"
Y->>M: rotate_tarot("normal")
M->>C: SetOrientation(normal, animated=true)
C->>C: Y轴旋转动画 (倒置->正向)
Note over Y: 对话继续...
Y->>M: hide_tarot
M->>D: 淡出所有牌
M->>M: CloseView()
```
### 不需要手动做的部分(代码自动处理)
- 牌的动态实例化和销毁(`TarotDeck` 负责)
- EventTriggerEx 事件绑定(`TarotCard.Awake` 自动注册)
- SystemDic 注册(`TarotManager.Start` 自动注册)
- 扇形位置计算(`TarotDeck` 按参数自动排布)
## 关键技术点
- **EventTriggerEx 注册模式**:参考 `KnobController.Awake()` (行 165-199),需先 `EnsureEventTriggerEntries()` 确保 triggers 列表有对应条目,再调用 `Register(EventTriggerType, callback)`
- **DOTween 动画**:项目已引入 `DG.Tweening`,用于扇形展开、悬停推出、翻牌、FadeOut
- **IInteraction 实现**`IsActive` / `IsAvailable` 控制交互可用性,配合 `EventSystemEx.isLocked` 在对话期间自动禁用交互(对话进行时 `isLocked=true``wait_tarot_select` 时对话暂停所以 `isLocked=false`,交互自然可用)
- **SystemDic 注册**`FixSystemCenter.SystemDic.Register(this)` 使 YarnCommand 能通过 `Get<TarotManager>()` 获取实例
- **Yarn 变量写入**`StorageSystem.Instance.SetValue("$tarotSelectedIndex", value)` 将选牌结果传回 Yarn
-103
View File
@@ -1,103 +0,0 @@
---
name: yarn-plug-in-flow
description: >-
Yarn 维修插线对话:gameStage 调度、重复插线短总结、防状态回退与 TaskToDo 重复递减。
Use when 写 FixSystem/BodyModule 插线 Yarn、从自然语言生成维修对话、审阅 HuoShan 类流程、
检查 PlugIn 节点、重复执行、插线检查、或用户提到 yarn 插线/维修界面对话。
---
# Yarn 插线维修对话(FixSystem
本 skill 适用于:`BodyModule` 通过 `{moduleName}PlugIn` 跳入 Yarn、同一节点内用 `$gameStage` 分支多阶段叙事(如 `FP_Huoshan1`)。
## 1. C# 侧事实(设计 Yarn 前必读)
- 插线触发:`BodyModule.PlugIn()``DialogController.StartDialogNode(data.PlugInNodeName)`,节点名为 **`{moduleName}PlugIn`**(见 `BodyModuleData.PlugInNodeTemplate`)。
- **C# 一般不按阶段禁用插线**;若某 Stage 实际不可插线,是场景/交互配置决定,但 Yarn 仍应防御性处理「错误阶段误入」。
- EventNode 里用 `<<jump 检查xxx>>` 桥接到共享节点;共享节点名须与 `*.yarn``title:` 一致。
## 2. 状态变量约定(推荐)
| 用途 | 模式 |
|------|------|
| 流程阶段 | `$gameStage`(数字;仅在 `Center` 等少数节点切换,避免散落 `set` |
| 某模块「本档首次插线检查完」 | `$xxxChecked`(如 `$speakerChecked` / `$colorChecked` / `$emoChecked` |
| 多子任务计数 | `$TaskToDo`,完成时 `--`,**跳转前务必保证不会重复减** |
| 同一 Stage 内「最终检查子项已完成」 | 独立布尔,如 `$speakerFinalOK` / `$saleFinalOK`,防止重复插线再次 `complete_task``--` |
`VarsInit`(或等价入口)用 `<<declare>>` 初始化所有布尔/计数器,避免未定义行为。
## 3. 从自然语言 / 大纲生成 Yarn 时的必做项
1. **列出插线入口**:每个 `*PlugIn` → 目标节点;与模块 `moduleName` 一致。
2. **列出 `$gameStage` 与文档步骤映射**(如 `02_flow.md`),每个共享检查节点有哪些 `elseif $gameStage==N`
3. **任何会 `<<jump>>` 换阶段的块**:条件里加 **`$gameStage==N`**,避免后期 `$xxxChecked` 仍为 true 时误触发旧结局(状态回退)。
4. **同一 `$gameStage` 内、同一模块第二次插线**
- 首次:完整演出 + `complete_task` + 设 `$xxxChecked` / `$xxxFinalOK`
- 再次:`<<if $xxxChecked == true>>`(或对应 FinalOK)→ **短总结 + 自言自语下一步**(去查哪个模块、任务提示),**不**重复长对白、**不**重复任务完成副作用。
5. **多分支共享「完成标记」**:勿在 `if/elseif` 外无条件 `set $colorChecked=true` 等;否则乱序插线会跳过叙事(见此前 HuoShan Stage2 修复)。
## 4. 已完成 Yarn 的审查清单(可逐项打勾)
### 4.1 阶段与跳转
- [ ] 会推进阶段或结束的 `<<jump>>`,外层条件是否包含正确的 `$gameStage`
- [ ] `Center` / Stage 入口是否唯一或清晰,避免死循环、重复 `set gameStage`
### 4.2 重复插线(同 Stage、同模块)
- [ ] Stage2 类:表达 / 销售 / 情绪等主流程,第二次插线是否为「短总结 + 下一步」而非全长?
- [ ] Stage7 类双任务:是否用 **FinalOK**(或等价)避免第二次插线再次 `TaskToDo--` / 重复 `complete_task`
### 4.3 变量与任务
- [ ] `complete_task``$TaskToDo` 递减是否一一对应、且只在「首次成功路径」执行?
- [ ] `$PlugCount` 等统计是否与「首次访问」一致(可用 `visited("NodeName")``== false` 包裹)?
### 4.4 文档与代码
- [ ] `EventNode` 表与 `title:` 节点名一致(如 `SalePlugIn` 非过期的 `ColorPlugIn`)。
## 5. 最小代码模式参考(Yarn 片段)
**防跨阶段误触发结局:**
```yarn
<<if $gameStage==2 && $speakerChecked==true && $colorChecked==true>>
// 波形对比 → 结束本阶段
<<endif>>
```
**同 Stage 重复插线(短总结):**
```yarn
<<if $gameStage==2>>
<<if $speakerChecked == true>>
me: (总结结论)…
me: (下一步该做什么)…
<<else>>
// 首次完整流程
<<set $speakerChecked = true>>
<<endif>>
<<endif>>
```
**Stage7 双任务防重复:**
```yarn
<<elseif $gameStage==7>>
<<if $speakerFinalOK == true>>
me: 已确认…若还有任务去查另一模块。
<<else>>
<<complete_task "...">>
<<set $speakerFinalOK = true>>
<<set $TaskToDo = $TaskToDo - 1>>
<<endif>>
<<endif>>
```
## 6. 项目内参考
- 实例:`Assets/Resources/Yarn/FP_Huoshan1/Stage2.yarn``检查表达` / `检查销售模块` / `检查情绪`)、`Center.yarn``VarsInit`)。
- 流程定义:`Docs/HuoShan/core/02_flow.md`
- C#`Assets/Scripts/FixSystemNew/BodyModule/Modules/BodyModule.cs``PlugIn`)。
+1 -4
View File
@@ -88,12 +88,9 @@ crashlytics-build.properties
# Ignore the Cache folder since it is updated locally.
/[Aa]ssets/Plugins/FMOD/Cache/*
# TimelineNameCollector editor cache (legacy path; migration only)
# TimelineNameCollector editor cache (regenerated on scan)
/[Aa]ssets/[Ee]ditor/TimelineNameCollector/Cache/*
# HandlerNameCollector editor cache (regenerated on scan)
/[Aa]ssets/[Ee]ditor/HandlerNameCollector/Cache/*
# 暂时把bank放到Stream里,不忽略
# Ignore bank files in the StreamingAssets folder.
/[Aa]ssets/StreamingAssets/**/*.bank
@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 09546aca93a801441859af2a811fe53b
m_currentHash:
serializedVersion: 2
Hash: 1616e06b587c7889ae21faab8aef8e68
Hash: c7686f2c2462e1f187d9ecf6d11dbc45
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_BundleLocalCatalog: 0
@@ -59,15 +59,13 @@ MonoBehaviour:
- {fileID: 11400000, guid: 6d259d339c6615248b893837398c1438, type: 2}
- {fileID: 11400000, guid: 8718a71c99923e247a960cbf4e4795f5, type: 2}
- {fileID: 11400000, guid: 1e521cfc13b314642b1e682e3be7ea17, type: 2}
- {fileID: 11400000, guid: aafc8258a2111e94d8339a3152cf50e0, type: 2}
- {fileID: 11400000, guid: 7e4ab0de168458b43a21dc2f9e811ff5, type: 2}
- {fileID: 11400000, guid: 724eed66b2d8eef4faf77a4bee4d2845, type: 2}
- {fileID: 11400000, guid: 62a92c74b9bd5bd439690727c1831500, type: 2}
- {fileID: 11400000, guid: b593dc98ea11a484995123de77d9bf1a, type: 2}
- {fileID: 11400000, guid: d582f9080605ab34cbcde3249c980030, type: 2}
- {fileID: 11400000, guid: 54799118a585dda439cab043d56ec68c, type: 2}
- {fileID: 11400000, guid: dc8d31ed80ea35945812ff6552efbbe5, type: 2}
- {fileID: 11400000, guid: af94af36950b08d4f9a5037546bbe040, type: 2}
- {fileID: 11400000, guid: 60fd2fd8c7094b242b01c63de65de9ea, type: 2}
m_BuildSettings:
m_CompileScriptsInVirtualMode: 0
m_CleanupStreamingAssetsAfterBuilds: 1
@@ -114,7 +112,6 @@ MonoBehaviour:
- Locale-en
- Locale-zh-Hans
- SceneSO
- Locale-ja-JP
m_SchemaTemplates: []
m_GroupTemplateObjects:
- {fileID: 11400000, guid: 0c158052680a3e94184c450d00291514, type: 2}
@@ -28,16 +28,6 @@ MonoBehaviour:
m_SerializedLabels:
- SceneSO
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9e771f24d61d40d42b7e2b4637e8090c
m_Address: "Timeline/\u5934\u75DB"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f80e799655e3ece439f31458425a752b
m_Address: Timeline/Glitch
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -1,31 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: Localization-Asset-Tables-Japanese (Japan) (ja-JP)
m_EditorClassIdentifier:
m_GroupName: Localization-Asset-Tables-Japanese (Japan) (ja-JP)
m_Data:
m_SerializedData: []
m_GUID: bac626c44cee44544a45a750681e92e0
m_SerializeEntries:
- m_GUID: 8b2d41616f1a75840a5800ee28d1c4ed
m_Address: sprite_ja-JP
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ja-JP
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: 842c6a62aa3abdf4d9b230f249b9fd76, type: 2}
- {fileID: 11400000, guid: 1706e28ae8e595149b2ac1fbea7f8071, type: 2}
@@ -15,11 +15,17 @@ MonoBehaviour:
m_GroupName: Localization-Assets-English (en)
m_Data:
m_SerializedData: []
m_GUID: 59bf392f3aef3b24da46dd8d3fa9259f
m_SerializeEntries: []
m_GUID: 50aef5699023b21459e68677a9449d80
m_SerializeEntries:
- m_GUID: 032b1b5e09139ae45b6de51d35baae79
m_Address: discord-square-color-icon
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: fa74e99b946159549971be154369b2cb, type: 2}
- {fileID: 11400000, guid: 8e1cbbf76f0150145a39ce648fbf3985, type: 2}
- {fileID: 11400000, guid: 895c7c97ef5802446a395377ef704940, type: 2}
- {fileID: 11400000, guid: 8004f70cd10ce4a439cb9e822bb078c2, type: 2}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 60fd2fd8c7094b242b01c63de65de9ea
guid: aafc8258a2111e94d8339a3152cf50e0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
@@ -22,6 +22,145 @@ MonoBehaviour:
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 37c291d6dce732d45afb2e2b62218683
m_Address: Assets/Language/Dialog/FP_Day1_begin/FP_Day1_begin Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c1de143c98cd0804ab3b7b9a36fcf06a
m_Address: Assets/Language/ActorName/ActorName Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 76902d55aa2d3474aa96c8e574b8212f
m_Address: Assets/Language/Dialog/FP_Peipei1/FP_Peipei1 Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0cb567219be64c04b9552ecc61f8396a
m_Address: Assets/Language/Dialog/Fiction_Day1_night/Fiction_Day1_night Shared
Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 685539ac5030ab5409faa8feccba91e2
m_Address: Assets/Language/Dialog/FP_Day1_mid/FP_Day1_mid Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4f3df7a54674e8343b4699544a25db67
m_Address: Assets/Language/Dialog/FP_Shitou2/FP_Shitou2 Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2c7f3692831aa5f4daa13d00e99ad77c
m_Address: Assets/Language/Dialog/FP_Shitou1/FP_Shitou1 Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 949f8d1a26133a94c83ac9cc7e6d94c7
m_Address: Assets/Language/Dialog/FP_Peipei2/FP_Peipei2 Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 59e2a0d8fc60a784993a6f6cdfeb9c7d
m_Address: Assets/Language/Dialog/FP_Day1_night/FP_Day1_night Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 831d81945a7dc8d498ccebcdd4d05044
m_Address: Assets/Language/Dialog/FP_Day2_mid/FP_Day2_mid Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 45899a60a64d58a4f81fad32d2171702
m_Address: Assets/Language/Dialog/FP_Day2_night/New Table Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ea388b59e37ddc14da4d8e3e9ead4133
m_Address: Assets/Language/Dialog/Test_Huoshan/Test_Huoshan Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8f3dfd038e75c3a41a865ab8dd730809
m_Address: Assets/Language/Dialog/FP_Prologue/FP_Prologue Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 011b21a8c75449e4a982549cebc1a6ca
m_Address: Assets/Language/Params/Params Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f6d220fec7b888b4f89463b5da038e62
m_Address: Assets/Language/Dialog/Fiction_Day1_mid/Fiction_Day1_mid Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c5f887d31e1d7bc46b8a7ab784f19b9a
m_Address: Assets/Language/Dialog/Fiction_Day1_begin/Fiction_Day1_begin Shared
Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 578cb0ae76a180d45ac70e058c676ac7
m_Address: Assets/Language/Dialog/FP_Peipei3/FP_Peipei3 Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: f5108536d82f2c14a922f0a1d3e83638
m_Address: Assets/Language/Dialog/FP_Day3_mid/FP_Day3_mid Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0ee8d3542a2395745b4ad6bf55e3b097
m_Address: Assets/Language/Dialog/Fiction_Day2_mid/Fiction_Day2_mid Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 771ed3ef48efbb645827ce5c29d63754
m_Address: Assets/Language/Dialog/Fiction_Day2_night/Fiction_Day2_night Shared
Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: aaa27d8b7dfc3fc4294bda026ae135f2
m_Address: Assets/Language/Dialog/Fiction_Day3_mid/Fiction_Day3_mid Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3c243fd229013b84e9c88091eaa74103
m_Address: Assets/Language/Dialog/Fiction_Day3_night/Fiction_Day3_night Shared
Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: bb8e2763fb266ff4d8b9c0b0f37882e2
m_Address: Assets/Language/Dialog/Fiction_Day4_mid/Fiction_Day4_mid Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: bb6fa95706f665c469e270567be5cfe9
m_Address: Assets/Language/Dialog/Fiction_Huoshan1/New Table Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 042ab1d25056cbd4984621037ac848f0
m_Address: Assets/Language/Dialog/Fiction_Yingli1/Fiction_Yingli1 Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 70f8ff033cddcd543a618974781d0bb0
m_Address: Assets/Language/Dialog/FP_Day3_night/FP_Day3_night Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 08cb937dd06038b4486d6a3662539542
m_Address: Assets/Language/Dialog/Test_GeneralEnd/New Table Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9abdd56d318b1ec459c7e866748d6878
m_Address: Assets/Language/Sprite/sprite Shared Data.asset
m_ReadOnly: 1
@@ -33,19 +172,49 @@ MonoBehaviour:
m_SerializedLabels:
- Locale-en
- Locale-zh-Hans
- Locale-ja-JP
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4a2d391471bd9cd439150c52659e9846
m_Address: Assets/Language/Params/Params Shared Data.asset
- m_GUID: dd4a0fe1d258fbc4384ab1db825d5ae3
m_Address: Gts1/Fiction_Gts1 Shared Data.asset/Fiction_Gts1 Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 032b1b5e09139ae45b6de51d35baae79
m_Address: discord-square-color-icon
- m_GUID: 57cfa4d941133b840b4345cf815dda66
m_Address: Assets/Language/Dialog/Fiction_Day2_begin/Fiction_Day2_begin Shared
Data.asset
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
- Locale-ja-JP
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c3d23bd971e02d34cb356b2029523427
m_Address: Assets/Language/Dialog/Fiction_Day1_sleep/Fiction_Day1_sleep Shared
Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e3c75f951d9792449906a3a8010d2e74
m_Address: Assets/Language/Dialog/Fiction_Day2_sleep/Fiction_Day2_sleep Shared
Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 28396c5e50d205645b94b89018d01a2a
m_Address: Assets/Language/Dialog/Ficion_Shitou1/Fiction_Shitou1 Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 73c880a15817b7f408ad0596f07a3626
m_Address: Assets/Language/Dialog/FP_Day1_sleep/FP_Day1_sleep Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: afa9b26bd11b9d847bbb9714b8049a4b
m_Address: Assets/Language/Dialog/FP_Day2_begin/FP_Day2_begin Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 90d6cbb308df1484f9146a0ad156202e
m_Address: Assets/Language/Dialog/FP_Day2_sleep/FP_Day2_sleep Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
@@ -29,12 +29,6 @@ MonoBehaviour:
m_SerializedLabels:
- Locale
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9d3da569ceb2f3740bd6f4fd01e51c62
m_Address: Japanese (Japan) (ja-JP)
m_ReadOnly: 1
m_SerializedLabels:
- Locale
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -23,12 +23,210 @@ MonoBehaviour:
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: aeb318c895d57014b89d5540c6baff95
- m_GUID: c21a8fbe9bf147649b5b01320ada3f11
m_Address: FP_Day1_begin_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0b504f7f6402d8747896b0cf19674e69
m_Address: ActorName_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 247e0ac5e48cbe24ea7e228e1a039590
m_Address: FP_Peipei1_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d6149a0fedb6cc24ba2a318aedab1de0
m_Address: FP_Day1_mid_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8a56c6bff47205b439b07425f6f5ad94
m_Address: FP_Shitou2_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 32954c9c2dce35e42a31befcec1e861f
m_Address: FP_Shitou1_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 860bd75190298994b9d5dee30aebd910
m_Address: FP_Peipei2_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: bfc0211d0386bc9468ecace61129ecd5
m_Address: FP_Day1_night_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 204ffaeec9d0f7e4cb708476b4d459a2
m_Address: FP_Day2_mid_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2516ada36f949234caf993f1deaf79e6
m_Address: FP_Day2_night_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 523b3962bff363849a36683b375adc06
m_Address: Test_Huoshan_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 83f5756a759af6f459aa1871eb248f5b
m_Address: FP_Prologue_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5d4915d0761772c41902e704e2ecfd0b
m_Address: Params_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fb51befc2226dfa44bbde7203364c019
m_Address: Fiction_Day2_mid_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6603078d8eb41524e9ad2edd5d182ccc
m_Address: Fiction_Day1_mid_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 72755a9b5a5ca5c4e92028ca44c66a6d
m_Address: FP_Peipei3_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c260e1e2604154648971c06353edad0e
m_Address: FP_Day3_mid_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a75bb4d4a30c22f40ad5c7d70c8276d4
m_Address: Fiction_Day1_night_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: b2f0a2aa5e0b95346bf499980c2994d4
m_Address: Fiction_Day2_night_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6c498406bf979ca45b345e5bdbd3cc4b
m_Address: Fiction_Day3_mid_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 8e5812f1d9f10a4488702f35405d197d
m_Address: Fiction_Day3_night_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 35f017da97194574da316391464204b2
m_Address: Fiction_Day4_mid_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 75ed4030af85d794f832919dbe427f51
m_Address: Fiction_Huoshan1_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4b181f70ec2e65f4cab1545662415306
m_Address: Fiction_Yingli1_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a525b6d2bcfeb2446b2f4d2b36b043c7
m_Address: FP_Day3_night_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1f031d78df49e5645a4ceaafa7283f91
m_Address: Test_GeneralEnd_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9cecc6d4b999d5c489b69406176bab99
m_Address: Fiction_Gts1_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fbfb0ced2ba1bf44e86964158ae53d72
m_Address: Fiction_Day1_sleep_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 999ab1a8772cb1a4cba0325144ff5488
m_Address: Fiction_Day1_begin_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4d88b47f4a7e3f249b44203f411e4adf
m_Address: Fiction_Day2_sleep_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 03f5785bc02343d448436956c6991b38
m_Address: Fiction_Shitou1_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 14a941304f21e2042afd56019acfca6c
m_Address: FP_Day1_sleep_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d9f05be3049f65b4c82800b1bde3b7c2
m_Address: FP_Day2_begin_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 09898f26fbea1454cb10f2c27e2ca907
m_Address: FP_Day2_sleep_zh-Hans
m_ReadOnly: 1
m_SerializedLabels:
- Locale-zh-Hans
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -23,12 +23,210 @@ MonoBehaviour:
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9248cb179e7aafa4c903f1fc54b41ef7
- m_GUID: 1e7115110ec21ec4da592999daa0c146
m_Address: FP_Day1_begin_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e80667e8ff7367e4ab9bc4f9421271e8
m_Address: ActorName_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 08ef2a7dddda7ee49b869bcd73858404
m_Address: FP_Peipei1_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 30ab319b5e0bafe46aa622bb93381c7e
m_Address: FP_Day1_mid_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 927a25bda151fc7469749a3724bef6b0
m_Address: FP_Shitou2_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fda6eb219437ffc40ab860aa89d9446d
m_Address: FP_Shitou1_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 13f447125bbae5e45a4a446c2c9ac397
m_Address: FP_Peipei2_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c65e073d94ffbbb4b9b6107dee05e670
m_Address: FP_Day1_night_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 399374eeba6905048a7342d0bb494f9c
m_Address: FP_Day2_mid_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: cbc3925d28fc66c4cb3293b7bd66db0b
m_Address: FP_Day2_night_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fb0b8f197b5a607468eeb9326737d547
m_Address: Test_Huoshan_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 49a6e4d039261bf42a18782ca317fca5
m_Address: FP_Prologue_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0a9b8bbf38d109d409792ae7cc48cec7
m_Address: Params_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: eb9ebf027dd4b564cb035d7167ff8099
m_Address: Fiction_Day2_mid_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 705a631ebd09db04fa1bda39e20e505e
m_Address: Fiction_Day1_mid_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: fde90ade684482142af49533e4f4ed62
m_Address: FP_Peipei3_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 036c8c6ed1ecc314a8e0ae02fe15ab5e
m_Address: FP_Day3_mid_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0d2928a7d58c26a4ca78abf2f5da1373
m_Address: Fiction_Day1_night_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 59fc388134f5d884c8d7ca28f2d7017e
m_Address: Fiction_Day2_night_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 379ead226bea4f844b1c136c4f748633
m_Address: Fiction_Day3_mid_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: aaf54fb66c2fa9d4ab68626ced632a7a
m_Address: Fiction_Day3_night_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: c0c8b8aea11da444ea41eece5a698e5f
m_Address: Fiction_Day4_mid_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2a14b1d82f4aef94aac2b230392605fc
m_Address: Fiction_Huoshan1_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 79ccbc35144b91a45bb9fdf9732d238a
m_Address: Fiction_Yingli1_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0e9bb0974017aa346a379b78126f6f7b
m_Address: FP_Day3_night_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 27ad0341432ae0b46a8fe117eb5c73e2
m_Address: Test_GeneralEnd_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1adbe96b15171134584c9a2d7d69c045
m_Address: Fiction_Gts1_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9d72f86c018628e418747a7d0a66cb21
m_Address: Fiction_Day1_sleep_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 30a0c1ae8c45da34f8e3f90692e96e11
m_Address: Fiction_Day1_begin_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 36d94b46b4a12b54b8e084d8d275e675
m_Address: Fiction_Day2_sleep_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 265c923a085f98042b44f8b18dd8389b
m_Address: Fiction_Shitou1_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ef76bcd9daf9b6a4580eaa28d2073ebf
m_Address: FP_Day1_sleep_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a6b685d3b3e17c64da7ca72add7b3540
m_Address: FP_Day2_begin_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a0e634b20b52dd34abb7999e889ec772
m_Address: FP_Day2_sleep_en
m_ReadOnly: 1
m_SerializedLabels:
- Locale-en
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -1,37 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bbb281ee3bf0b054c82ac2347e9e782c, type: 3}
m_Name: Localization-String-Tables-Japanese (Japan) (ja-JP)
m_EditorClassIdentifier:
m_GroupName: Localization-String-Tables-Japanese (Japan) (ja-JP)
m_Data:
m_SerializedData: []
m_GUID: 62cf9265bfa710b4b9152c336336a38e
m_SerializeEntries:
- m_GUID: 7c757424270c91e43bf45198f69c983a
m_Address: UIText_ja-JP
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ja-JP
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 9ed23d1d910a1a147ba5c316a87cbad4
m_Address: Params_ja-JP
m_ReadOnly: 1
m_SerializedLabels:
- Locale-ja-JP
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 1
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
m_Schemas:
- {fileID: 11400000, guid: 7df396a6b5136fe4e9d2d659731161d2, type: 2}
- {fileID: 11400000, guid: 545ed8780a6508047bd42b964feb82fd, type: 2}
@@ -37,26 +37,16 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7ba8eca4e18291341a10ef7c8c858bd9
m_Address: "Animation/\u9152\u5427\u533B\u751F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5f26e5dcbc809104f92f908082de97d5
m_Address: "Animation/\u8C03\u9152\u59B9\u6D4B\u8BD5"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a74e4379fa468c24497808e8a6bae2c4
m_Address: "Animation/\u9152\u4FDD"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1c3c562754993f64c850ae97b4c7852e
m_Address: "Timeline/\u9189\u9152"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2d9baefeca916a942ab57a6714f7dc9e
m_Address: "Timeline/\u8C03\u9152\u8499\u592A\u5947"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -22,32 +22,12 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5253d74898c86f547861ebf57b280b4f
m_Address: "Timeline/\u5929\u6865\u5934\u75DB"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: acd7f1995fefdf24c9e979e45a176b76
m_Address: "Timeline/\u5929\u6865\u98CE\u5439\u6811\u53F6"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4180297bbe280ad478f49933e69dcbce
m_Address: "Timeline/\u5929\u6865\u63A5\u6811\u53F6In"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 71aa8e39cf2f39945af8ba27eb2acd08
m_Address: "Timeline/\u5929\u6865\u63A5\u6811\u53F6Loop"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e67da195744f8de448e46c34eb9badb2
- m_GUID: 0252f0740dd08da4ab8f5aeb7ddcc4ea
m_Address: "Animation/\u5929\u6865\u533B\u751F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ea008b0c912c0d748997bf458879cb74
- m_GUID: 2359eeb42b1a4f044b01b6ea27390f1d
m_Address: "Animation/\u5929\u6865\u4F69\u4F69"
m_ReadOnly: 0
m_SerializedLabels: []
@@ -67,18 +67,48 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6c4aea2a4a8462344b6ce353f53c7b2a
m_Address: "Timeline/\u533B\u751F\u51FA\u5730\u94C1"
- m_GUID: 69e2f5249baf3a94f8f84e0d141868cb
m_Address: "Timeline/\u6458\u8D70\u76D6\u5B50"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7760fc67933fb684d81ea5275fac0a50
m_Address: "Animation/\u8BCA\u5BA4\u5916\u706B\u5C71"
- m_GUID: 4222e9e117a86064192b7219f7ce0543
m_Address: "Timeline/\u653E\u4E0B\u76D6\u5B50"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 253f47db959b2814998695fb5d1f4d97
m_Address: "Timeline/\u65CB\u8F6C\u53F6\u67C4"
- m_GUID: 72b922f30ca3059419c6bbc565ed9b4a
m_Address: "Timeline/\u900F\u955Cin"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e4815dc72e9f2a54d93eaabda8a0750f
m_Address: "Timeline/\u900F\u955Cout"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0a677c8d19d799d4a80842a5ee1bf5a4
m_Address: "Timeline/\u8FDB\u5165\u6B65\u8FDB\u6A21\u5F0F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 33a3ab569b0312145ad062ae6936177e
m_Address: "Timeline/\u9000\u51FA\u6B65\u8FDB\u6A21\u5F0F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 838bd5cc2ceffc1459d167675d96f66a
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBEpanel"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 45c7520cc9a3e5f4faa8db45df605dc1
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBE\u786E\u8BA4"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3b2268ceeee9f934691265d0214b2fc7
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBE\u6DF1\u5165"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
@@ -27,11 +27,6 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 35dfcf569b00d404bb89ac1d8ae4c37a
m_Address: "Timeline/\u59D0\u59D0\u653E\u624B"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -32,66 +32,6 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 417a7984630786f46a5ade5d2b457852
m_Address: "Animation/\u706B\u5C71"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 838bd5cc2ceffc1459d167675d96f66a
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBEpanel"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 45c7520cc9a3e5f4faa8db45df605dc1
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBE\u786E\u8BA4"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3b2268ceeee9f934691265d0214b2fc7
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBE\u6DF1\u5165"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4222e9e117a86064192b7219f7ce0543
m_Address: "Timeline/\u653E\u4E0B\u76D6\u5B50"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 69e2f5249baf3a94f8f84e0d141868cb
m_Address: "Timeline/\u6458\u8D70\u76D6\u5B50"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e4815dc72e9f2a54d93eaabda8a0750f
m_Address: "Timeline/\u900F\u955Cout"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 72b922f30ca3059419c6bbc565ed9b4a
m_Address: "Timeline/\u900F\u955Cin"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 33a3ab569b0312145ad062ae6936177e
m_Address: "Timeline/\u9000\u51FA\u6B65\u8FDB\u6A21\u5F0F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0a677c8d19d799d4a80842a5ee1bf5a4
m_Address: "Timeline/\u8FDB\u5165\u6B65\u8FDB\u6A21\u5F0F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: af4651ca096e81d4d8bcf8b93a91b872
m_Address: "Timeline/\u706B\u5C71\u5934\u75DB2"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e69af1ed498c57f4799f936aa28e4ed4
m_Address: "Timeline/\u706B\u5C71\u5934\u75DB1"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -27,13 +27,13 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d269076a4860dee4f94d1bd63c674f30
m_Address: "Sprite/\u89C6\u89C9\u6A21\u5757\u76D6\u5B50"
- m_GUID: 809f95af8dd580448ab804b94fbd9cb2
m_Address: "Animation/\u4F69\u4F69"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 809f95af8dd580448ab804b94fbd9cb2
m_Address: "Animation/\u4F69\u4F69"
- m_GUID: d269076a4860dee4f94d1bd63c674f30
m_Address: "Sprite/\u89C6\u89C9\u6A21\u5757\u76D6\u5B50"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
@@ -17,6 +17,16 @@ MonoBehaviour:
m_SerializedData: []
m_GUID: 74922ad77455a1847aa3f1d714a4edda
m_SerializeEntries:
- m_GUID: 3c0d119c1a62bb840846a0e7c58197f7
m_Address: "Subway/\u767D\u5929\u7A97\u5916"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 660c87b6732769b49a9b7119b54ede83
m_Address: "Subway/\u591C\u665A\u7A97\u5916"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1df1eddcbfb714743a3d146cbea2b6a2
m_Address: Scene/SubWay
m_ReadOnly: 0
@@ -42,21 +52,6 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ca80fd96dc71f714a988b27d9ca6c61c
m_Address: Sprite/News
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3c0d119c1a62bb840846a0e7c58197f7
m_Address: "Subway/\u767D\u5929\u7A97\u5916"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 660c87b6732769b49a9b7119b54ede83
m_Address: "Subway/\u591C\u665A\u7A97\u5916"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -1,45 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: Localization-Asset-Tables-Japanese (Japan) (ja-JP)_BundledAssetGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: af94af36950b08d4f9a5037546bbe040, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
m_IncludeGUIDInCatalog: 1
m_IncludeLabelsInCatalog: 1
m_InternalIdNamingMode: 0
m_CacheClearBehavior: 0
m_IncludeInBuild: 1
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
m_UseAssetBundleCrcForCachedBundles: 1
m_UseUWRForLocalBundles: 0
m_Timeout: 0
m_ChunkedTransfer: 0
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: 2ae6a7549097a9b4caefe44b61b1fcc5
m_LoadPath:
m_Id: 631ec5c677ab8084fb9be9b9ee39c6ef
m_BundleMode: 0
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
m_BundleNaming: 1
m_AssetLoadMode: 0
@@ -1,16 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Localization-Asset-Tables-Japanese (Japan) (ja-JP)_ContentUpdateGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: af94af36950b08d4f9a5037546bbe040, type: 2}
m_StaticContent: 0
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: Localization-Assets-English (en)_BundledAssetGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: 60fd2fd8c7094b242b01c63de65de9ea, type: 2}
m_Group: {fileID: 11400000, guid: aafc8258a2111e94d8339a3152cf50e0, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: fa74e99b946159549971be154369b2cb
guid: 895c7c97ef5802446a395377ef704940
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
@@ -12,5 +12,5 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Localization-Assets-English (en)_ContentUpdateGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: 60fd2fd8c7094b242b01c63de65de9ea, type: 2}
m_Group: {fileID: 11400000, guid: aafc8258a2111e94d8339a3152cf50e0, type: 2}
m_StaticContent: 0
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8e1cbbf76f0150145a39ce648fbf3985
guid: 8004f70cd10ce4a439cb9e822bb078c2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
@@ -1,45 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e5d17a21594effb4e9591490b009e7aa, type: 3}
m_Name: Localization-String-Tables-Japanese (Japan) (ja-JP)_BundledAssetGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: dc8d31ed80ea35945812ff6552efbbe5, type: 2}
m_InternalBundleIdMode: 1
m_Compression: 1
m_IncludeAddressInCatalog: 1
m_IncludeGUIDInCatalog: 1
m_IncludeLabelsInCatalog: 1
m_InternalIdNamingMode: 0
m_CacheClearBehavior: 0
m_IncludeInBuild: 1
m_BundledAssetProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider
m_ForceUniqueProvider: 0
m_UseAssetBundleCache: 1
m_UseAssetBundleCrc: 1
m_UseAssetBundleCrcForCachedBundles: 1
m_UseUWRForLocalBundles: 0
m_Timeout: 0
m_ChunkedTransfer: 0
m_RedirectLimit: -1
m_RetryCount: 0
m_BuildPath:
m_Id: 2ae6a7549097a9b4caefe44b61b1fcc5
m_LoadPath:
m_Id: 631ec5c677ab8084fb9be9b9ee39c6ef
m_BundleMode: 0
m_AssetBundleProviderType:
m_AssemblyName: Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
m_ClassName: UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider
m_BundleNaming: 1
m_AssetLoadMode: 0
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 7df396a6b5136fe4e9d2d659731161d2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -1,16 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5834b5087d578d24c926ce20cd31e6d6, type: 3}
m_Name: Localization-String-Tables-Japanese (Japan) (ja-JP)_ContentUpdateGroupSchema
m_EditorClassIdentifier:
m_Group: {fileID: 11400000, guid: dc8d31ed80ea35945812ff6552efbbe5, type: 2}
m_StaticContent: 0
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 545ed8780a6508047bd42b964feb82fd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -1,550 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7273616238501396146
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bcae7dc92d05e1e4094e0e448b670355, type: 3}
m_Name: VolumeAsset
m_EditorClassIdentifier:
m_Template:
Weight: 1
m_Volume: {fileID: 11400000, guid: 0af8555a6447b50409db2139400d6ab7, type: 2}
--- !u!114 &-3378792728507138695
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cd3925730e7a59446932e9c8cba28ccf, type: 3}
m_Name: Volume Track (1)
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 1
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: 7967868333749088964}
m_Duration: 1.3666666666666667
m_TimeScale: 1
m_ParentTrack: {fileID: -3378792728507138695}
m_EaseInDuration: 0.1
m_EaseOutDuration: 0.6
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 0
m_PreExtrapolationMode: 0
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 0
m_DisplayName: VolumeAsset
m_Markers:
m_Objects: []
m_Layer: 0
m_Priority: 0
--- !u!114 &-3117513502812618692
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cd3925730e7a59446932e9c8cba28ccf, type: 3}
m_Name: Volume Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 1
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: -7273616238501396146}
m_Duration: 1.3666666666666667
m_TimeScale: 1
m_ParentTrack: {fileID: -3117513502812618692}
m_EaseInDuration: 0.1
m_EaseOutDuration: 0.6
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 0
m_PreExtrapolationMode: 0
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 0
m_DisplayName: VolumeAsset
m_Markers:
m_Objects: []
m_Layer: 0
m_Priority: 0
--- !u!114 &-2955631063214815081
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cd3925730e7a59446932e9c8cba28ccf, type: 3}
m_Name: Volume Track (2)
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 1
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: -1361877534822022742}
m_Duration: 1.3666666666666667
m_TimeScale: 1
m_ParentTrack: {fileID: -2955631063214815081}
m_EaseInDuration: 0.1
m_EaseOutDuration: 0.6
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 0
m_PreExtrapolationMode: 0
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 0
m_DisplayName: VolumeAsset
m_Markers:
m_Objects: []
m_Layer: 0
m_Priority: 0
--- !u!114 &-1361877534822022742
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bcae7dc92d05e1e4094e0e448b670355, type: 3}
m_Name: VolumeAsset
m_EditorClassIdentifier:
m_Template:
Weight: 1
m_Volume: {fileID: 11400000, guid: 631b3200517e20440b88f28015fc3a5c, type: 2}
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3}
m_Name: "\u706B\u5C71\u5934\u75DB1"
m_EditorClassIdentifier:
m_Version: 0
m_Tracks:
- {fileID: -3117513502812618692}
- {fileID: -3378792728507138695}
- {fileID: -2955631063214815081}
- {fileID: 2112685405309563144}
m_FixedDuration: 0
m_EditorSettings:
m_Framerate: 60
m_ScenePreview: 1
m_DurationMode: 0
m_MarkerTrack: {fileID: 0}
--- !u!74 &1077202520131138910
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Recorded
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.13333334
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.8333333
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.1333333
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path:
classID: 212
script: {fileID: 0}
flags: 0
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1.1333333
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.13333334
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.8333333
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.1333333
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path:
classID: 212
script: {fileID: 0}
flags: 0
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []
--- !u!114 &2112685405309563144
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d21dcc2386d650c4597f3633c75a1f98, type: 3}
m_Name: Animation Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips: []
m_Markers:
m_Objects: []
m_InfiniteClipPreExtrapolation: 1
m_InfiniteClipPostExtrapolation: 1
m_InfiniteClipOffsetPosition: {x: 0, y: 0, z: 0}
m_InfiniteClipOffsetEulerAngles: {x: 0, y: 0, z: 0}
m_InfiniteClipTimeOffset: 0
m_InfiniteClipRemoveOffset: 0
m_InfiniteClipApplyFootIK: 1
mInfiniteClipLoop: 0
m_MatchTargetFields: 63
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_AvatarMask: {fileID: 0}
m_ApplyAvatarMask: 1
m_TrackOffset: 0
m_InfiniteClip: {fileID: 1077202520131138910}
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
m_ApplyOffsets: 0
--- !u!114 &7967868333749088964
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bcae7dc92d05e1e4094e0e448b670355, type: 3}
m_Name: VolumeAsset
m_EditorClassIdentifier:
m_Template:
Weight: 1
m_Volume: {fileID: 11400000, guid: 841479fd6ffe3ee40a88ee41bd395f09, type: 2}
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: e69af1ed498c57f4799f936aa28e4ed4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -1,550 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7273616238501396146
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bcae7dc92d05e1e4094e0e448b670355, type: 3}
m_Name: VolumeAsset
m_EditorClassIdentifier:
m_Template:
Weight: 1
m_Volume: {fileID: 11400000, guid: 0af8555a6447b50409db2139400d6ab7, type: 2}
--- !u!114 &-3378792728507138695
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cd3925730e7a59446932e9c8cba28ccf, type: 3}
m_Name: Volume Track (1)
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: 7967868333749088964}
m_Duration: 1.3666666666666667
m_TimeScale: 1
m_ParentTrack: {fileID: -3378792728507138695}
m_EaseInDuration: 0.1
m_EaseOutDuration: 0.6
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 0
m_PreExtrapolationMode: 0
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 0
m_DisplayName: VolumeAsset
m_Markers:
m_Objects: []
m_Layer: 0
m_Priority: 0
--- !u!114 &-3117513502812618692
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cd3925730e7a59446932e9c8cba28ccf, type: 3}
m_Name: Volume Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: -7273616238501396146}
m_Duration: 1.3666666666666667
m_TimeScale: 1
m_ParentTrack: {fileID: -3117513502812618692}
m_EaseInDuration: 0.1
m_EaseOutDuration: 0.6
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 0
m_PreExtrapolationMode: 0
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 0
m_DisplayName: VolumeAsset
m_Markers:
m_Objects: []
m_Layer: 0
m_Priority: 0
--- !u!114 &-2955631063214815081
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cd3925730e7a59446932e9c8cba28ccf, type: 3}
m_Name: Volume Track (2)
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: -1361877534822022742}
m_Duration: 1.3666666666666667
m_TimeScale: 1
m_ParentTrack: {fileID: -2955631063214815081}
m_EaseInDuration: 0.1
m_EaseOutDuration: 0.6
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 0
m_PreExtrapolationMode: 0
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 0
m_DisplayName: VolumeAsset
m_Markers:
m_Objects: []
m_Layer: 0
m_Priority: 0
--- !u!114 &-1361877534822022742
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bcae7dc92d05e1e4094e0e448b670355, type: 3}
m_Name: VolumeAsset
m_EditorClassIdentifier:
m_Template:
Weight: 1
m_Volume: {fileID: 11400000, guid: 631b3200517e20440b88f28015fc3a5c, type: 2}
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3}
m_Name: "\u706B\u5C71\u5934\u75DB2"
m_EditorClassIdentifier:
m_Version: 0
m_Tracks:
- {fileID: -3117513502812618692}
- {fileID: -3378792728507138695}
- {fileID: -2955631063214815081}
- {fileID: 2112685405309563144}
m_FixedDuration: 0
m_EditorSettings:
m_Framerate: 60
m_ScenePreview: 1
m_DurationMode: 0
m_MarkerTrack: {fileID: 0}
--- !u!74 &1077202520131138910
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Recorded
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.13333334
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.8333333
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.1333333
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path:
classID: 212
script: {fileID: 0}
flags: 0
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1.1333333
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.13333334
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.8333333
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.1333333
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path:
classID: 212
script: {fileID: 0}
flags: 0
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []
--- !u!114 &2112685405309563144
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d21dcc2386d650c4597f3633c75a1f98, type: 3}
m_Name: Animation Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips: []
m_Markers:
m_Objects: []
m_InfiniteClipPreExtrapolation: 1
m_InfiniteClipPostExtrapolation: 1
m_InfiniteClipOffsetPosition: {x: 0, y: 0, z: 0}
m_InfiniteClipOffsetEulerAngles: {x: 0, y: 0, z: 0}
m_InfiniteClipTimeOffset: 0
m_InfiniteClipRemoveOffset: 0
m_InfiniteClipApplyFootIK: 1
mInfiniteClipLoop: 0
m_MatchTargetFields: 63
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_AvatarMask: {fileID: 0}
m_ApplyAvatarMask: 1
m_TrackOffset: 0
m_InfiniteClip: {fileID: 1077202520131138910}
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
m_ApplyOffsets: 0
--- !u!114 &7967868333749088964
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bcae7dc92d05e1e4094e0e448b670355, type: 3}
m_Name: VolumeAsset
m_EditorClassIdentifier:
m_Template:
Weight: 1
m_Volume: {fileID: 11400000, guid: 841479fd6ffe3ee40a88ee41bd395f09, type: 2}
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: af4651ca096e81d4d8bcf8b93a91b872
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -59,7 +59,7 @@ AnimatorStateMachine:
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 606848118606110807}
m_Position: {x: 340, y: 110, z: 0}
m_Position: {x: 200, y: 0, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: efd7db4410b73e3499580d0084463f16
guid: b51c643e2acc12549a81d17c232253a5
folderAsset: yes
DefaultImporter:
externalObjects: {}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 09d2581fcb827614bba6bf5c3279358e
guid: e274bde4016eca842be36e589f6285f6
folderAsset: yes
DefaultImporter:
externalObjects: {}
@@ -1,231 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7282877348262261630
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 030f85c3f73729f4f976f66ffb23b875, type: 3}
m_Name: Recorded
m_EditorClassIdentifier:
m_Clip: {fileID: -5154461728888953855}
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_UseTrackMatchFields: 1
m_MatchTargetFields: 63
m_RemoveStartOffset: 0
m_ApplyFootIK: 1
m_Loop: 0
m_Version: 1
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
--- !u!74 &-5154461728888953855
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Recorded
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- serializedVersion: 2
curve:
- time: 0
value: {fileID: 21300000, guid: fa6982b25ee84334a95f92811cae79ce, type: 3}
- time: 2
value: {fileID: 21300000, guid: cc9ae6de290b0b345853d7100d065749, type: 3}
- time: 4
value: {fileID: 21300000, guid: fa6982b25ee84334a95f92811cae79ce, type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
flags: 2
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping:
- {fileID: 21300000, guid: fa6982b25ee84334a95f92811cae79ce, type: 3}
- {fileID: 21300000, guid: cc9ae6de290b0b345853d7100d065749, type: 3}
- {fileID: 21300000, guid: fa6982b25ee84334a95f92811cae79ce, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 4.016667
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3}
m_Name: "\u65CB\u8F6C\u53F6\u67C4"
m_EditorClassIdentifier:
m_Version: 0
m_Tracks:
- {fileID: 6913286052231973111}
m_FixedDuration: 0
m_EditorSettings:
m_Framerate: 60
m_ScenePreview: 1
m_DurationMode: 0
m_MarkerTrack: {fileID: 0}
--- !u!114 &6913286052231973111
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d21dcc2386d650c4597f3633c75a1f98, type: 3}
m_Name: Animation Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: -7282877348262261630}
m_Duration: 4
m_TimeScale: 1
m_ParentTrack: {fileID: 6913286052231973111}
m_EaseInDuration: 0
m_EaseOutDuration: 0
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 1
m_PostExtrapolationMode: 1
m_PreExtrapolationMode: 1
m_PostExtrapolationTime: Infinity
m_PreExtrapolationTime: 0
m_DisplayName: Recorded
m_Markers:
m_Objects: []
m_InfiniteClipPreExtrapolation: 1
m_InfiniteClipPostExtrapolation: 1
m_InfiniteClipOffsetPosition: {x: 0, y: 0, z: 0}
m_InfiniteClipOffsetEulerAngles: {x: 0, y: 0, z: 0}
m_InfiniteClipTimeOffset: 0
m_InfiniteClipRemoveOffset: 0
m_InfiniteClipApplyFootIK: 1
mInfiniteClipLoop: 0
m_MatchTargetFields: 63
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_AvatarMask: {fileID: 0}
m_ApplyAvatarMask: 1
m_TrackOffset: 0
m_InfiniteClip: {fileID: 0}
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
m_ApplyOffsets: 0
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 253f47db959b2814998695fb5d1f4d97
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -1,22 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3}
m_Name: "\u98CE\u5439\u6811\u53F6"
m_EditorClassIdentifier:
m_Version: 0
m_Tracks: []
m_FixedDuration: 0
m_EditorSettings:
m_Framerate: 60
m_ScenePreview: 1
m_DurationMode: 0
m_MarkerTrack: {fileID: 0}
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 30d786a983bc55a4e844ce4b7d6d6fab
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -1,267 +0,0 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
using AibisDream;
using UnityEditor;
using UnityEditor.UIElements;
using UnityEngine;
using UnityEngine.UIElements;
namespace AibisDream.SystemEditor
{
public class ChapterGraphEditorWindow : EditorWindow
{
private ChapterGraphView _graphView;
private ChapterGraphInspector _inspector;
private IMGUIContainer _inspectorContainer;
private const string RootFolderPrefKey = "AibisDream.ChapterGraph.RootFolder";
private const string CurrentFolderPrefKey = "AibisDream.ChapterGraph.CurrentFolder";
private string _rootFolder;
private string _currentFolder;
private DropdownField _folderDropdown;
private readonly Dictionary<string, string> _displayToPath = new();
[MenuItem("Window/Chapter Graph Editor")]
public static void ShowWindow()
{
var window = GetWindow<ChapterGraphEditorWindow>("Chapter Graph Editor");
window.minSize = new Vector2(800, 600);
}
private void OnEnable()
{
if (_graphView == null) return;
_graphView.LoadGraph(_currentFolder);
}
private void OnDisable()
{
if (_graphView != null)
{
_graphView.OnNodeDeleted -= OnNodeDeleted;
}
if (_inspector != null)
{
_inspector.OnColorChanged -= OnNodeColorChanged;
_inspector.Destroy();
}
}
private void CreateGUI()
{
// 根容器:纵向排列
var root = rootVisualElement;
root.style.flexDirection = FlexDirection.Column;
// 顶部工具栏
var toolbar = new Toolbar();
toolbar.Add(CreateToolbarButton("Save", OnSaveClicked));
toolbar.Add(CreateToolbarButton("Auto Layout", OnAutoLayoutClicked));
toolbar.Add(CreateToolbarButton("Validate", OnValidateClicked));
_rootFolder = EditorPrefs.GetString(RootFolderPrefKey, "Assets/ScriptableObjects/SceneSO");
_folderDropdown = new DropdownField("路径");
_folderDropdown.style.width = 160;
_folderDropdown.style.marginLeft = 8;
_folderDropdown.style.marginRight = 4;
RefreshFolderChoices();
_folderDropdown.RegisterValueChangedCallback(OnFolderChanged);
toolbar.Add(_folderDropdown);
var setRootBtn = new Button(OnSetRootFolderClicked) { text = "..." };
setRootBtn.style.width = 28;
toolbar.Add(setRootBtn);
toolbar.Add(new ToolbarSpacer() { style = { flexGrow = 1 } });
toolbar.Add(CreateToolbarButton("Create Chapter", OnCreateChapterClicked));
root.Add(toolbar);
// 主内容区:横向分栏
var mainContainer = new VisualElement();
mainContainer.style.flexGrow = 1;
mainContainer.style.flexDirection = FlexDirection.Row;
mainContainer.style.overflow = Overflow.Hidden;
// 左侧 Inspector 面板
var leftPanel = new VisualElement();
leftPanel.style.width = 320;
leftPanel.style.minWidth = 200;
leftPanel.style.maxWidth = 500;
leftPanel.style.flexShrink = 0;
leftPanel.style.flexDirection = FlexDirection.Column;
leftPanel.style.borderRightWidth = 1;
leftPanel.style.borderRightColor = new StyleColor(new Color(0.15f, 0.15f, 0.15f));
// Inspector 标题
var header = new Label("章节属性")
{
style =
{
unityFontStyleAndWeight = FontStyle.Bold,
fontSize = 14,
paddingTop = 8,
paddingBottom = 8,
paddingLeft = 12,
paddingRight = 12,
borderBottomWidth = 1,
borderBottomColor = new StyleColor(new Color(0.15f, 0.15f, 0.15f))
}
};
leftPanel.Add(header);
// IMGUI Inspector
_inspector = new ChapterGraphInspector();
_inspectorContainer = new IMGUIContainer(() => _inspector.OnGUI());
_inspectorContainer.style.flexGrow = 1;
leftPanel.Add(_inspectorContainer);
mainContainer.Add(leftPanel);
// 拖拽条
var resizer = new VisualElement();
resizer.style.width = 5;
resizer.style.backgroundColor = new StyleColor(new Color(0.15f, 0.15f, 0.15f));
mainContainer.Add(resizer);
float startWidth = 0;
float startMouseX = 0;
resizer.RegisterCallback<MouseDownEvent>(evt =>
{
startWidth = leftPanel.resolvedStyle.width;
startMouseX = evt.mousePosition.x;
resizer.CaptureMouse();
evt.StopPropagation();
});
resizer.RegisterCallback<MouseMoveEvent>(evt =>
{
if (!resizer.HasMouseCapture()) return;
var delta = evt.mousePosition.x - startMouseX;
var newWidth = Mathf.Clamp(startWidth + delta, 200, 600);
leftPanel.style.width = newWidth;
});
resizer.RegisterCallback<MouseUpEvent>(evt =>
{
if (resizer.HasMouseCapture())
resizer.ReleaseMouse();
});
// 右侧 GraphView
_graphView = new ChapterGraphView();
_graphView.style.flexGrow = 1;
mainContainer.Add(_graphView);
root.Add(mainContainer);
// 加载图数据
_graphView.LoadGraph(_currentFolder);
// 选中节点同步到 Inspector
_graphView.OnNodeSelected += OnNodeSelected;
_graphView.OnNodeDeleted += OnNodeDeleted;
_inspector.OnColorChanged += OnNodeColorChanged;
}
private void OnNodeDeleted(TalkSceneSO so)
{
_inspector?.SetTarget(null);
_inspectorContainer?.MarkDirtyRepaint();
}
private void OnNodeColorChanged(TalkSceneSO so)
{
_graphView?.UpdateNodeColor(so);
}
private Button CreateToolbarButton(string text, System.Action onClick)
{
var btn = new Button(onClick) { text = text };
return btn;
}
private void OnSaveClicked()
{
AssetDatabase.SaveAssets();
EditorUtility.DisplayDialog("保存", "所有资源已保存。", "确定");
}
private void OnAutoLayoutClicked()
{
_graphView?.AutoLayout();
}
private void OnValidateClicked()
{
_graphView?.ValidateGraph();
}
private void OnCreateChapterClicked()
{
var center = new Vector2(position.width / 2f, position.height / 2f);
var localPos = _graphView.contentViewContainer.WorldToLocal(center);
var defaultFolder = _currentFolder ?? EditorPrefs.GetString(ChapterGraphView.DefaultFolderPrefKey, _rootFolder);
_graphView?.CreateChapterNodeAt(localPos, defaultFolder);
}
private void OnNodeSelected(TalkSceneSO so)
{
_inspector?.SetTarget(so);
_inspectorContainer?.MarkDirtyRepaint();
}
private void RefreshFolderChoices()
{
_displayToPath.Clear();
_displayToPath["All"] = null;
var subFolders = AssetDatabase.GetSubFolders(_rootFolder);
foreach (var folder in subFolders)
{
var name = Path.GetFileName(folder);
_displayToPath[name] = folder;
}
var rootHasSO = AssetDatabase.FindAssets("t:TalkSceneSO", new[] { _rootFolder })
.Select(g => AssetDatabase.GUIDToAssetPath(g))
.Any(path => Path.GetDirectoryName(path)?.Replace('\\', '/') == _rootFolder);
if (rootHasSO)
{
_displayToPath["(Root)"] = _rootFolder;
}
_folderDropdown.choices = _displayToPath.Keys.ToList();
var saved = EditorPrefs.GetString(CurrentFolderPrefKey, "All");
_folderDropdown.value = _displayToPath.ContainsKey(saved) ? saved : "All";
_currentFolder = _displayToPath.TryGetValue(_folderDropdown.value, out var path) ? path : null;
}
private void OnFolderChanged(ChangeEvent<string> evt)
{
_currentFolder = _displayToPath.TryGetValue(evt.newValue, out var path) ? path : null;
EditorPrefs.SetString(CurrentFolderPrefKey, evt.newValue);
_graphView?.LoadGraph(_currentFolder);
}
private void OnSetRootFolderClicked()
{
var path = EditorUtility.OpenFolderPanel("选择章节根目录", _rootFolder, "");
if (string.IsNullOrEmpty(path)) return;
var absoluteRoot = Application.dataPath.Replace('\\', '/');
var selected = path.Replace('\\', '/');
if (!selected.StartsWith(absoluteRoot))
{
EditorUtility.DisplayDialog("错误", "请选择项目 Assets 目录内的文件夹。", "确定");
return;
}
_rootFolder = "Assets" + selected.Substring(absoluteRoot.Length);
EditorPrefs.SetString(RootFolderPrefKey, _rootFolder);
RefreshFolderChoices();
_graphView?.LoadGraph(_currentFolder);
}
}
}
@@ -1,70 +0,0 @@
using AibisDream;
using UnityEditor;
using UnityEngine;
namespace AibisDream.SystemEditor
{
public class ChapterGraphInspector
{
private Editor _editor;
private TalkSceneSO _target;
private Vector2 _scrollPosition;
public event System.Action<TalkSceneSO> OnColorChanged;
public void SetTarget(TalkSceneSO so)
{
// 不能用 ==,Unity 重载了 ==,已销毁的对象 == null 为 true
if (ReferenceEquals(_target, so)) return;
_target = so;
if (_editor != null)
{
Object.DestroyImmediate(_editor);
_editor = null;
}
if (so != null)
{
_editor = Editor.CreateEditor(so);
}
}
public void OnGUI()
{
if (_editor == null)
{
EditorGUILayout.HelpBox("请在图中选中一个章节节点以编辑属性", MessageType.Info);
return;
}
_scrollPosition = EditorGUILayout.BeginScrollView(_scrollPosition);
EditorGUI.BeginChangeCheck();
var newColor = EditorGUILayout.ColorField("节点颜色", _target.nodeColor);
if (EditorGUI.EndChangeCheck())
{
Undo.RecordObject(_target, "Change Node Color");
_target.nodeColor = newColor;
EditorUtility.SetDirty(_target);
OnColorChanged?.Invoke(_target);
}
EditorGUILayout.Space(6);
_editor.OnInspectorGUI();
EditorGUILayout.EndScrollView();
}
public void Destroy()
{
if (_editor != null)
{
Object.DestroyImmediate(_editor);
_editor = null;
}
_target = null;
}
}
}
@@ -1,503 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using AibisDream;
using UnityEditor;
using UnityEditor.Experimental.GraphView;
using UnityEngine;
using UnityEngine.UIElements;
namespace AibisDream.SystemEditor
{
public class ChapterGraphView : GraphView
{
public event Action<TalkSceneSO> OnNodeSelected;
public event Action<TalkSceneSO> OnNodeDeleted;
private const float HorizontalSpacing = 420f;
private const float VerticalSpacing = 220f;
public const string DefaultFolderPrefKey = "AibisDream.ChapterGraph.DefaultFolder";
public const string DefaultFolder = "Assets/ScriptableObjects/SceneSO";
public ChapterGraphView()
{
style.flexGrow = 1;
SetupZoom(ContentZoomer.DefaultMinScale, ContentZoomer.DefaultMaxScale);
this.AddManipulator(new ContentDragger());
this.AddManipulator(new SelectionDragger());
this.AddManipulator(new RectangleSelector());
var grid = new GridBackground();
Insert(0, grid);
grid.StretchToParentSize();
graphViewChanged += OnGraphViewChanged;
}
public void UpdateNodeColor(TalkSceneSO so)
{
foreach (var node in graphElements.OfType<ChapterNode>())
{
if (node.SceneSo == so)
{
node.UpdateColor();
break;
}
}
}
public void LoadGraph(string folderPath = null)
{
ClearGraph();
var guids = AssetDatabase.FindAssets("t:TalkSceneSO", folderPath != null ? new[] { folderPath } : null);
var allSos = guids.Select(g => AssetDatabase.LoadAssetAtPath<TalkSceneSO>(AssetDatabase.GUIDToAssetPath(g))).Where(so => so != null).ToList();
var nodeMap = new Dictionary<TalkSceneSO, ChapterNode>();
// 创建节点
foreach (var so in allSos)
{
var node = new ChapterNode(so);
AddElement(node);
nodeMap[so] = node;
}
// 创建连线
foreach (var so in allSos)
{
if (so.exits == null) continue;
if (!nodeMap.TryGetValue(so, out var sourceNode)) continue;
for (int i = 0; i < so.exits.Count; i++)
{
var exit = so.exits[i];
if (exit == null || exit.targetScene == null) continue;
if (!nodeMap.TryGetValue(exit.targetScene, out var targetNode)) continue;
var outputPort = sourceNode.GetOutputPort(i);
var inputPort = targetNode.InputPort;
if (outputPort == null || inputPort == null) continue;
var edge = new Edge
{
output = outputPort,
input = inputPort
};
edge.output.Connect(edge);
edge.input.Connect(edge);
AddElement(edge);
}
}
}
public void ClearGraph()
{
// 清除所有元素
var elementsToRemove = graphElements.ToList();
foreach (var element in elementsToRemove)
{
RemoveElement(element);
}
}
public override void BuildContextualMenu(ContextualMenuPopulateEvent evt)
{
base.BuildContextualMenu(evt);
if (evt.target is GraphView)
{
var mousePosition = contentViewContainer.WorldToLocal(evt.mousePosition);
evt.menu.AppendAction("添加章节节点", (_) => CreateChapterNodeAt(mousePosition));
}
}
public override List<Port> GetCompatiblePorts(Port startPort, NodeAdapter nodeAdapter)
{
var compatiblePorts = new List<Port>();
var startNode = startPort.node as ChapterNode;
if (startNode == null) return compatiblePorts;
ports.ForEach(port =>
{
var targetNode = port.node as ChapterNode;
if (targetNode == null) return;
if (targetNode == startNode) return;
if (startPort.direction == port.direction) return;
if (startPort.node == port.node) return;
compatiblePorts.Add(port);
});
return compatiblePorts;
}
private GraphViewChange OnGraphViewChanged(GraphViewChange change)
{
// 先处理节点删除确认:用户取消则从移除列表中剔除
if (change.elementsToRemove != null)
{
var nodesToRemove = change.elementsToRemove.OfType<ChapterNode>().ToList();
foreach (var node in nodesToRemove)
{
if (!ConfirmRemoveNode(node))
{
change.elementsToRemove.Remove(node);
// 同时保留与该节点相连的边,避免边被单独删掉
var edgesToKeep = change.elementsToRemove.OfType<Edge>()
.Where(e => e.output?.node == node || e.input?.node == node)
.ToList();
foreach (var edge in edgesToKeep)
{
change.elementsToRemove.Remove(edge);
}
}
}
}
// 处理 Edge 删除
if (change.elementsToRemove != null)
{
foreach (var edge in change.elementsToRemove.OfType<Edge>())
{
HandleEdgeRemoved(edge);
}
foreach (var node in change.elementsToRemove.OfType<ChapterNode>())
{
HandleNodeRemoved(node);
}
}
// 处理 Edge 创建
if (change.edgesToCreate != null)
{
foreach (var edge in change.edgesToCreate)
{
HandleEdgeCreated(edge);
}
}
// 处理节点移动
if (change.movedElements != null)
{
foreach (var element in change.movedElements)
{
if (element is ChapterNode node)
{
node.SyncPositionToSo();
}
}
}
return change;
}
private void HandleEdgeCreated(Edge edge)
{
if (!(edge.output?.node is ChapterNode sourceNode)) return;
if (!(edge.input?.node is ChapterNode targetNode)) return;
var sourceSo = sourceNode.SceneSo;
var targetSo = targetNode.SceneSo;
if (sourceSo == null || targetSo == null) return;
int exitIndex = edge.output.userData is int idx ? idx : -1;
if (exitIndex < 0 || exitIndex >= sourceSo.exits.Count) return;
Undo.RecordObject(sourceSo, "Connect Chapter");
sourceSo.exits[exitIndex].targetScene = targetSo;
EditorUtility.SetDirty(sourceSo);
}
private void HandleEdgeRemoved(Edge edge)
{
if (!(edge.output?.node is ChapterNode sourceNode)) return;
var sourceSo = sourceNode.SceneSo;
if (sourceSo == null) return;
int exitIndex = edge.output.userData is int idx ? idx : -1;
if (exitIndex < 0 || exitIndex >= sourceSo.exits.Count) return;
Undo.RecordObject(sourceSo, "Disconnect Chapter");
sourceSo.exits[exitIndex].targetScene = null;
EditorUtility.SetDirty(sourceSo);
}
private bool ConfirmRemoveNode(ChapterNode node)
{
var so = node.SceneSo;
if (so == null) return true;
var referrers = new List<string>();
foreach (var other in graphElements.OfType<ChapterNode>())
{
if (other == node) continue;
if (other.SceneSo == null || other.SceneSo.exits == null) continue;
foreach (var exit in other.SceneSo.exits)
{
if (exit.targetScene == so)
{
referrers.Add(string.IsNullOrEmpty(other.SceneSo.title) ? other.SceneSo.name : other.SceneSo.title);
break;
}
}
}
var name = string.IsNullOrEmpty(so.title) ? so.name : so.title;
var msg = $"确定要删除章节节点 \"{name}\" 吗?";
if (referrers.Count > 0)
{
msg += $"\n\n以下节点仍引用该节点:\n• {string.Join("\n ", referrers)}";
}
return EditorUtility.DisplayDialog("删除确认", msg, "删除", "取消");
}
private void HandleNodeRemoved(ChapterNode node)
{
var so = node.SceneSo;
if (so == null) return;
var path = AssetDatabase.GetAssetPath(so);
if (!string.IsNullOrEmpty(path))
{
AssetDatabase.DeleteAsset(path);
}
OnNodeDeleted?.Invoke(so);
}
public override void AddToSelection(ISelectable selectable)
{
base.AddToSelection(selectable);
NotifySelectionChanged();
}
public override void RemoveFromSelection(ISelectable selectable)
{
base.RemoveFromSelection(selectable);
NotifySelectionChanged();
}
public override void ClearSelection()
{
base.ClearSelection();
NotifySelectionChanged();
}
private void NotifySelectionChanged()
{
var selectedNode = selection.OfType<ChapterNode>().FirstOrDefault();
OnNodeSelected?.Invoke(selectedNode?.SceneSo);
}
public void CreateChapterNodeAt(Vector2 position, string defaultFolder = null)
{
var folder = defaultFolder ?? EditorPrefs.GetString(DefaultFolderPrefKey, DefaultFolder);
var path = EditorUtility.SaveFilePanelInProject("新建章节", "NewChapter", "asset", "选择新章节的保存位置", folder);
if (string.IsNullOrEmpty(path)) return;
var so = ScriptableObject.CreateInstance<TalkSceneSO>();
so.name = System.IO.Path.GetFileNameWithoutExtension(path);
so.title = "新章节";
so.nodeColor = new Color(0.85f, 0.45f, 0.45f);
so.graphPosition = position;
so.exits = new System.Collections.Generic.List<SceneExit>();
AssetDatabase.CreateAsset(so, path);
EditorUtility.SetDirty(so);
AssetDatabase.SaveAssets();
// 记住文件夹
var savedFolder = System.IO.Path.GetDirectoryName(path)?.Replace('\\', '/');
if (!string.IsNullOrEmpty(savedFolder))
{
EditorPrefs.SetString(DefaultFolderPrefKey, savedFolder);
}
var node = new ChapterNode(so);
AddElement(node);
}
public void AutoLayout()
{
var nodes = graphElements.OfType<ChapterNode>().ToList();
if (nodes.Count == 0) return;
// 计算入度
var inDegree = nodes.ToDictionary(n => n, _ => 0);
var edges = graphElements.OfType<Edge>().ToList();
foreach (var edge in edges)
{
if (edge.input?.node is ChapterNode target && inDegree.ContainsKey(target))
{
inDegree[target]++;
}
}
// 分层 BFS
var layer = new Dictionary<ChapterNode, int>();
var queue = new Queue<ChapterNode>();
// 入度为 0 的节点作为起点
foreach (var node in nodes)
{
if (inDegree[node] == 0)
{
layer[node] = 0;
queue.Enqueue(node);
}
}
// 如果没有入度为 0 的节点(纯循环),任选一个作为起点
if (queue.Count == 0)
{
layer[nodes[0]] = 0;
queue.Enqueue(nodes[0]);
}
while (queue.Count > 0)
{
var current = queue.Dequeue();
var currentLayer = layer[current];
foreach (var edge in edges)
{
if (edge.output?.node == current && edge.input?.node is ChapterNode next)
{
if (!layer.ContainsKey(next))
{
layer[next] = currentLayer + 1;
queue.Enqueue(next);
}
else
{
layer[next] = Math.Max(layer[next], currentLayer + 1);
}
}
}
}
// 为未分配层级的节点(孤立或不连通部分)分配层级
foreach (var node in nodes)
{
if (!layer.ContainsKey(node))
{
layer[node] = 0;
}
}
// 按层级分组并计算位置
var groups = layer.GroupBy(kvp => kvp.Value).OrderBy(g => g.Key).ToList();
Undo.RecordObjects(nodes.Select(n => n.SceneSo).ToArray(), "Auto Layout");
for (int i = 0; i < groups.Count; i++)
{
var group = groups[i];
var groupNodes = group.ToList();
float x = group.Key * HorizontalSpacing;
float startY = -(groupNodes.Count - 1) * VerticalSpacing / 2f;
for (int j = 0; j < groupNodes.Count; j++)
{
var node = groupNodes[j].Key;
var y = startY + j * VerticalSpacing;
var newPos = new Vector2(x, y);
node.SetPosition(new Rect(newPos, Vector2.zero));
node.SceneSo.graphPosition = newPos;
EditorUtility.SetDirty(node.SceneSo);
}
}
}
public void ValidateGraph()
{
var nodes = graphElements.OfType<ChapterNode>().ToList();
var issues = new List<string>();
var soSet = new HashSet<TalkSceneSO>(nodes.Select(n => n.SceneSo));
// 孤立节点
foreach (var node in nodes)
{
var so = node.SceneSo;
bool hasIncoming = graphElements.OfType<Edge>().Any(e => e.input?.node == node);
bool hasOutgoing = so.exits != null && so.exits.Any(e => e.targetScene != null);
if (!hasIncoming && !hasOutgoing)
{
issues.Add($"孤立节点: {so.name} (没有入边也没有出边)");
}
}
// 循环引用 (DFS)
var visited = new HashSet<TalkSceneSO>();
var visiting = new HashSet<TalkSceneSO>();
foreach (var so in soSet)
{
if (!visited.Contains(so))
{
CheckCycle(so, visited, visiting, soSet, issues);
}
}
// 空 exitName
foreach (var node in nodes)
{
var so = node.SceneSo;
if (so.exits == null) continue;
for (int i = 0; i < so.exits.Count; i++)
{
if (string.IsNullOrEmpty(so.exits[i].exitName))
{
issues.Add($"空 exitName: {so.name} 的第 {i + 1} 个出口");
}
}
}
if (issues.Count == 0)
{
EditorUtility.DisplayDialog("验证结果", "图表验证通过,未发现问题。", "确定");
}
else
{
var msg = string.Join("\n", issues.Take(20));
if (issues.Count > 20)
{
msg += $"\n... 还有 {issues.Count - 20} 个问题";
}
EditorUtility.DisplayDialog($"验证发现 {issues.Count} 个问题", msg, "确定");
}
}
private void CheckCycle(TalkSceneSO current, HashSet<TalkSceneSO> visited, HashSet<TalkSceneSO> visiting, HashSet<TalkSceneSO> soSet, List<string> issues)
{
visited.Add(current);
visiting.Add(current);
if (current.exits != null)
{
foreach (var exit in current.exits)
{
var next = exit.targetScene;
if (next == null || !soSet.Contains(next)) continue;
if (visiting.Contains(next))
{
issues.Add($"循环引用: {current.name} -> {next.name}");
continue;
}
if (!visited.Contains(next))
{
CheckCycle(next, visited, visiting, soSet, issues);
}
}
}
visiting.Remove(current);
}
}
}

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