Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f7caeb308 |
@@ -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`,设短 duration(0.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
|
||||
|
||||
@@ -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
@@ -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:
|
||||
|
||||
-31
@@ -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
-1
@@ -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:
|
||||
|
||||
+199
-1
@@ -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:
|
||||
|
||||
+199
-1
@@ -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:
|
||||
|
||||
-37
@@ -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:
|
||||
|
||||
-45
@@ -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
|
||||
-16
@@ -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
|
||||
+1
-1
@@ -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
-1
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fa74e99b946159549971be154369b2cb
|
||||
guid: 895c7c97ef5802446a395377ef704940
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
|
||||
+1
-1
@@ -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
-1
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8e1cbbf76f0150145a39ce648fbf3985
|
||||
guid: 8004f70cd10ce4a439cb9e822bb078c2
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
|
||||
-45
@@ -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
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7df396a6b5136fe4e9d2d659731161d2
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
-16
@@ -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
|
||||
-8
@@ -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:
|
||||
+1
-1
@@ -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
Reference in New Issue
Block a user