Compare commits

..
Author SHA1 Message Date
bottlefish 0f7caeb308 修复 2026-04-02 12:05:16 +08:00
945 changed files with 48728 additions and 111863 deletions
-17
View File
@@ -1,17 +0,0 @@
# Yarn 插线维修对话 — 快速审查
`FP_Huoshan1` 或同类 **BodyModule 插线 + `$gameStage` 多阶段**`.yarn` 做一轮检查。
## 用法
在对话里说明「按 yarn-plug-review 审查某文件/目录」或直接粘贴节点片段。
## 审查项(简版)
1. **跳转条件**:会 `jump` 结束/换阶段的块是否带 `$gameStage==…`,避免后期变量仍为 true 时回退阶段。
2. **重复插线**:同一 stage、同一模块第二次插线是否为短总结 + 下一步提示,而非全长对白与重复 `complete_task`
3. **TaskToDo**`TaskToDo--` 是否与「首次完成」绑定(如 `$speakerFinalOK` / `$saleFinalOK`),避免重复递减。
4. **无序插线**:是否已去掉「分支外无条件 set 完成标记」导致跳剧情。
5. **EventNode**`*PlugIn` 名称与 `moduleName`、目标 `title:` 一致。
完整说明与模式见:`.cursor/skills/yarn-plug-in-flow/SKILL.md`
@@ -1,356 +0,0 @@
---
name: 塔罗牌小游戏实现
overview: 基于 Sprite + EventTriggerEx 实现塔罗牌小游戏,Yarn 命令细粒度控制每个阶段(展示牌堆、展开、等待选牌、翻牌、设置朝向),与对话深度配合。
todos:
- id: tarot-card
content: 创建 TarotCard.cs -- 单张牌组件:IInteraction、SpriteRenderer 正反面、EventTriggerEx 注册、翻牌动画、朝向控制(正/倒)、悬停/点击回调
status: completed
- id: tarot-deck
content: 创建 TarotDeck.cs -- 牌堆管理:动态生成牌、扇形展开布局、悬停推出效果、选牌流程(FadeOut + 居中检视)
status: completed
- id: tarot-manager
content: 创建 TarotManager.cs -- 系统管理器:SystemDic 注册、视图开关、阶段状态机、选牌结果
status: completed
- id: tarot-yarn
content: 创建 TarotYarnCommand.cs -- 细粒度 Yarn 命令集(show/spread/wait_select/flip/set_orientation/rotate/hide
status: completed
isProject: false
---
# 塔罗牌小游戏实现计划
## 设计目标
Yarn 脚本能**细粒度控制**塔罗牌的每个视觉阶段,每个命令之间可以穿插对话,实现对话与交互的深度配合。
## Yarn 脚本示例(对应 FP_Day1_night 第 364-395 行的改造)
```yarn
ql: 我觉得也许你需要这个。
<<show_tarot_deck>>
【它拿出一套崭新的卡牌。】
me: 这是什么?
ql: "塔罗牌"。
ql: 试试吧。抽一张。
<<spread_tarot 5>>
-> 抽牌
<<wait_tarot_select>>
【你看了看牌。】
<<flip_tarot "inverted">>
// 翻到正面,但预设为倒置朝向(inverted)
【上面画着一个张开双臂的机体...像是...在把它吸过去。】
me: 这画的是什么?
ql: 倒吊人。你拿反了。
<<rotate_tarot "normal">>
// Yarn 命令改变朝向:倒置 -> 正向(旋转 180 度动画)
【你把牌转过来。】
【这下你看明白了。这是一个倒吊着的机体...】
// ...更多对话...
<<hide_tarot>>
```
## 架构概览
```mermaid
flowchart TD
Yarn["Yarn 脚本"] -->|"<<show_tarot_deck>>"| CMD["TarotYarnCommand\n(静态 Yarn 命令类)"]
Yarn -->|"<<spread_tarot 5>>"| CMD
Yarn -->|"<<wait_tarot_select>>"| CMD
Yarn -->|"<<flip_tarot inverted>>"| CMD
Yarn -->|"<<rotate_tarot normal>>"| CMD
Yarn -->|"<<hide_tarot>>"| CMD
CMD --> TM["TarotManager\n(SystemDic 注册)"]
TM --> TD["TarotDeck\n牌堆/扇形/选牌"]
TD --> TC["TarotCard x N\nSprite + EventTriggerEx"]
TC -->|IInteraction| ES["EventSystemEx"]
```
## 新增文件结构
```
Assets/Scripts/MiniGame/Tarot/
TarotManager.cs -- 管理器:SystemDic 注册、视图开关、阶段协调
TarotCard.cs -- 单张牌:IInteraction + 翻牌 + 朝向
TarotDeck.cs -- 牌堆逻辑:生成、展开、悬停、选牌
TarotYarnCommand.cs -- 细粒度 Yarn 命令集
```
## 核心设计
### 1. TarotCard -- 单张牌
参考 [KnobController](Assets/Scripts/MiniGame/HuoShan/SalesSystem/KnobController.cs) 的 EventTriggerEx 注册模式(行 165-199)。
- 实现 `IInteraction` 接口(`IsActive`, `IsAvailable`, `GetGameObject()`
- 需要 `Collider2D`BoxCollider2D,牌面大小)
- `SpriteRenderer` + 两个 Sprite 引用:`frontSprite` / `backSprite`
**朝向系统(Orientation**
- 枚举 `TarotOrientation { Normal, Inverted }`
- `Normal`:正面朝上(localScale.y = 1
- `Inverted`:倒置(localScale.y = -1,即上下颠倒)
- `SetOrientation(orientation, animated)` 方法,animated 时用 DOTween 做 Y 轴 scale 过渡
**翻牌动画**
- `Flip(targetOrientation, duration)` 协程
- DOTween 缩放 localScale.x: 1 -> 0(前半),切换 Sprite,再 0 -> 1(后半)
- 翻牌完成时根据 `targetOrientation` 设置 localScale.y
**交互注册**Awake):
- 获取/添加 `EventTriggerEx`
- `EnsureEventTriggerEntries()` 确保 PointerEnter/PointerExit/PointerClick 条目
- `Register(PointerEnter, OnHoverEnter)` / `Register(PointerExit, OnHoverExit)` / `Register(PointerClick, OnClick)`
- 回调通过 `System.Action` 委托给 `TarotDeck`
**状态**
- `bool IsFaceUp` -- 当前是否正面朝上
- `TarotOrientation Orientation` -- 当前朝向
- `bool IsInteractable` -- 是否接受交互(由 Deck 控制)
### 2. TarotDeck -- 牌堆管理
**动态生成**
- `Setup(int cardCount, Sprite front, Sprite back)` -- 创建 N 个 TarotCard 子物体
- 每张牌初始背面朝上,叠在一起(牌堆状态)
**扇形展开**
- `SpreadCards(float duration)` 协程
- 配置项:`fanAngleRange`(扇形总角度,如 120 度)、`fanRadius`(扇形半径)
- 每张牌的目标角度:`centerAngle + (i - (count-1)/2f) * angleStep`
- 每张牌的目标位置:以旋转角度沿圆弧分布
- DOTween `DOLocalMove` + `DOLocalRotate` 同步动画
**悬停推出**
- 牌注册的 `OnHoverEnter` -> 沿牌面法线方向(局部 Y 轴上方)推出一段距离
- `OnHoverExit` -> 回到扇形位置
- 用 DOTween `DOLocalMove`,设短 duration0.15s
**选牌**
- `OnCardClicked(TarotCard card)` -- 锁定交互,触发选牌序列
- 其余牌 `SpriteRenderer.DOFade(0, 0.3f)` 渐隐
- 选中牌移至检视位置(屏幕中央偏上),放大到检视尺寸
- 设置 `_selectedCard`,通知 Manager 选牌完成
**检视位置**
- `[SerializeField] Transform inspectPosition` -- 检视锚点
- `[SerializeField] float inspectScale` -- 检视缩放
### 3. TarotManager -- 管理器
- `Start()``FixSystemCenter.SystemDic.Register(this)`
- 持有 `TarotDeck` 引用(`GetComponentInChildren`
- 状态标记:`_isWaitingForSelection`(是否在等待玩家选牌)、`_isCardSelected`
- `OpenView()` / `CloseView()` 控制根 GameObject 显隐
- `WaitForSelection()` 协程 -- while 循环等待 `_isCardSelected`,供 YarnCommand 使用
- `SelectedCard` 属性 -- 获取当前选中的牌
### 4. TarotYarnCommand -- 细粒度 Yarn 命令集
所有命令通过 `FixSystemCenter.SystemDic.Get<TarotManager>()` 获取 Manager 实例。
| Yarn 命令 | 方法签名 | 说明 |
| ----------------------------------------- | ------------------------------------------------------ | --------------------------------------------------------------------- |
| `<<show_tarot_deck>>` | `ShowTarotDeck(int count = 5)` | 显示牌堆(叠放状态),可指定牌数 |
| `<<spread_tarot>>``<<spread_tarot 5>>` | `IEnumerator SpreadTarot(int count = -1)` | 扇形展开,count=-1 用已有牌数;协程等待展开动画完成 |
| `<<wait_tarot_select>>` | `IEnumerator WaitTarotSelect()` | 阻塞 Yarn 直到玩家点击选中一张牌;选中后执行选牌动画(其余牌淡出、选中牌居中);结果写入 `$tarotSelectedIndex` |
| `<<flip_tarot "normal">>` | `IEnumerator FlipTarot(string orientation = "normal")` | 翻牌到正面,同时设置朝向;`"normal"` = 正向,`"inverted"` = 倒置 |
| `<<rotate_tarot "normal">>` | `IEnumerator RotateTarot(string orientation)` | 改变已翻开牌的朝向(旋转动画),不翻面 |
| `<<hide_tarot>>` | `IEnumerator HideTarot()` | 淡出并隐藏所有塔罗元素 |
### 5. 完整交互流程
```mermaid
stateDiagram-v2
[*] --> DeckVisible: show_tarot_deck
DeckVisible --> DeckVisible: 对话继续\n(牌堆静态展示)
DeckVisible --> FanOut: spread_tarot
FanOut --> WaitSelect: wait_tarot_select
WaitSelect --> WaitSelect: hover 推出/回位
WaitSelect --> Selected: 玩家点击选牌
Selected --> InspectBack: 其余牌淡出\n选中牌居中(背面)
InspectBack --> InspectBack: 对话继续\n(背面检视)
InspectBack --> InspectFront: flip_tarot\n(预设朝向)
InspectFront --> InspectFront: 对话继续
InspectFront --> InspectRotated: rotate_tarot\n(改变朝向)
InspectRotated --> InspectRotated: 对话继续
InspectRotated --> [*]: hide_tarot
InspectFront --> [*]: hide_tarot
```
关键:每个状态之间 Yarn 对话可以自由穿插,命令只推进视觉阶段,不阻塞对话本身(除了 `wait_tarot_select` 是阻塞等待玩家交互)。
### 6. Sprite 资源
当前使用 `Assets/RawResources/Art/CG/塔罗牌/塔罗牌正面.png``塔罗牌背面.png`,所有牌共用同一对正反面。后续可扩展为每张牌不同正面。
## 场景配置
### 层级结构
```
TarotSystem -- 空 GameObject,放在需要的场景中
├── TarotManager (Component) -- 管理器脚本
├── TarotView -- 视图容器(OpenView/CloseView 控制这个)
│ ├── TarotDeck (Component) -- 牌堆逻辑脚本
│ │ └── [运行时动态生成的牌] -- TarotCard x N
│ │
│ └── InspectAnchor -- 检视锚点(空物体,标记牌选中后居中的位置)
│ (Transform 位置设在画面中央偏上)
└── (可选) Cinemachine Camera -- 如果塔罗需要独立相机视角
```
### 需要手动配置的部分
**1. TarotSystem 根物体**
- 放在对应场景中(如 Day1_night 所在场景)
- 位置在世界空间中合适的地方(与当前相机视角对齐)
**2. TarotManager 组件(Inspector 面板)**
```
[Header("视图")]
TarotView -- 拖入 TarotView 子物体(或自动 Find
[Header("牌面素材")]
FrontSprite -- 拖入 塔罗牌正面 Sprite
BackSprite -- 拖入 塔罗牌背面 Sprite
[Header("牌 Prefab")]
CardPrefab -- 拖入预制的单张牌 Prefab(见下方)
```
**3. 单张牌 Prefab(预制体)**
需要提前制作一个 Prefab,结构如下:
```
TarotCard (Prefab)
Components:
- SpriteRenderer (默认 sprite = 背面,sortingOrder 按需)
- BoxCollider2D (Size 匹配牌面大小,用于点击/悬停检测)
- EventTriggerEx (Inspector 中添加 3 个 Trigger 条目:
PointerEnter, PointerExit, PointerClick)
- TarotCard.cs (脚本自动注册事件)
```
EventTriggerEx 的 Inspector 配置要点:
- 点击 "Add New Event Type"
- 分别添加 `PointerEnter``PointerExit``PointerClick` 三个条目
- 回调列表留空(代码中 `Register` 动态绑定)
> 这与 KnobController 的模式一致:EventTriggerEx 需要 Inspector 中预配好条目,代码中 `TryGetTriggerEvent` 才能找到对应的 callback list。代码中也会 `EnsureEventTriggerEntries()` 作为保底自动添加。
**4. TarotDeck 组件(Inspector 面板)**
```
[Header("扇形展开参数")]
FanAngleRange = 120 -- 扇形总角度(度)
FanRadius = 3.0 -- 扇形半径(世界单位)
FanCenter = (0,0,0) -- 扇形圆心偏移
[Header("悬停")]
HoverOffset = 0.5 -- 悬停推出距离
HoverDuration = 0.15 -- 悬停动画时长
[Header("检视")]
InspectAnchor -- 拖入 InspectAnchor 子物体
InspectScale = 1.5 -- 检视模式缩放倍数
[Header("动画时长")]
SpreadDuration = 0.6 -- 展开动画时长
FadeOutDuration = 0.3 -- 未选中牌淡出时长
MoveToInspectDuration = 0.4 -- 选中牌移至检视位置时长
```
### 运行时流程
```mermaid
sequenceDiagram
participant Y as Yarn
participant M as TarotManager
participant D as TarotDeck
participant C as TarotCard
Y->>M: show_tarot_deck(5)
M->>M: OpenView()
M->>D: Setup(5, frontSprite, backSprite)
D->>D: Instantiate CardPrefab x 5
D->>C: 初始化 (背面, 叠放)
Note over Y: 对话继续...
Y->>D: spread_tarot
D->>C: DOTween 扇形展开动画
Note over Y: 对话继续...
Y->>M: wait_tarot_select (阻塞)
Note over C: 玩家悬停/点击
C-->>D: OnCardClicked
D->>D: 其余牌淡出, 选中牌居中
D-->>M: 选牌完成
M-->>Y: 协程返回
Note over Y: 对话继续...
Y->>M: flip_tarot("inverted")
M->>C: Flip(inverted)
C->>C: X轴缩放动画 + 切换Sprite + Y轴倒置
Note over Y: 对话: "你拿反了"
Y->>M: rotate_tarot("normal")
M->>C: SetOrientation(normal, animated=true)
C->>C: Y轴旋转动画 (倒置->正向)
Note over Y: 对话继续...
Y->>M: hide_tarot
M->>D: 淡出所有牌
M->>M: CloseView()
```
### 不需要手动做的部分(代码自动处理)
- 牌的动态实例化和销毁(`TarotDeck` 负责)
- EventTriggerEx 事件绑定(`TarotCard.Awake` 自动注册)
- SystemDic 注册(`TarotManager.Start` 自动注册)
- 扇形位置计算(`TarotDeck` 按参数自动排布)
## 关键技术点
- **EventTriggerEx 注册模式**:参考 `KnobController.Awake()` (行 165-199),需先 `EnsureEventTriggerEntries()` 确保 triggers 列表有对应条目,再调用 `Register(EventTriggerType, callback)`
- **DOTween 动画**:项目已引入 `DG.Tweening`,用于扇形展开、悬停推出、翻牌、FadeOut
- **IInteraction 实现**`IsActive` / `IsAvailable` 控制交互可用性,配合 `EventSystemEx.isLocked` 在对话期间自动禁用交互(对话进行时 `isLocked=true``wait_tarot_select` 时对话暂停所以 `isLocked=false`,交互自然可用)
- **SystemDic 注册**`FixSystemCenter.SystemDic.Register(this)` 使 YarnCommand 能通过 `Get<TarotManager>()` 获取实例
- **Yarn 变量写入**`StorageSystem.Instance.SetValue("$tarotSelectedIndex", value)` 将选牌结果传回 Yarn
-103
View File
@@ -1,103 +0,0 @@
---
name: yarn-plug-in-flow
description: >-
Yarn 维修插线对话:gameStage 调度、重复插线短总结、防状态回退与 TaskToDo 重复递减。
Use when 写 FixSystem/BodyModule 插线 Yarn、从自然语言生成维修对话、审阅 HuoShan 类流程、
检查 PlugIn 节点、重复执行、插线检查、或用户提到 yarn 插线/维修界面对话。
---
# Yarn 插线维修对话(FixSystem
本 skill 适用于:`BodyModule` 通过 `{moduleName}PlugIn` 跳入 Yarn、同一节点内用 `$gameStage` 分支多阶段叙事(如 `FP_Huoshan1`)。
## 1. C# 侧事实(设计 Yarn 前必读)
- 插线触发:`BodyModule.PlugIn()``DialogController.StartDialogNode(data.PlugInNodeName)`,节点名为 **`{moduleName}PlugIn`**(见 `BodyModuleData.PlugInNodeTemplate`)。
- **C# 一般不按阶段禁用插线**;若某 Stage 实际不可插线,是场景/交互配置决定,但 Yarn 仍应防御性处理「错误阶段误入」。
- EventNode 里用 `<<jump 检查xxx>>` 桥接到共享节点;共享节点名须与 `*.yarn``title:` 一致。
## 2. 状态变量约定(推荐)
| 用途 | 模式 |
|------|------|
| 流程阶段 | `$gameStage`(数字;仅在 `Center` 等少数节点切换,避免散落 `set` |
| 某模块「本档首次插线检查完」 | `$xxxChecked`(如 `$speakerChecked` / `$colorChecked` / `$emoChecked` |
| 多子任务计数 | `$TaskToDo`,完成时 `--`,**跳转前务必保证不会重复减** |
| 同一 Stage 内「最终检查子项已完成」 | 独立布尔,如 `$speakerFinalOK` / `$saleFinalOK`,防止重复插线再次 `complete_task``--` |
`VarsInit`(或等价入口)用 `<<declare>>` 初始化所有布尔/计数器,避免未定义行为。
## 3. 从自然语言 / 大纲生成 Yarn 时的必做项
1. **列出插线入口**:每个 `*PlugIn` → 目标节点;与模块 `moduleName` 一致。
2. **列出 `$gameStage` 与文档步骤映射**(如 `02_flow.md`),每个共享检查节点有哪些 `elseif $gameStage==N`
3. **任何会 `<<jump>>` 换阶段的块**:条件里加 **`$gameStage==N`**,避免后期 `$xxxChecked` 仍为 true 时误触发旧结局(状态回退)。
4. **同一 `$gameStage` 内、同一模块第二次插线**
- 首次:完整演出 + `complete_task` + 设 `$xxxChecked` / `$xxxFinalOK`
- 再次:`<<if $xxxChecked == true>>`(或对应 FinalOK)→ **短总结 + 自言自语下一步**(去查哪个模块、任务提示),**不**重复长对白、**不**重复任务完成副作用。
5. **多分支共享「完成标记」**:勿在 `if/elseif` 外无条件 `set $colorChecked=true` 等;否则乱序插线会跳过叙事(见此前 HuoShan Stage2 修复)。
## 4. 已完成 Yarn 的审查清单(可逐项打勾)
### 4.1 阶段与跳转
- [ ] 会推进阶段或结束的 `<<jump>>`,外层条件是否包含正确的 `$gameStage`
- [ ] `Center` / Stage 入口是否唯一或清晰,避免死循环、重复 `set gameStage`
### 4.2 重复插线(同 Stage、同模块)
- [ ] Stage2 类:表达 / 销售 / 情绪等主流程,第二次插线是否为「短总结 + 下一步」而非全长?
- [ ] Stage7 类双任务:是否用 **FinalOK**(或等价)避免第二次插线再次 `TaskToDo--` / 重复 `complete_task`
### 4.3 变量与任务
- [ ] `complete_task``$TaskToDo` 递减是否一一对应、且只在「首次成功路径」执行?
- [ ] `$PlugCount` 等统计是否与「首次访问」一致(可用 `visited("NodeName")``== false` 包裹)?
### 4.4 文档与代码
- [ ] `EventNode` 表与 `title:` 节点名一致(如 `SalePlugIn` 非过期的 `ColorPlugIn`)。
## 5. 最小代码模式参考(Yarn 片段)
**防跨阶段误触发结局:**
```yarn
<<if $gameStage==2 && $speakerChecked==true && $colorChecked==true>>
// 波形对比 → 结束本阶段
<<endif>>
```
**同 Stage 重复插线(短总结):**
```yarn
<<if $gameStage==2>>
<<if $speakerChecked == true>>
me: (总结结论)…
me: (下一步该做什么)…
<<else>>
// 首次完整流程
<<set $speakerChecked = true>>
<<endif>>
<<endif>>
```
**Stage7 双任务防重复:**
```yarn
<<elseif $gameStage==7>>
<<if $speakerFinalOK == true>>
me: 已确认…若还有任务去查另一模块。
<<else>>
<<complete_task "...">>
<<set $speakerFinalOK = true>>
<<set $TaskToDo = $TaskToDo - 1>>
<<endif>>
<<endif>>
```
## 6. 项目内参考
- 实例:`Assets/Resources/Yarn/FP_Huoshan1/Stage2.yarn``检查表达` / `检查销售模块` / `检查情绪`)、`Center.yarn``VarsInit`)。
- 流程定义:`Docs/HuoShan/core/02_flow.md`
- C#`Assets/Scripts/FixSystemNew/BodyModule/Modules/BodyModule.cs``PlugIn`)。
+1 -4
View File
@@ -88,12 +88,9 @@ crashlytics-build.properties
# Ignore the Cache folder since it is updated locally.
/[Aa]ssets/Plugins/FMOD/Cache/*
# TimelineNameCollector editor cache (legacy path; migration only)
# TimelineNameCollector editor cache (regenerated on scan)
/[Aa]ssets/[Ee]ditor/TimelineNameCollector/Cache/*
# HandlerNameCollector editor cache (regenerated on scan)
/[Aa]ssets/[Ee]ditor/HandlerNameCollector/Cache/*
# 暂时把bank放到Stream里,不忽略
# Ignore bank files in the StreamingAssets folder.
/[Aa]ssets/StreamingAssets/**/*.bank
@@ -15,7 +15,7 @@ MonoBehaviour:
m_DefaultGroup: 09546aca93a801441859af2a811fe53b
m_currentHash:
serializedVersion: 2
Hash: 8e8b410f1714c542808a3bfbe0724666
Hash: c7686f2c2462e1f187d9ecf6d11dbc45
m_OptimizeCatalogSize: 0
m_BuildRemoteCatalog: 0
m_BundleLocalCatalog: 0
@@ -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:
@@ -74,7 +74,7 @@ MonoBehaviour:
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 45899a60a64d58a4f81fad32d2171702
m_Address: Assets/Language/Dialog/FP_Day2_night/FP_Day2_night Shared Data.asset
m_Address: Assets/Language/Dialog/FP_Day2_night/New Table Shared Data.asset
m_ReadOnly: 1
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
@@ -37,26 +37,16 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7ba8eca4e18291341a10ef7c8c858bd9
m_Address: "Animation/\u9152\u5427\u533B\u751F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5f26e5dcbc809104f92f908082de97d5
m_Address: "Animation/\u8C03\u9152\u59B9\u6D4B\u8BD5"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: a74e4379fa468c24497808e8a6bae2c4
m_Address: "Animation/\u9152\u4FDD"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1c3c562754993f64c850ae97b4c7852e
m_Address: "Timeline/\u9189\u9152"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 2d9baefeca916a942ab57a6714f7dc9e
m_Address: "Timeline/\u8C03\u9152\u8499\u592A\u5947"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -22,32 +22,12 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5253d74898c86f547861ebf57b280b4f
m_Address: "Timeline/\u5929\u6865\u5934\u75DB"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: acd7f1995fefdf24c9e979e45a176b76
m_Address: "Timeline/\u5929\u6865\u98CE\u5439\u6811\u53F6"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4180297bbe280ad478f49933e69dcbce
m_Address: "Timeline/\u5929\u6865\u63A5\u6811\u53F6In"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 71aa8e39cf2f39945af8ba27eb2acd08
m_Address: "Timeline/\u5929\u6865\u63A5\u6811\u53F6Loop"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e67da195744f8de448e46c34eb9badb2
- m_GUID: 0252f0740dd08da4ab8f5aeb7ddcc4ea
m_Address: "Animation/\u5929\u6865\u533B\u751F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ea008b0c912c0d748997bf458879cb74
- m_GUID: 2359eeb42b1a4f044b01b6ea27390f1d
m_Address: "Animation/\u5929\u6865\u4F69\u4F69"
m_ReadOnly: 0
m_SerializedLabels: []
@@ -67,18 +67,48 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 6c4aea2a4a8462344b6ce353f53c7b2a
m_Address: "Timeline/\u533B\u751F\u51FA\u5730\u94C1"
- m_GUID: 69e2f5249baf3a94f8f84e0d141868cb
m_Address: "Timeline/\u6458\u8D70\u76D6\u5B50"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 7760fc67933fb684d81ea5275fac0a50
m_Address: "Animation/\u8BCA\u5BA4\u5916\u706B\u5C71"
- m_GUID: 4222e9e117a86064192b7219f7ce0543
m_Address: "Timeline/\u653E\u4E0B\u76D6\u5B50"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 253f47db959b2814998695fb5d1f4d97
m_Address: "Timeline/\u65CB\u8F6C\u53F6\u67C4"
- m_GUID: 72b922f30ca3059419c6bbc565ed9b4a
m_Address: "Timeline/\u900F\u955Cin"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e4815dc72e9f2a54d93eaabda8a0750f
m_Address: "Timeline/\u900F\u955Cout"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0a677c8d19d799d4a80842a5ee1bf5a4
m_Address: "Timeline/\u8FDB\u5165\u6B65\u8FDB\u6A21\u5F0F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 33a3ab569b0312145ad062ae6936177e
m_Address: "Timeline/\u9000\u51FA\u6B65\u8FDB\u6A21\u5F0F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 838bd5cc2ceffc1459d167675d96f66a
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBEpanel"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 45c7520cc9a3e5f4faa8db45df605dc1
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBE\u786E\u8BA4"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3b2268ceeee9f934691265d0214b2fc7
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBE\u6DF1\u5165"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
@@ -27,11 +27,6 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 35dfcf569b00d404bb89ac1d8ae4c37a
m_Address: "Timeline/\u59D0\u59D0\u653E\u624B"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -32,66 +32,6 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 417a7984630786f46a5ade5d2b457852
m_Address: "Animation/\u706B\u5C71"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 838bd5cc2ceffc1459d167675d96f66a
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBEpanel"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 45c7520cc9a3e5f4faa8db45df605dc1
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBE\u786E\u8BA4"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3b2268ceeee9f934691265d0214b2fc7
m_Address: "Timeline/\u706B\u5C71\u8868\u8FBE\u6DF1\u5165"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 4222e9e117a86064192b7219f7ce0543
m_Address: "Timeline/\u653E\u4E0B\u76D6\u5B50"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 69e2f5249baf3a94f8f84e0d141868cb
m_Address: "Timeline/\u6458\u8D70\u76D6\u5B50"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e4815dc72e9f2a54d93eaabda8a0750f
m_Address: "Timeline/\u900F\u955Cout"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 72b922f30ca3059419c6bbc565ed9b4a
m_Address: "Timeline/\u900F\u955Cin"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 33a3ab569b0312145ad062ae6936177e
m_Address: "Timeline/\u9000\u51FA\u6B65\u8FDB\u6A21\u5F0F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 0a677c8d19d799d4a80842a5ee1bf5a4
m_Address: "Timeline/\u8FDB\u5165\u6B65\u8FDB\u6A21\u5F0F"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: af4651ca096e81d4d8bcf8b93a91b872
m_Address: "Timeline/\u706B\u5C71\u5934\u75DB2"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: e69af1ed498c57f4799f936aa28e4ed4
m_Address: "Timeline/\u706B\u5C71\u5934\u75DB1"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -27,13 +27,13 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: d269076a4860dee4f94d1bd63c674f30
m_Address: "Sprite/\u89C6\u89C9\u6A21\u5757\u76D6\u5B50"
- m_GUID: 809f95af8dd580448ab804b94fbd9cb2
m_Address: "Animation/\u4F69\u4F69"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 809f95af8dd580448ab804b94fbd9cb2
m_Address: "Animation/\u4F69\u4F69"
- m_GUID: d269076a4860dee4f94d1bd63c674f30
m_Address: "Sprite/\u89C6\u89C9\u6A21\u5757\u76D6\u5B50"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
@@ -17,6 +17,16 @@ MonoBehaviour:
m_SerializedData: []
m_GUID: 74922ad77455a1847aa3f1d714a4edda
m_SerializeEntries:
- m_GUID: 3c0d119c1a62bb840846a0e7c58197f7
m_Address: "Subway/\u767D\u5929\u7A97\u5916"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 660c87b6732769b49a9b7119b54ede83
m_Address: "Subway/\u591C\u665A\u7A97\u5916"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 1df1eddcbfb714743a3d146cbea2b6a2
m_Address: Scene/SubWay
m_ReadOnly: 0
@@ -42,21 +52,6 @@ MonoBehaviour:
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: ca80fd96dc71f714a988b27d9ca6c61c
m_Address: Sprite/News
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 3c0d119c1a62bb840846a0e7c58197f7
m_Address: "Subway/\u767D\u5929\u7A97\u5916"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 660c87b6732769b49a9b7119b54ede83
m_Address: "Subway/\u591C\u665A\u7A97\u5916"
m_ReadOnly: 0
m_SerializedLabels: []
FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 77169ce22e430f64fb36c771815a4a7b, type: 2}
m_SchemaSet:
@@ -1,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,550 +0,0 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-7273616238501396146
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bcae7dc92d05e1e4094e0e448b670355, type: 3}
m_Name: VolumeAsset
m_EditorClassIdentifier:
m_Template:
Weight: 1
m_Volume: {fileID: 11400000, guid: 0af8555a6447b50409db2139400d6ab7, type: 2}
--- !u!114 &-3378792728507138695
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cd3925730e7a59446932e9c8cba28ccf, type: 3}
m_Name: Volume Track (1)
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: 7967868333749088964}
m_Duration: 1.3666666666666667
m_TimeScale: 1
m_ParentTrack: {fileID: -3378792728507138695}
m_EaseInDuration: 0.1
m_EaseOutDuration: 0.6
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 0
m_PreExtrapolationMode: 0
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 0
m_DisplayName: VolumeAsset
m_Markers:
m_Objects: []
m_Layer: 0
m_Priority: 0
--- !u!114 &-3117513502812618692
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cd3925730e7a59446932e9c8cba28ccf, type: 3}
m_Name: Volume Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: -7273616238501396146}
m_Duration: 1.3666666666666667
m_TimeScale: 1
m_ParentTrack: {fileID: -3117513502812618692}
m_EaseInDuration: 0.1
m_EaseOutDuration: 0.6
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 0
m_PreExtrapolationMode: 0
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 0
m_DisplayName: VolumeAsset
m_Markers:
m_Objects: []
m_Layer: 0
m_Priority: 0
--- !u!114 &-2955631063214815081
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: cd3925730e7a59446932e9c8cba28ccf, type: 3}
m_Name: Volume Track (2)
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips:
- m_Version: 1
m_Start: 0
m_ClipIn: 0
m_Asset: {fileID: -1361877534822022742}
m_Duration: 1.3666666666666667
m_TimeScale: 1
m_ParentTrack: {fileID: -2955631063214815081}
m_EaseInDuration: 0.1
m_EaseOutDuration: 0.6
m_BlendInDuration: -1
m_BlendOutDuration: -1
m_MixInCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_MixOutCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
m_BlendInCurveMode: 0
m_BlendOutCurveMode: 0
m_ExposedParameterNames: []
m_AnimationCurves: {fileID: 0}
m_Recordable: 0
m_PostExtrapolationMode: 0
m_PreExtrapolationMode: 0
m_PostExtrapolationTime: 0
m_PreExtrapolationTime: 0
m_DisplayName: VolumeAsset
m_Markers:
m_Objects: []
m_Layer: 0
m_Priority: 0
--- !u!114 &-1361877534822022742
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bcae7dc92d05e1e4094e0e448b670355, type: 3}
m_Name: VolumeAsset
m_EditorClassIdentifier:
m_Template:
Weight: 1
m_Volume: {fileID: 11400000, guid: 631b3200517e20440b88f28015fc3a5c, type: 2}
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3}
m_Name: "\u706B\u5C71\u5934\u75DB2"
m_EditorClassIdentifier:
m_Version: 0
m_Tracks:
- {fileID: -3117513502812618692}
- {fileID: -3378792728507138695}
- {fileID: -2955631063214815081}
- {fileID: 2112685405309563144}
m_FixedDuration: 0
m_EditorSettings:
m_Framerate: 60
m_ScenePreview: 1
m_DurationMode: 0
m_MarkerTrack: {fileID: 0}
--- !u!74 &1077202520131138910
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Recorded
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.13333334
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.8333333
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.1333333
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path:
classID: 212
script: {fileID: 0}
flags: 0
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1.1333333
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.13333334
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.8333333
value: 0.8
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 1.1333333
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path:
classID: 212
script: {fileID: 0}
flags: 0
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []
--- !u!114 &2112685405309563144
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d21dcc2386d650c4597f3633c75a1f98, type: 3}
m_Name: Animation Track
m_EditorClassIdentifier:
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children: []
m_Clips: []
m_Markers:
m_Objects: []
m_InfiniteClipPreExtrapolation: 1
m_InfiniteClipPostExtrapolation: 1
m_InfiniteClipOffsetPosition: {x: 0, y: 0, z: 0}
m_InfiniteClipOffsetEulerAngles: {x: 0, y: 0, z: 0}
m_InfiniteClipTimeOffset: 0
m_InfiniteClipRemoveOffset: 0
m_InfiniteClipApplyFootIK: 1
mInfiniteClipLoop: 0
m_MatchTargetFields: 63
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_AvatarMask: {fileID: 0}
m_ApplyAvatarMask: 1
m_TrackOffset: 0
m_InfiniteClip: {fileID: 1077202520131138910}
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
m_ApplyOffsets: 0
--- !u!114 &7967868333749088964
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: bcae7dc92d05e1e4094e0e448b670355, type: 3}
m_Name: VolumeAsset
m_EditorClassIdentifier:
m_Template:
Weight: 1
m_Volume: {fileID: 11400000, guid: 841479fd6ffe3ee40a88ee41bd395f09, type: 2}
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: af4651ca096e81d4d8bcf8b93a91b872
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
@@ -59,7 +59,7 @@ AnimatorStateMachine:
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 606848118606110807}
m_Position: {x: 340, y: 110, z: 0}
m_Position: {x: 200, y: 0, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@@ -1,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,221 +0,0 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using UnityEditor;
using UnityEngine;
namespace AibisDream.EditorTools
{
public enum HandlerEntryKind
{
DirectorHandler = 0,
AnimatorHandler = 1
}
[Serializable]
public class HandlerNameCacheEntry
{
public string guid;
public string assetPath;
public string fileHash;
public string lastModified;
public string registeredName;
public HandlerEntryKind kind;
public string gameObjectPath;
public bool isInScene;
public int lineNumber;
}
[Serializable]
public class HandlerNameCache
{
public const int CurrentVersion = 2;
public int version = CurrentVersion;
public string lastFullScanTime;
public List<HandlerNameCacheEntry> entries = new List<HandlerNameCacheEntry>();
private static readonly string CacheFileName = "handler_name_cache.json";
public static string CacheFolderFullPath =>
Path.Combine(Application.dataPath, "Editor/HandlerNameCollector/Cache");
public static string CacheFileFullPath =>
Path.Combine(CacheFolderFullPath, CacheFileName);
/// <summary>迁移用:旧版 TimelineNameCollector 缓存路径。</summary>
private static string LegacyTimelineCacheFileFullPath =>
Path.Combine(Application.dataPath, "Editor/TimelineNameCollector/Cache/timeline_name_cache.json");
public static HandlerNameCache Load()
{
try
{
string json = null;
if (File.Exists(CacheFileFullPath))
json = File.ReadAllText(CacheFileFullPath, Encoding.UTF8);
else if (File.Exists(LegacyTimelineCacheFileFullPath))
json = File.ReadAllText(LegacyTimelineCacheFileFullPath, Encoding.UTF8);
if (string.IsNullOrEmpty(json))
{
return NewEmpty();
}
json = MigrateLegacyCacheJson(json);
var cache = JsonConvert.DeserializeObject<HandlerNameCache>(json);
if (cache == null)
cache = NewEmpty();
cache.version = CurrentVersion;
cache.entries ??= new List<HandlerNameCacheEntry>();
return cache;
}
catch (Exception e)
{
Debug.LogError($"[HandlerNameCache] Failed to load cache: {e}");
return NewEmpty();
}
}
private static HandlerNameCache NewEmpty()
{
return new HandlerNameCache
{
version = CurrentVersion,
lastFullScanTime = null,
entries = new List<HandlerNameCacheEntry>()
};
}
/// <summary>
/// 将旧版 timelineName 字段、缺省 kind 等合并为当前 JSON 结构。
/// </summary>
private static string MigrateLegacyCacheJson(string json)
{
try
{
var jo = JObject.Parse(json);
if (jo["entries"] is JArray arr)
{
foreach (var token in arr)
{
if (token is not JObject item)
continue;
var reg = item["registeredName"]?.ToString();
if (string.IsNullOrWhiteSpace(reg))
{
var legacy = item["timelineName"]?.ToString();
if (!string.IsNullOrEmpty(legacy))
item["registeredName"] = legacy;
}
item.Remove("timelineName");
if (item["kind"] == null)
item["kind"] = (int)HandlerEntryKind.DirectorHandler;
}
}
jo["version"] = CurrentVersion;
return jo.ToString(Formatting.None);
}
catch (Exception e)
{
Debug.LogWarning($"[HandlerNameCache] JSON migration fallback: {e}");
return json;
}
}
public void Save()
{
try
{
if (!Directory.Exists(CacheFolderFullPath))
Directory.CreateDirectory(CacheFolderFullPath);
entries ??= new List<HandlerNameCacheEntry>();
var settings = new JsonSerializerSettings
{
Formatting = Formatting.Indented,
StringEscapeHandling = StringEscapeHandling.Default
};
var json = JsonConvert.SerializeObject(this, settings);
File.WriteAllText(CacheFileFullPath, json, Encoding.UTF8);
}
catch (Exception e)
{
Debug.LogError($"[HandlerNameCache] Failed to save cache: {e}");
}
}
public void SetLastFullScanNow()
{
lastFullScanTime = DateTime.UtcNow.ToString("o");
}
public static string ComputeFileHash(string fullPath)
{
try
{
if (!File.Exists(fullPath))
return null;
using (var stream = File.OpenRead(fullPath))
using (var md5 = MD5.Create())
{
var hash = md5.ComputeHash(stream);
var sb = new StringBuilder(hash.Length * 2);
foreach (var b in hash)
sb.Append(b.ToString("x2"));
return sb.ToString();
}
}
catch (Exception e)
{
Debug.LogError($"[HandlerNameCache] Failed to compute file hash for '{fullPath}': {e}");
return null;
}
}
public static string GetAssetFullPath(string assetPath)
{
if (string.IsNullOrEmpty(assetPath))
return null;
if (!assetPath.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase) &&
!assetPath.Equals("Assets", StringComparison.OrdinalIgnoreCase))
return null;
var relative = assetPath.Substring("Assets".Length)
.TrimStart(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
return Path.Combine(Application.dataPath, relative);
}
public void RemoveEntriesForAsset(string assetPath)
{
if (entries == null || string.IsNullOrEmpty(assetPath))
return;
entries.RemoveAll(e => e != null && e.assetPath == assetPath);
}
public void CleanupDeletedAssets()
{
if (entries == null)
return;
entries.RemoveAll(e =>
{
if (e == null || string.IsNullOrEmpty(e.assetPath))
return true;
return AssetDatabase.LoadMainAssetAtPath(e.assetPath) == null;
});
}
}
}
@@ -0,0 +1,184 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using Newtonsoft.Json;
using UnityEditor;
using UnityEngine;
namespace AibisDream.EditorTools
{
[Serializable]
public class TimelineNameCacheEntry
{
public string guid;
public string assetPath;
public string fileHash;
public string lastModified;
public string timelineName;
public string gameObjectPath;
public bool isInScene;
public int lineNumber;
}
[Serializable]
public class TimelineNameCache
{
public const int CurrentVersion = 1;
public int version = CurrentVersion;
public string lastFullScanTime;
public List<TimelineNameCacheEntry> entries = new List<TimelineNameCacheEntry>();
private static readonly string CacheFileName = "timeline_name_cache.json";
public static string CacheFolderFullPath =>
Path.Combine(Application.dataPath, "Editor/TimelineNameCollector/Cache");
public static string CacheFileFullPath =>
Path.Combine(CacheFolderFullPath, CacheFileName);
public static TimelineNameCache Load()
{
try
{
if (!File.Exists(CacheFileFullPath))
{
return new TimelineNameCache
{
version = CurrentVersion,
lastFullScanTime = null,
entries = new List<TimelineNameCacheEntry>()
};
}
var json = File.ReadAllText(CacheFileFullPath, Encoding.UTF8);
if (string.IsNullOrEmpty(json))
{
return new TimelineNameCache
{
version = CurrentVersion,
lastFullScanTime = null,
entries = new List<TimelineNameCacheEntry>()
};
}
var cache = JsonConvert.DeserializeObject<TimelineNameCache>(json);
if (cache == null)
{
cache = new TimelineNameCache();
}
if (cache.version != CurrentVersion)
{
cache.version = CurrentVersion;
cache.lastFullScanTime = null;
cache.entries = cache.entries ?? new List<TimelineNameCacheEntry>();
}
return cache;
}
catch (Exception e)
{
Debug.LogError($"[TimelineNameCache] Failed to load cache: {e}");
return new TimelineNameCache
{
version = CurrentVersion,
lastFullScanTime = null,
entries = new List<TimelineNameCacheEntry>()
};
}
}
public void Save()
{
try
{
if (!Directory.Exists(CacheFolderFullPath))
{
Directory.CreateDirectory(CacheFolderFullPath);
}
entries ??= new List<TimelineNameCacheEntry>();
var settings = new JsonSerializerSettings
{
Formatting = Formatting.Indented,
StringEscapeHandling = StringEscapeHandling.Default
};
var json = JsonConvert.SerializeObject(this, settings);
File.WriteAllText(CacheFileFullPath, json, Encoding.UTF8);
}
catch (Exception e)
{
Debug.LogError($"[TimelineNameCache] Failed to save cache: {e}");
}
}
public void SetLastFullScanNow()
{
lastFullScanTime = DateTime.UtcNow.ToString("o");
}
public static string ComputeFileHash(string fullPath)
{
try
{
if (!File.Exists(fullPath))
{
return null;
}
using (var stream = File.OpenRead(fullPath))
using (var md5 = MD5.Create())
{
var hash = md5.ComputeHash(stream);
var sb = new StringBuilder(hash.Length * 2);
foreach (var b in hash)
{
sb.Append(b.ToString("x2"));
}
return sb.ToString();
}
}
catch (Exception e)
{
Debug.LogError($"[TimelineNameCache] Failed to compute file hash for '{fullPath}': {e}");
return null;
}
}
public static string GetAssetFullPath(string assetPath)
{
if (string.IsNullOrEmpty(assetPath))
return null;
if (!assetPath.StartsWith("Assets/", StringComparison.OrdinalIgnoreCase) &&
!assetPath.Equals("Assets", StringComparison.OrdinalIgnoreCase))
{
return null;
}
var relative = assetPath.Substring("Assets".Length).TrimStart(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar);
return Path.Combine(Application.dataPath, relative);
}
public void RemoveEntriesForAsset(string assetPath)
{
if (entries == null || string.IsNullOrEmpty(assetPath)) return;
entries.RemoveAll(e => e != null && e.assetPath == assetPath);
}
public void CleanupDeletedAssets()
{
if (entries == null) return;
entries.RemoveAll(e =>
{
if (e == null || string.IsNullOrEmpty(e.assetPath)) return true;
return AssetDatabase.LoadMainAssetAtPath(e.assetPath) == null;
});
}
}
}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8f2a1c3d4e5b60718293a4b5c6d7e8f0
guid: 58e8fb78cff00f44482eff9d6a1b7a64
MonoImporter:
externalObjects: {}
serializedVersion: 2
@@ -7,11 +7,9 @@ using UnityEngine;
namespace AibisDream.EditorTools
{
public class HandlerNameCollectorWindow : EditorWindow
public class TimelineNameCollectorWindow : EditorWindow
{
private const string WindowTitle = "Handler Name Collector";
private HandlerNameCache _cache;
private TimelineNameCache _cache;
private Vector2 _scrollPos;
private string _searchText = string.Empty;
@@ -19,31 +17,23 @@ namespace AibisDream.EditorTools
private bool _showPrefabs = true;
private bool _showConflictsOnly;
private HandlerEntryKind _viewKind = HandlerEntryKind.DirectorHandler;
private readonly List<HandlerNameCacheEntry> _sortedEntries = new List<HandlerNameCacheEntry>();
private readonly Dictionary<string, List<HandlerNameCacheEntry>> _entriesByName =
new Dictionary<string, List<HandlerNameCacheEntry>>(StringComparer.OrdinalIgnoreCase);
private readonly List<TimelineNameCacheEntry> _sortedEntries = new List<TimelineNameCacheEntry>();
private readonly Dictionary<string, List<TimelineNameCacheEntry>> _entriesByName =
new Dictionary<string, List<TimelineNameCacheEntry>>(StringComparer.OrdinalIgnoreCase);
private readonly HashSet<string> _conflictNames =
new HashSet<string>(StringComparer.OrdinalIgnoreCase);
private HandlerNameCacheEntry _selectedEntry;
private TimelineNameCacheEntry _selectedEntry;
[MenuItem("Tools/Handler Name Collector")]
[MenuItem("Tools/Timeline Name Collector")]
public static void ShowWindow()
{
var window = GetWindow<HandlerNameCollectorWindow>(WindowTitle);
var window = GetWindow<TimelineNameCollectorWindow>("Timeline Name Collector");
window.minSize = new Vector2(700, 400);
window.Show();
}
[MenuItem("Tools/Timeline Name Collector", false, 101)]
public static void ShowWindowLegacyMenu()
{
ShowWindow();
}
private void OnEnable()
{
LoadCacheIfNeeded();
@@ -52,8 +42,8 @@ namespace AibisDream.EditorTools
private void LoadCacheIfNeeded()
{
_cache ??= HandlerNameCache.Load();
_cache.entries ??= new List<HandlerNameCacheEntry>();
_cache ??= TimelineNameCache.Load();
_cache.entries ??= new List<TimelineNameCacheEntry>();
}
private void RebuildIndexes()
@@ -67,40 +57,35 @@ namespace AibisDream.EditorTools
foreach (var entry in _cache.entries)
{
if (entry == null || entry.kind != _viewKind)
if (entry == null)
continue;
_sortedEntries.Add(entry);
if (!_entriesByName.TryGetValue(entry.registeredName, out var list))
if (!_entriesByName.TryGetValue(entry.timelineName, out var list))
{
list = new List<HandlerNameCacheEntry>();
_entriesByName[entry.registeredName] = list;
list = new List<TimelineNameCacheEntry>();
_entriesByName[entry.timelineName] = list;
}
list.Add(entry);
}
_sortedEntries.Sort((a, b) =>
{
var nameCompare =
string.Compare(a.registeredName, b.registeredName, StringComparison.OrdinalIgnoreCase);
if (nameCompare != 0)
return nameCompare;
var nameCompare = string.Compare(a.timelineName, b.timelineName, StringComparison.OrdinalIgnoreCase);
if (nameCompare != 0) return nameCompare;
var typeCompare = a.isInScene.CompareTo(b.isInScene);
if (typeCompare != 0)
return -typeCompare;
if (typeCompare != 0) return -typeCompare; // 场景优先
return string.Compare(a.assetPath, b.assetPath, StringComparison.OrdinalIgnoreCase);
});
foreach (var kv in _entriesByName)
{
if (kv.Value.Count > 1)
{
_conflictNames.Add(kv.Key);
}
}
if (_selectedEntry != null && _selectedEntry.kind != _viewKind)
_selectedEntry = null;
}
private void OnGUI()
@@ -109,8 +94,6 @@ namespace AibisDream.EditorTools
DrawToolbar();
EditorGUILayout.Space();
DrawViewKindBar();
EditorGUILayout.Space();
DrawFilterBar();
EditorGUILayout.Space();
DrawSummary();
@@ -125,13 +108,19 @@ namespace AibisDream.EditorTools
EditorGUILayout.BeginHorizontal(EditorStyles.toolbar);
if (GUILayout.Button("刷新选中", EditorStyles.toolbarButton, GUILayout.Width(90)))
{
RefreshSelected();
}
if (GUILayout.Button("刷新全部", EditorStyles.toolbarButton, GUILayout.Width(90)))
{
RefreshAll(forceFull: false);
}
if (GUILayout.Button("强制全量", EditorStyles.toolbarButton, GUILayout.Width(90)))
{
RefreshAll(forceFull: true);
}
GUILayout.FlexibleSpace();
@@ -143,28 +132,6 @@ namespace AibisDream.EditorTools
EditorGUILayout.EndHorizontal();
}
private void DrawViewKindBar()
{
EditorGUILayout.BeginHorizontal();
GUILayout.Label("视图:", GUILayout.Width(40));
var labels = new[] { "DirectorHandler", "AnimatorHandler" };
var newIndex = GUILayout.Toolbar(
_viewKind == HandlerEntryKind.DirectorHandler ? 0 : 1,
labels,
GUILayout.Height(22));
var newKind = newIndex == 0 ? HandlerEntryKind.DirectorHandler : HandlerEntryKind.AnimatorHandler;
if (newKind != _viewKind)
{
_viewKind = newKind;
_selectedEntry = null;
RebuildIndexes();
}
EditorGUILayout.EndHorizontal();
}
private void DrawFilterBar()
{
EditorGUILayout.BeginHorizontal();
@@ -181,41 +148,25 @@ namespace AibisDream.EditorTools
private void DrawSummary()
{
var total = CountVisibleEntries();
var total = _sortedEntries.Count;
var conflictCount = _conflictNames.Count;
var modeLabel = _viewKind == HandlerEntryKind.DirectorHandler ? "DirectorHandler" : "AnimatorHandler";
EditorGUILayout.LabelField(
$"[{modeLabel}] 找到 {total} 个注册名条目({conflictCount} 个重名)",
EditorGUILayout.LabelField($"找到 {total} 个 TimelineName 条目({conflictCount} 个重名)",
EditorStyles.boldLabel);
}
private int CountVisibleEntries()
{
var n = 0;
foreach (var entry in _sortedEntries)
{
if (PassFilter(entry))
n++;
}
return n;
}
private void DrawListArea()
{
EditorGUILayout.LabelField("列表", EditorStyles.boldLabel);
EditorGUILayout.BeginHorizontal();
GUILayout.Label("注册名", GUILayout.Width(220));
GUILayout.Label("Timeline Name", GUILayout.Width(220));
GUILayout.Label("类型", GUILayout.Width(50));
GUILayout.Label("位置", GUILayout.ExpandWidth(true));
GUILayout.Label("", GUILayout.Width(90));
EditorGUILayout.EndHorizontal();
var visibleCount = CountVisibleEntries();
var rect = GUILayoutUtility.GetRect(0, 100000, 0, 100000);
_scrollPos = GUI.BeginScrollView(rect, _scrollPos,
new Rect(0, 0, rect.width - 20, visibleCount * 20 + 10));
_scrollPos = GUI.BeginScrollView(rect, _scrollPos, new Rect(0, 0, rect.width - 20, _sortedEntries.Count * 20 + 10));
var y = 0f;
var rowHeight = 20f;
@@ -226,7 +177,7 @@ namespace AibisDream.EditorTools
if (!PassFilter(entry))
continue;
var isConflict = _conflictNames.Contains(entry.registeredName);
var isConflict = _conflictNames.Contains(entry.timelineName);
var rowRect = new Rect(0, y, viewWidth, rowHeight);
DrawRow(rowRect, entry, isConflict);
y += rowHeight;
@@ -235,14 +186,16 @@ namespace AibisDream.EditorTools
GUI.EndScrollView();
}
private void DrawRow(Rect rect, HandlerNameCacheEntry entry, bool isConflict)
private void DrawRow(Rect rect, TimelineNameCacheEntry entry, bool isConflict)
{
var typeLabel = entry.isInScene ? "场景" : "预制体";
var location = GetShortLocation(entry);
var bgColor = GUI.backgroundColor;
if (isConflict)
{
GUI.backgroundColor = new Color(1f, 0.9f, 0.9f);
}
if (Event.current.type == EventType.MouseDown && rect.Contains(Event.current.mousePosition))
{
@@ -261,7 +214,7 @@ namespace AibisDream.EditorTools
var colRect = rect;
colRect.x += 4;
colRect.width = 220;
GUI.Label(colRect, entry.registeredName);
GUI.Label(colRect, entry.timelineName);
colRect.x += colRect.width + 4;
colRect.width = 50;
@@ -274,12 +227,9 @@ namespace AibisDream.EditorTools
colRect.x += colRect.width + 4;
colRect.width = 90;
if (GUI.Button(colRect, "项目中显示"))
{
PingEntry(entry);
}
private string RegisteredNameLabel()
{
return _viewKind == HandlerEntryKind.DirectorHandler ? "Timeline 注册名" : "Animator 注册名";
}
}
private void DrawDetailArea()
@@ -292,29 +242,34 @@ namespace AibisDream.EditorTools
return;
}
GUILayout.Label($"{RegisteredNameLabel()}: {_selectedEntry.registeredName}", EditorStyles.boldLabel);
GUILayout.Label($"Timeline Name: {_selectedEntry.timelineName}", EditorStyles.boldLabel);
if (_entriesByName.TryGetValue(_selectedEntry.registeredName, out var group))
if (_entriesByName.TryGetValue(_selectedEntry.timelineName, out var group))
{
foreach (var e in group)
{
EditorGUILayout.BeginVertical("box");
EditorGUILayout.LabelField("资源路径", e.assetPath);
EditorGUILayout.LabelField("GameObject",
string.IsNullOrEmpty(e.gameObjectPath) ? "(未知)" : e.gameObjectPath);
EditorGUILayout.LabelField("GameObject", string.IsNullOrEmpty(e.gameObjectPath) ? "(未知)" : e.gameObjectPath);
EditorGUILayout.LabelField("类型", e.isInScene ? "场景" : "预制体");
EditorGUILayout.LabelField("行号", e.lineNumber.ToString());
EditorGUILayout.BeginHorizontal();
if (GUILayout.Button("在Project窗口显示", GUILayout.Width(140)))
{
PingEntry(e);
}
if (e.isInScene && GUILayout.Button("打开场景并选中", GUILayout.Width(140)))
{
OpenSceneAndSelect(e);
}
if (GUILayout.Button("复制名称", GUILayout.Width(100)))
EditorGUIUtility.systemCopyBuffer = e.registeredName;
{
EditorGUIUtility.systemCopyBuffer = e.timelineName;
}
EditorGUILayout.EndHorizontal();
EditorGUILayout.EndVertical();
@@ -322,14 +277,14 @@ namespace AibisDream.EditorTools
}
}
private bool PassFilter(HandlerNameCacheEntry entry)
private bool PassFilter(TimelineNameCacheEntry entry)
{
if (!_showScenes && entry.isInScene)
return false;
if (!_showPrefabs && !entry.isInScene)
return false;
if (_showConflictsOnly && !_conflictNames.Contains(entry.registeredName))
if (_showConflictsOnly && !_conflictNames.Contains(entry.timelineName))
return false;
if (string.IsNullOrEmpty(_searchText))
@@ -341,8 +296,8 @@ namespace AibisDream.EditorTools
var cmp = StringComparison.OrdinalIgnoreCase;
if (!string.IsNullOrEmpty(entry.registeredName) &&
entry.registeredName.Contains(s, cmp))
if (!string.IsNullOrEmpty(entry.timelineName) &&
entry.timelineName.Contains(s, cmp))
return true;
if (!string.IsNullOrEmpty(entry.assetPath) &&
@@ -356,7 +311,7 @@ namespace AibisDream.EditorTools
return false;
}
private static string GetShortLocation(HandlerNameCacheEntry entry)
private static string GetShortLocation(TimelineNameCacheEntry entry)
{
if (string.IsNullOrEmpty(entry.assetPath))
return string.Empty;
@@ -364,12 +319,14 @@ namespace AibisDream.EditorTools
var fileName = Path.GetFileNameWithoutExtension(entry.assetPath);
if (string.IsNullOrEmpty(entry.gameObjectPath))
{
return fileName;
}
return $"{fileName} / {entry.gameObjectPath}";
}
private static void PingEntry(HandlerNameCacheEntry entry)
private static void PingEntry(TimelineNameCacheEntry entry)
{
if (string.IsNullOrEmpty(entry.assetPath))
return;
@@ -382,7 +339,7 @@ namespace AibisDream.EditorTools
}
}
private static void OpenSceneAndSelect(HandlerNameCacheEntry entry)
private static void OpenSceneAndSelect(TimelineNameCacheEntry entry)
{
if (string.IsNullOrEmpty(entry.assetPath))
return;
@@ -444,13 +401,13 @@ namespace AibisDream.EditorTools
var guids = Selection.assetGUIDs;
if (guids == null || guids.Length == 0)
{
EditorUtility.DisplayDialog(WindowTitle, "请在 Project 窗口中先选中场景或预制体资源。", "确定");
EditorUtility.DisplayDialog("Timeline Name Collector", "请在 Project 窗口中先选中场景或预制体资源。", "确定");
return;
}
try
{
EditorUtility.DisplayProgressBar(WindowTitle, "正在刷新选中资源...", 0f);
EditorUtility.DisplayProgressBar("Timeline Name Collector", "正在刷新选中资源...", 0f);
var processed = 0;
foreach (var guid in guids)
@@ -462,7 +419,9 @@ namespace AibisDream.EditorTools
ProcessSingleAsset(guid, assetPath);
processed++;
EditorUtility.DisplayProgressBar(WindowTitle, $"正在解析: {assetPath}",
EditorUtility.DisplayProgressBar(
"Timeline Name Collector",
$"正在解析: {assetPath}",
processed / (float)guids.Length);
}
}
@@ -491,6 +450,7 @@ namespace AibisDream.EditorTools
var guidList = new List<string>(allGuids);
guidList.Sort();
// 现有文件哈希,按 assetPath 去重
var existingHashes = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
foreach (var e in _cache.entries)
{
@@ -498,12 +458,14 @@ namespace AibisDream.EditorTools
continue;
if (!existingHashes.ContainsKey(e.assetPath))
{
existingHashes[e.assetPath] = e.fileHash;
}
}
try
{
EditorUtility.DisplayProgressBar(WindowTitle,
EditorUtility.DisplayProgressBar("Timeline Name Collector",
forceFull ? "正在强制全量扫描..." : "正在增量扫描...", 0f);
for (var i = 0; i < guidList.Count; i++)
@@ -513,11 +475,11 @@ namespace AibisDream.EditorTools
if (!IsSupportedAsset(assetPath))
continue;
var fullPath = HandlerNameCache.GetAssetFullPath(assetPath);
var fullPath = TimelineNameCache.GetAssetFullPath(assetPath);
if (string.IsNullOrEmpty(fullPath) || !File.Exists(fullPath))
continue;
var newHash = HandlerNameCache.ComputeFileHash(fullPath);
var newHash = TimelineNameCache.ComputeFileHash(fullPath);
var needScan = forceFull;
if (!needScan)
@@ -525,7 +487,9 @@ namespace AibisDream.EditorTools
if (!existingHashes.TryGetValue(assetPath, out var oldHash) ||
string.IsNullOrEmpty(newHash) ||
!string.Equals(oldHash, newHash, StringComparison.OrdinalIgnoreCase))
{
needScan = true;
}
}
if (!needScan)
@@ -534,7 +498,8 @@ namespace AibisDream.EditorTools
ProcessSingleAsset(guid, assetPath, newHash);
var progress = (i + 1) / (float)guidList.Count;
EditorUtility.DisplayProgressBar(WindowTitle, $"正在解析: {assetPath}", progress);
EditorUtility.DisplayProgressBar("Timeline Name Collector",
$"正在解析: {assetPath}", progress);
}
}
finally
@@ -551,23 +516,25 @@ namespace AibisDream.EditorTools
private void ProcessSingleAsset(string guid, string assetPath, string precomputedHash = null)
{
var fullPath = HandlerNameCache.GetAssetFullPath(assetPath);
var fullPath = TimelineNameCache.GetAssetFullPath(assetPath);
if (string.IsNullOrEmpty(fullPath) || !File.Exists(fullPath))
return;
var fileHash = precomputedHash ?? HandlerNameCache.ComputeFileHash(fullPath);
var fileHash = precomputedHash ?? TimelineNameCache.ComputeFileHash(fullPath);
var lastModifiedUtc = File.GetLastWriteTimeUtc(fullPath).ToString("o");
_cache.RemoveEntriesForAsset(assetPath);
var entries = YamlHandlerNameParser.ParseAsset(
var entries = YamlTimelineParser.ParseAsset(
assetPath,
guid,
fileHash,
lastModifiedUtc);
if (entries != null && entries.Count > 0)
{
_cache.entries.AddRange(entries);
}
}
private static bool IsSupportedAsset(string assetPath)
@@ -589,9 +556,12 @@ namespace AibisDream.EditorTools
return "-";
if (DateTime.TryParse(isoTime, out var dt))
{
return dt.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss");
}
return isoTime;
}
}
}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0b4c3d5e6f7081920314c5d6e7f8091a
guid: 6a43798aefb6a4142a7abe8d3dc1649a
MonoImporter:
externalObjects: {}
serializedVersion: 2
@@ -8,16 +8,14 @@ using UnityEngine;
namespace AibisDream.EditorTools
{
/// <summary>
/// 解析 Unity YAML 场景 / 预制体中的 DirectorHandler、AnimatorHandler,提取注册名与 GameObject 路径。
/// 解析 Unity YAML 场景 / 预制体中的 DirectorHandler 组件,提取 timelineName 和 GameObject 路径。
/// 解析方式:按 "--- !u!<classId> &<fileId>" 分段,构建 GameObject / Transform / MonoBehaviour 的索引。
/// </summary>
public static class YamlHandlerNameParser
public static class YamlTimelineParser
{
// DirectorHandler.cs.meta
// 来自 Assets/Scripts/SceneManagement/TimelineKit/DirectorHandler.cs.meta
public const string DirectorHandlerScriptGuid = "07d657d6b80509b4eb04f59afaa9aa2d";
// AnimatorHandler.cs.meta
public const string AnimatorHandlerScriptGuid = "babec43795065b244ac4cef4af7fa225";
private const int ClassIdGameObject = 1;
private const int ClassIdTransform = 4;
private const int ClassIdMonoBehaviour = 114;
@@ -43,18 +41,18 @@ namespace AibisDream.EditorTools
public long gameObjectFileId;
}
public static List<HandlerNameCacheEntry> ParseAsset(
public static List<TimelineNameCacheEntry> ParseAsset(
string assetPath,
string guid,
string fileHash,
string lastModifiedUtc)
{
var result = new List<HandlerNameCacheEntry>();
var result = new List<TimelineNameCacheEntry>();
if (string.IsNullOrEmpty(assetPath))
return result;
var fullPath = HandlerNameCache.GetAssetFullPath(assetPath);
var fullPath = TimelineNameCache.GetAssetFullPath(assetPath);
if (string.IsNullOrEmpty(fullPath) || !File.Exists(fullPath))
return result;
@@ -65,12 +63,15 @@ namespace AibisDream.EditorTools
}
catch (Exception e)
{
Debug.LogError($"[YamlHandlerNameParser] Failed to read '{fullPath}': {e}");
Debug.LogError($"[YamlTimelineParser] Failed to read '{fullPath}': {e}");
return result;
}
if (lines.Length == 0 || !lines[0].StartsWith("%YAML", StringComparison.Ordinal))
{
// 非 text 序列化,无法解析
return result;
}
var objects = BuildObjects(lines);
if (objects.Count == 0)
@@ -87,7 +88,9 @@ namespace AibisDream.EditorTools
case ClassIdGameObject:
var name = ExtractGameObjectName(lines, obj);
if (!string.IsNullOrEmpty(name))
{
gameObjectNames[obj.fileId] = name;
}
break;
case ClassIdTransform:
@@ -97,9 +100,10 @@ namespace AibisDream.EditorTools
transforms[tInfo.transformFileId] = tInfo;
if (tInfo.gameObjectFileId != 0 &&
!transformByGameObject.ContainsKey(tInfo.gameObjectFileId))
{
transformByGameObject[tInfo.gameObjectFileId] = tInfo.transformFileId;
}
}
break;
}
}
@@ -109,35 +113,23 @@ namespace AibisDream.EditorTools
if (obj.classId != ClassIdMonoBehaviour)
continue;
if (IsDirectorHandler(lines, obj))
if (!IsDirectorHandler(lines, obj))
continue;
var monoInfo = ExtractDirectorHandlerInfo(
lines,
obj,
assetPath,
guid,
fileHash,
lastModifiedUtc,
gameObjectNames,
transforms,
transformByGameObject);
if (monoInfo != null)
{
var monoInfo = ExtractDirectorHandlerInfo(
lines,
obj,
assetPath,
guid,
fileHash,
lastModifiedUtc,
gameObjectNames,
transforms,
transformByGameObject);
if (monoInfo != null)
result.Add(monoInfo);
}
else if (IsAnimatorHandler(lines, obj))
{
var monoInfo = ExtractAnimatorHandlerInfo(
lines,
obj,
assetPath,
guid,
fileHash,
lastModifiedUtc,
gameObjectNames,
transforms,
transformByGameObject);
if (monoInfo != null)
result.Add(monoInfo);
result.Add(monoInfo);
}
}
@@ -220,13 +212,17 @@ namespace AibisDream.EditorTools
{
var match = FileIdRegex.Match(line);
if (match.Success && long.TryParse(match.Groups[1].Value, out var id))
{
gameObjectFileId = id;
}
}
else if (line.StartsWith("m_Father:", StringComparison.Ordinal))
{
var match = FileIdRegex.Match(line);
if (match.Success && long.TryParse(match.Groups[1].Value, out var id))
{
parentTransformFileId = id;
}
}
}
@@ -250,28 +246,15 @@ namespace AibisDream.EditorTools
continue;
if (line.Contains(DirectorHandlerScriptGuid, StringComparison.OrdinalIgnoreCase))
{
return true;
}
}
return false;
}
private static bool IsAnimatorHandler(string[] lines, YamlObject obj)
{
for (var i = obj.startLine; i <= obj.endLine; i++)
{
var line = lines[i].TrimStart();
if (!line.StartsWith("m_Script:", StringComparison.Ordinal))
continue;
if (line.Contains(AnimatorHandlerScriptGuid, StringComparison.OrdinalIgnoreCase))
return true;
}
return false;
}
private static HandlerNameCacheEntry ExtractDirectorHandlerInfo(
private static TimelineNameCacheEntry ExtractDirectorHandlerInfo(
string[] lines,
YamlObject obj,
string assetPath,
@@ -284,17 +267,20 @@ namespace AibisDream.EditorTools
{
long gameObjectFileId = 0;
string timelineName = null;
var nameLine = -1;
int timelineNameLine = -1;
for (var i = obj.startLine; i <= obj.endLine; i++)
{
var line = lines[i].TrimStart();
var rawLine = lines[i];
var line = rawLine.TrimStart();
if (line.StartsWith("m_GameObject:", StringComparison.Ordinal))
{
var match = FileIdRegex.Match(line);
if (match.Success && long.TryParse(match.Groups[1].Value, out var id))
{
gameObjectFileId = id;
}
}
else if (line.StartsWith("timelineName:", StringComparison.Ordinal))
{
@@ -305,87 +291,30 @@ namespace AibisDream.EditorTools
value = value.Trim('"');
value = value.Trim('\'');
timelineName = UnescapeUnityYamlString(value);
nameLine = i + 1;
timelineNameLine = i + 1; // 转为 1-based
}
}
}
if (string.IsNullOrEmpty(timelineName))
{
// 没有设置 timelineName 的组件不计入
return null;
var isInScene = assetPath.EndsWith(".unity", StringComparison.OrdinalIgnoreCase);
var goPath = BuildGameObjectPath(gameObjectFileId, gameObjectNames, transforms, transformByGameObject);
return new HandlerNameCacheEntry
{
guid = guid,
assetPath = assetPath,
fileHash = fileHash,
lastModified = lastModifiedUtc,
registeredName = timelineName,
kind = HandlerEntryKind.DirectorHandler,
gameObjectPath = goPath,
isInScene = isInScene,
lineNumber = nameLine > 0 ? nameLine : obj.startLine + 1
};
}
private static HandlerNameCacheEntry ExtractAnimatorHandlerInfo(
string[] lines,
YamlObject obj,
string assetPath,
string guid,
string fileHash,
string lastModifiedUtc,
Dictionary<long, string> gameObjectNames,
Dictionary<long, TransformInfo> transforms,
Dictionary<long, long> transformByGameObject)
{
long gameObjectFileId = 0;
string animatorName = null;
var nameLine = -1;
for (var i = obj.startLine; i <= obj.endLine; i++)
{
var line = lines[i].TrimStart();
if (line.StartsWith("m_GameObject:", StringComparison.Ordinal))
{
var match = FileIdRegex.Match(line);
if (match.Success && long.TryParse(match.Groups[1].Value, out var id))
gameObjectFileId = id;
}
else if (line.StartsWith("animatorName:", StringComparison.Ordinal))
{
var idx = line.IndexOf(':');
if (idx >= 0 && idx + 1 < line.Length)
{
var value = line.Substring(idx + 1).Trim();
value = value.Trim('"');
value = value.Trim('\'');
animatorName = UnescapeUnityYamlString(value);
nameLine = i + 1;
}
}
}
if (string.IsNullOrEmpty(animatorName))
return null;
var isInScene = assetPath.EndsWith(".unity", StringComparison.OrdinalIgnoreCase);
var goPath = BuildGameObjectPath(gameObjectFileId, gameObjectNames, transforms, transformByGameObject);
return new HandlerNameCacheEntry
return new TimelineNameCacheEntry
{
guid = guid,
assetPath = assetPath,
fileHash = fileHash,
lastModified = lastModifiedUtc,
registeredName = animatorName,
kind = HandlerEntryKind.AnimatorHandler,
timelineName = timelineName,
gameObjectPath = goPath,
isInScene = isInScene,
lineNumber = nameLine > 0 ? nameLine : obj.startLine + 1
lineNumber = timelineNameLine > 0 ? timelineNameLine : obj.startLine + 1
};
}
@@ -414,7 +343,9 @@ namespace AibisDream.EditorTools
break;
if (!gameObjectNames.TryGetValue(tInfo.gameObjectFileId, out var name))
{
name = "GameObject";
}
segments.Add(name);
currentTransformId = tInfo.parentTransformFileId;
@@ -424,10 +355,12 @@ namespace AibisDream.EditorTools
return string.Join("/", segments);
}
/// <summary>
/// Unity YAML 中的字符串可能将非 ASCII 字符存储为 \uXXXX 转义,需要解码为实际 Unicode 字符。
/// </summary>
private static string UnescapeUnityYamlString(string value)
{
if (string.IsNullOrEmpty(value))
return value;
if (string.IsNullOrEmpty(value)) return value;
try
{
return Regex.Unescape(value);
@@ -439,3 +372,4 @@ namespace AibisDream.EditorTools
}
}
}
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9a3b2c4d5e6f70819203b4c5d6e7f809
guid: 19f28acc911bf7d4e86035daebc33190
MonoImporter:
externalObjects: {}
serializedVersion: 2
@@ -15,8 +15,8 @@
<ui:ListView focusable="true" name="clips-name-list" selection-type="None" show-add-remove-footer="false" />
</ui:VisualElement>
</ui:VisualElement>
<ui:VisualElement style="flex-shrink: 0; justify-content: space-around; align-items: center; align-self: stretch; height: auto; flex-direction: row; max-height: none; margin-top: 10px;">
<ui:HelpBox text="请先选择AnimatorController和Clips路径" message-type="Warning" name="match-message-box" style="width: 50%; flex-shrink: 0;" />
<ui:Button text="保存" parse-escape-sequences="true" display-tooltip-when-elided="true" name="import-merge-button" style="align-items: auto; flex-shrink: 0;" />
<ui:VisualElement style="flex-grow: 1; justify-content: space-around; align-items: center; align-self: stretch; height: auto; flex-direction: row; max-height: none;">
<ui:HelpBox text="请先选择AnimatorController和Clips路径" message-type="Warning" name="match-message-box" style="width: 50%;" />
<ui:Button text="保存" parse-escape-sequences="true" display-tooltip-when-elided="true" name="import-merge-button" style="align-items: auto;" />
</ui:VisualElement>
</ui:UXML>
@@ -533,16 +533,6 @@ namespace AibisDream.SystemEditor
settings.loopTime = animationData.loop;
AnimationUtility.SetAnimationClipSettings(clip, settings);
// 强制更新动画长度 (m_StopTime) - 修复复用已有 clip 时长度未更新的问题
float totalDuration = keyframes.Count > 0 ? keyframes[keyframes.Count - 1].time : 0f;
SerializedObject serializedClip = new SerializedObject(clip);
SerializedProperty stopTimeProp = serializedClip.FindProperty("m_StopTime");
if (stopTimeProp != null)
{
stopTimeProp.floatValue = totalDuration;
serializedClip.ApplyModifiedProperties();
}
// 保存 / 更新 AnimationClip 资源
if (isNewClip)
{
Binary file not shown.
+1 -1
View File
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d522a9b0350a2f4498fb9364b829ab24
guid: 27eb9614ce8140142ac6c80d97028d83
DefaultImporter:
externalObjects: {}
userData:
Binary file not shown.
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d11429ea779660f4b9c754958744590e
guid: 82d7ca8ed3c49bc4f9b7e0373634b31e
DefaultImporter:
externalObjects: {}
userData:
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 58281ec729da8654c90cd78b1de83d0f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 0145f545d845327439cd426f067b3525
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: ac8818abe0acd7f4288cebf3c9028ba9
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: eb21838c43f30ee4e98d62c28e8c334f
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,153 +0,0 @@
fileFormatVersion: 2
guid: 35341691b42df9b40a9b297c5d793cbd
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 215
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1,153 +0,0 @@
fileFormatVersion: 2
guid: 4081173bde5a7a14d90438fcd0b34c46
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 2
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1,140 +0,0 @@
fileFormatVersion: 2
guid: 89a5882b7891b9c4c98af9bfb0f9c0b7
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 2
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1,140 +0,0 @@
fileFormatVersion: 2
guid: 7024ce96968733641bfad8cc7411f46f
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 2
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1,153 +0,0 @@
fileFormatVersion: 2
guid: fbf2fe5af1390544fa3b46971863260a
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 0
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 4a7033848358bc940815ef7c8ba7544e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,153 +0,0 @@
fileFormatVersion: 2
guid: ba486173867be8a4bba7da6b9e34ebfd
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 43
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 2
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1,153 +0,0 @@
fileFormatVersion: 2
guid: 7180da7b721cde04b91c15b56d472d64
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 43
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 2
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1,153 +0,0 @@
fileFormatVersion: 2
guid: 7ae89f3424e7e344e8d5fa5b97be15cd
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 43
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 2
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1,153 +0,0 @@
fileFormatVersion: 2
guid: 89c122ac23995894999ff246a846baff
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 43
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 2
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
@@ -1,153 +0,0 @@
fileFormatVersion: 2
guid: 6b27c80c912a01848863c715ebc38fef
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 43
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 2
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:

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