Compare commits

..
17 Commits
Author SHA1 Message Date
Yeomai 44d7c06caa 移除ai 2026-10-14 22:24:24 +08:00
Yeomai 7e55f78a48 打包调试 2026-10-14 22:03:22 +08:00
tianmo 1aeaebcddb 敌人追踪 2026-10-14 19:33:29 +08:00
tianmo e839c158ac 敌人移动特效粒子动画 2026-10-14 18:07:56 +08:00
tianmo 3ae43d1297 得意黑字体安装 2026-10-14 14:46:24 +08:00
Yeomai d0144205c4 光照 2026-10-13 23:46:37 +08:00
Yeomai 6ab7e391ac 打包流程 2026-10-13 23:40:53 +08:00
Yeomai 0ca50e67a5 升级到 unity6.0国际版 2026-10-13 22:17:25 +08:00
tianmo 6f4a214113 调整 2026-10-13 19:28:50 +08:00
tianmo 5921a4884e 增加skill、加入界面基础加载 2026-10-13 18:40:42 +08:00
tianmo 839165ea63 引入spine 2026-10-12 19:22:02 +08:00
tianmo b26c7bbebd 材质修改 2026-10-12 14:26:05 +08:00
tianmo ae5c4212dc shader修改 2026-10-12 11:13:18 +08:00
tianmo 5bf02177df 优化特效-溶解材质 2026-10-12 10:38:19 +08:00
tianmo 5d58cb3743 材质修改 2026-10-10 20:12:37 +08:00
tianmo 7c1fedab2c 渲染管线+基础贴图 2026-10-10 18:00:07 +08:00
tianmo 8c61936fc9 新增 .gitattributes:统一 LF 行尾,Unity YAML 走专用合并
- Unity 的 YAML 资源(.unity/.prefab/.asset/.meta/.mat/.controller/.anim)统一按 LF 处理,
  避免 macOS 与 Windows 之间因行尾差异出现假改动
- 代码与着色器(.cs/.shader/.hlsl/.cginc/.compute)以及 .uxml/.uss/.json 固定 LF
- 图片、模型、音频、DLL、安装包等标记为 binary,禁止行尾转换与文本 diff
- 场景、预制体等 YAML 文件冲突改用 UnityYAMLMerge;本机需配置 merge.unityyamlmerge 驱动,
  未配置时自动回退为普通合并

库内文件当前已全部为 LF,无需再做 renormalize。
2026-10-10 17:19:59 +08:00
270 changed files with 87110 additions and 950 deletions

No files matched your search

@@ -0,0 +1,64 @@
---
name: task-difficulty-verification
description: 按需求难度分配验证成本——简单改动只做最省的确认、不跑测试;复杂改动必须做回归测试,避免改完反复返工。在本项目(Unity Vision)里做代码、场景或资源改动时适用。
---
# 按难度分配验证成本
目标:简单任务不要为了「保险」浪费 token 去测试;复杂任务必须验证,避免改错没发现、来回返工。
## 先判定难度,并用一句话说明
动手前判定,并用一句话告诉用户这次算简单还是复杂(例如「这算简单任务,改完直接给你」)。判错了用户能当场纠正。
**简单任务**(符合任一):
- 单文件小改、文案 / 命名 / 日志 / 注释
- 只读查询、看状态、回答问题
- 加一个对象、调一个参数、改个颜色或层级
- 删除无用代码,且无人引用
- 影响面单一,且用户已明确说明期望结果
**复杂任务**(符合任一):
- 跨文件 / 跨模块,或改动落在公共 API、被多处调用的代码上
- 核心逻辑、算法、状态机、存档或数据格式、构建配置、包依赖、渲染管线、材质 / Shader
- 改动会引入其他代码要使用的新类型、新接口、新字段
- 改错了不容易被发现,或者可能破坏原本能跑的东西
- 用户明确要求验证或回归
拿不准时按复杂处理。
## 「删除兜底代码」属于哪一档
删运行时的后备逻辑(自动查找节点、默认值、容错分支)时,别按行数、也别按动了几个文件判,按**删掉之后出错看不看得见**判:
- 后备路径其实没被走到(引用 / 配置本来就接全)→ 等同删死代码,**简单任务**,同一件事涉及几个文件也一样。只做一次最便宜的确认:查一遍引用确实接好,然后交付。
- 后备路径确实在兜着东西(有地方没接)→ **复杂任务**。这种改动出错的表现是「不报错、就是不工作」,必须回归。
- 光读代码分不出是哪种:**后备代码在的时候,「引用是否接全」本身是看不见的**,所以不能拿「我只是删死代码」当免检前提。查一次实际接线就能分清,而这个检查本身就是那次最便宜的确认。
## 简单任务:不做测试
- 直接改完交付,最多做一次最便宜的确认:读一次返回值、看一眼 transform、curl 一次接口。
- 不跑测试套件,不做回归,不为了确认把整个项目重读一遍。
- 不要用「更保险」当理由补验证步骤。
- **本项目的简单改动不要再跑这些**:Unity 编译检查、控制台检查、进 Play 模式实测、保存场景 / 预制体。它们只在「复杂任务:必须回归」那一档才做。
典型的简单改动:改字段类型 / 字段名 / 默认值、文案 / 注释 / 日志、调 Inspector 数值。
## 复杂任务:必须回归
按下面顺序做,够用即停:
1. 先让编译错误清零:读 `mcpforunity://editor/state` 等到 `compilation.is_compiling == false`,再 `read_console(types=["error"], count="10")`。
2. 跑覆盖本次改动的测试(`run_tests`,EditMode / PlayMode 按改动性质选),只跑相关范围,不重跑全量。
3. 回头验证本次改动会碰到、但原本正常的行为:调用方、相邻功能点、序列化数据、场景里已存在的对象。
4. 结果讲清楚:跑了什么、过没过、哪部分没测以及原因。
## 避免重复修改
- 验证通过就停手,不要顺手再改别的地方。
- 验证不过:定位根因改一次,重跑同一条验证;不要一边猜一边连续打补丁。
- 同一处连续两次修不好,停下来把现象和判断交给用户决定。
用户明确要求跑测试、或明确说不用测时,以用户的要求为准。
@@ -0,0 +1,113 @@
---
name: unity-development-rules
description: Unity 开发规则(Unity Vision 项目)。在本项目里写或改 C# 脚本、预制体、场景时适用,包含节点引用接线等硬性约定。
---
# Unity 开发规则
本项目的硬性约定。动手写脚本、改预制体或场景之前先对照这里。
## 节点引用必须在 Inspector / 预制体里指定,不能硬编码到代码
脚本要访问场景或预制体里的节点(Transform、Text、Image、其他组件……)时,一律用 `[SerializeField]` 字段,由 Inspector 或预制体把引用接好。
**不允许**——在代码里按名字 / 标签 / 路径找节点:
```csharp
// ❌ 节点名字写死在代码里
target = transform.Find("FPS").GetComponent<TMP_Text>();
target = GameObject.Find("FPS").GetComponent<TMP_Text>();
foreach (var t in GetComponentsInChildren<TMP_Text>(true))
if (t.name == "FPS") return t;
```
**允许**:
```csharp
[SerializeField] private TMP_Text target; // ✅ 引用由 Inspector / 预制体提供
```
**为什么**:节点改名或挪位置以后,硬编码的查找会静默失效——不报错、就是不工作;而且引用关系藏在代码里,看 Inspector 看不出到底接没接上。
**引用为空时**:不要写运行时兜底查找,直接报错,让接线问题第一时间暴露。
```csharp
private void Awake()
{
if (target == null)
Debug.LogError("[Xxx] 没有指定 target,请在 Inspector 里拖入。", this);
}
```
**边界**:这条只约束游戏运行时代码。编辑器工具、一次性批处理脚本需要按结构查找节点时可以照常查找。
## Inspector 里的字段名怎么显示成中文
**`[InspectorName]` 管不了普通字段**:Unity 6 的文档对这个特性写的是 "enum value declarations"(只讲枚举值),实测把 `[InspectorName("...")]` 加在 `[SerializeField]` 字段上,字段的 `displayName` 仍是英文原名。别用它来改字段标签。
想让字段在 Inspector 里显示中文,只有这几条路:
1. **中文字段名**(要精确控制标签时用这个)。C# 允许 Unicode 标识符,字段名写中文,Inspector 里就显示这个中文——编辑器不会给中文插空格、术语表也不会翻译它(实测 `NicifyVariableName("可到达半径")` → `可到达半径`)。**改名前必须加 `[FormerlySerializedAs("旧名")]`**:Unity 按字段名反序列化,直接改名会清空 Inspector 里已经接好的引用。
```csharp
// 语义是「玩家可到达的半径」,Inspector 里就显示「可到达半径」
[Tooltip("玩家可到达的半径,单位米")]
[FormerlySerializedAs("reachableRadius")]
[SerializeField] private float 可到达半径 = 5f;
```
2. **自定义 Editor**:`[CustomEditor(typeof(Xxx))]` 里 `EditorGUILayout.PropertyField(prop, new GUIContent("可到达半径"))`。字段少又必须换标签时才用,字段一多就是维护负担。
3. **不改标签,用 `[Tooltip]` 补说明**:字段名保持英文(项目现状),鼠标悬停能看到中文说明。字段名本身够清楚时,这条就够了。
**中文名按「这个字段在这个项目里干什么」来定,不要直译英文名**:表示玩家可到达的半径,就写「可到达半径」,不要写成「半径」或「可达半径值」——同一个 Inspector 里经常并列出现好几个半径 / 距离 / 目标,标签本身就得能分清谁是谁。
**顺带一个坑**:编辑器语言是中文时,Unity 会按**内置术语表**翻译常见字段名(`prefab` → 预制件、`radius` → 半径 之类),只覆盖常见词——字段名一旦不是标准词,标签就原样显示英文。所以 Inspector 上看到的中文未必写在代码里,别去 `.cs` 里搜。
## 动画一律用 Animator 播,不用 legacy 的 Animation 组件
要在物体上播放动画时,走 `Animator`(状态 / 触发器 / 参数):
```csharp
[SerializeField] private Animator animator; // ✅ 引用由 Inspector / 预制体提供
```
**不允许**——用老的 `Animation` 组件播动画:
```csharp
// ❌ legacy 的 Animation 组件
_animation = GetComponent<Animation>();
_animation.clip = someClip;
_animation.Play();
// ❌ 运行时自己补一个 Animation 组件
gameObject.AddComponent<Animation>();
```
**为什么**:项目统一一套动画播放方式,动画和程序看同一处。混用会让同一个物体上既有 `Animator` 又有 `Animation`,两边驱动同一批属性,播放互相打架、排查困难。
**例外**:用户明确说明这次要用 `Animation` 才用,且只限那一次改动。
## 只做用户点名要做的事
用户说改哪里就只改哪里。下面这些都算「没说过的事」,不要顺手做:
- 给预制体 / 物体加组件(尤其是为了让自己写的代码能跑起来而补一个组件)
- 加用户没提过的功能或容错(自动回收、时长兜底、默认值兜底……)
- 动用户已经定好的行为或时序(例如特效 / 动画的播放时机)
- 保存场景、保存预制体、改其它资源
不改就做不下去时,先说明「为什么必须动它」并问一句,确认后再动。
## 预制体资产存不下场景对象引用
预制体上的脚本要指向场景里的物体(玩家、UI、相机……)时,预制体资产里这个字段只能是空的,
必须在**每个场景实例上各接一次**;指向资源(预制体、Clip、材质)的字段才可以直接在预制体上设。
接的时候留意目标是不是「真正会移动 / 变化」的那个节点:玩家根节点不动、真正移动的是子节点时,要接子节点。
## 「编译干净」要先确认脚本真的被 Unity 导入
改完脚本后,确认对应的 `*.cs.meta` 已生成、类型能在编辑器程序集里查到,再看编译结果。
否则 Unity 还没导入这个文件,控制台没报错不代表它编译通过。
+76
View File
@@ -0,0 +1,76 @@
# ============================================================
# Unity 项目 .gitattributes
# 行尾统一为 LF,二进制资源禁止转换,Unity YAML 走专用合并
# ============================================================
# 默认按文本处理,自动识别
* text=auto
# --- Unity YAML 资源 ---
*.unity text eol=lf
*.prefab text eol=lf
*.asset text eol=lf
*.meta text eol=lf
*.mat text eol=lf
*.controller text eol=lf
*.anim text eol=lf
*.playable text eol=lf
*.mask text eol=lf
*.physicMaterial text eol=lf
*.physicsMaterial2D text eol=lf
*.asmdef text eol=lf
*.asmref text eol=lf
*.json text eol=lf
# --- 代码 / 着色器 / UI ---
*.cs text eol=lf
*.shader text eol=lf
*.hlsl text eol=lf
*.cginc text eol=lf
*.compute text eol=lf
*.uxml text eol=lf
*.uss text eol=lf
# --- 二进制资源 ---
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.psd binary
*.tga binary
*.tif binary
*.exr binary
*.hdr binary
*.bmp binary
*.fbx binary
*.obj binary
*.blend binary
*.3ds binary
*.dae binary
*.wav binary
*.mp3 binary
*.ogg binary
*.aiff binary
*.mp4 binary
*.mov binary
*.webm binary
*.dll binary
*.so binary
*.dylib binary
*.a binary
*.bundle binary
*.unitypackage binary
*.apk binary
*.aab binary
*.app binary
*.keystore binary
*.jks binary
*.p12 binary
# --- Unity YAML 冲突走 UnityYAMLMerge ---
*.unity merge=unityyamlmerge
*.prefab merge=unityyamlmerge
*.asset merge=unityyamlmerge
*.meta merge=unityyamlmerge
*.controller merge=unityyamlmerge
*.anim merge=unityyamlmerge
+6
View File
@@ -65,3 +65,9 @@ mono_crash.*.json
crashlytics-build.properties
.DS_Store
*~
# --- 打包中间产物:性能测试包在打包开始时生成到 Assets/Resources,打包结束自动删除 ---
# 只忽略这两个文件本身,目录 Assets/Resources 与其 .meta 必须保留
/Assets/Resources/PerformanceTestRunInfo.json
/Assets/Resources/PerformanceTestRunInfo.json.meta
/Assets/Resources/PerformanceTestRunSettings.json
/Assets/Resources/PerformanceTestRunSettings.json.meta
+1 -1
View File
@@ -51,5 +51,5 @@
"temp/": true,
"Temp/": true
},
"dotnet.defaultSolution": "Vision.sln"
"dotnet.defaultSolution": "Vision.slnx"
}
+6
View File
@@ -0,0 +1,6 @@
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Workload.ManagedGame"
]
}
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 767f20ae2446b43e68bfa1eccdd9a1f1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8a46a9225d5144ad68666cb3de77cc97
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+93
View File
@@ -0,0 +1,93 @@
Copyright (c) 2022--2024, atelierAnchor <https://atelier-anchor.com>,
with Reserved Font Name <Smiley> and <得意黑>.
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 1f39fb22aabd14de79e38f89e7ff3908
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,21 @@
fileFormatVersion: 2
guid: 7fd35e48d8eb740bf85a60139166ab5e
TrueTypeFontImporter:
externalObjects: {}
serializedVersion: 4
fontSize: 16
forceTextureCase: -2
characterSpacing: 0
characterPadding: 1
includeFontData: 1
fontNames:
- Smiley Sans
fallbackFontReferences: []
customCharacters:
fontRenderingMode: 0
ascentCalculationMode: 1
useLegacyBoundsCalculation: 0
shouldRoundAdvanceValue: 1
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d99021c3409fe4c7b94d3d2901f90926
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,510 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &-8927451692266045157
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SmileySans-Oblique SDF Material
m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Cube:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _FaceTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: -4117240312920070829}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OutlineTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _Ambient: 0.5
- _Bevel: 0.5
- _BevelClamp: 0
- _BevelOffset: 0
- _BevelRoundness: 0
- _BevelWidth: 0
- _BumpFace: 0
- _BumpOutline: 0
- _ColorMask: 15
- _CullMode: 0
- _Diffuse: 0.5
- _FaceDilate: 0
- _FaceUVSpeedX: 0
- _FaceUVSpeedY: 0
- _GlowInner: 0.05
- _GlowOffset: 0
- _GlowOuter: 0.05
- _GlowPower: 0.75
- _GradientScale: 10
- _LightAngle: 3.1416
- _MaskSoftnessX: 0
- _MaskSoftnessY: 0
- _OutlineSoftness: 0
- _OutlineUVSpeedX: 0
- _OutlineUVSpeedY: 0
- _OutlineWidth: 0
- _PerspectiveFilter: 0.875
- _Reflectivity: 10
- _ScaleRatioA: 0.9
- _ScaleRatioB: 0.73125
- _ScaleRatioC: 0.73125
- _ScaleX: 1
- _ScaleY: 1
- _ShaderFlags: 0
- _Sharpness: 0
- _SpecularPower: 2
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _TextureHeight: 2048
- _TextureWidth: 2048
- _UnderlayDilate: 0
- _UnderlayOffsetX: 0
- _UnderlayOffsetY: 0
- _UnderlaySoftness: 0
- _VertexOffsetX: 0
- _VertexOffsetY: 0
- _WeightBold: 0.75
- _WeightNormal: 0
m_Colors:
- _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767}
- _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0}
- _FaceColor: {r: 1, g: 1, b: 1, a: 1}
- _GlowColor: {r: 0, g: 1, b: 0, a: 0.5}
- _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767}
- _OutlineColor: {r: 0, g: 0, b: 0, a: 1}
- _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1}
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!28 &-4117240312920070829
Texture2D:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: SmileySans-Oblique SDF Atlas
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_IsAlphaChannelOptional: 0
serializedVersion: 4
m_Width: 2048
m_Height: 2048
m_CompleteImageSize: 4194304
m_MipsStripped: 0
m_TextureFormat: 1
m_MipCount: 1
m_IsReadable: 1
m_IsPreProcessed: 0
m_IgnoreMipmapLimit: 1
m_MipmapLimitGroupName:
m_StreamingMipmaps: 0
m_StreamingMipmapsPriority: 0
m_VTOnly: 0
m_AlphaIsTransparency: 0
m_ImageCount: 1
m_TextureDimension: 2
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 1
m_MipBias: 0
m_WrapU: 0
m_WrapV: 0
m_WrapW: 0
m_LightmapFormat: 0
m_ColorSpace: 0
m_PlatformBlob:
image data: 4194304
_typelessdata: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040607070807060401000402000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030608090806030000000000000004060706040000000004060709090707050100000000000000020608080a0b090706040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Line truncated
m_StreamData:
serializedVersion: 2
offset: 0
size: 0
path:
--- !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: 71c1514a6bd24e1e882cebbe1904ce04, type: 3}
m_Name: SmileySans-Oblique SDF
m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TMP_FontAsset
m_Version: 1.1.0
m_FaceInfo:
m_FaceIndex: 0
m_FamilyName: Smiley Sans
m_StyleName: Oblique
m_PointSize: 90
m_Scale: 1
m_UnitsPerEM: 1000
m_LineHeight: 108.00001
m_AscentLine: 87.3
m_CapLine: 71
m_MeanLine: 53
m_Baseline: 0
m_DescentLine: -20.7
m_SuperscriptOffset: 87.3
m_SuperscriptSize: 0.5
m_SubscriptOffset: -20.7
m_SubscriptSize: 0.5
m_UnderlineOffset: -11.25
m_UnderlineThickness: 4.5
m_StrikethroughOffset: 21.2
m_StrikethroughThickness: 4.5
m_TabWidth: 17
m_Material: {fileID: -8927451692266045157}
m_SourceFontFileGUID: 7fd35e48d8eb740bf85a60139166ab5e
m_CreationSettings:
sourceFontFileName:
sourceFontFileGUID: 7fd35e48d8eb740bf85a60139166ab5e
faceIndex: 0
pointSizeSamplingMode: 1
pointSize: 90
padding: 9
paddingMode: 1
packingMode: 0
atlasWidth: 2048
atlasHeight: 2048
characterSetSelectionMode: 6
characterSequence: 0020-007E,00A0-00FF,2000-206F,3000-303F,8203,8230,9633,FF00-FFEF
referencedFontAssetGUID:
referencedTextAssetGUID:
fontStyle: 0
fontStyleModifier: 0
renderMode: 4165
includeFontFeatures: 0
m_SourceFontFile: {fileID: 12800000, guid: 7fd35e48d8eb740bf85a60139166ab5e, type: 3}
m_SourceFontFilePath:
m_AtlasPopulationMode: 1
InternalDynamicOS: 0
m_GlyphTable:
- m_Index: 7486
m_Metrics:
m_Width: 64.96875
m_Height: 86.046875
m_HorizontalBearingX: 2.4375
m_HorizontalBearingY: 78.9375
m_HorizontalAdvance: 72
m_GlyphRect:
m_X: 10
m_Y: 10
m_Width: 66
m_Height: 87
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 1148
m_Metrics:
m_Width: 62.375
m_Height: 86.484375
m_HorizontalBearingX: 5.3125
m_HorizontalBearingY: 79.921875
m_HorizontalAdvance: 72
m_GlyphRect:
m_X: 10
m_Y: 116
m_Width: 63
m_Height: 87
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 7029
m_Metrics:
m_Width: 62.375
m_Height: 86.9375
m_HorizontalBearingX: 5.3125
m_HorizontalBearingY: 79.828125
m_HorizontalAdvance: 72
m_GlyphRect:
m_X: 10
m_Y: 222
m_Width: 63
m_Height: 88
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 5911
m_Metrics:
m_Width: 63.4375
m_Height: 84.5
m_HorizontalBearingX: 5.046875
m_HorizontalBearingY: 77.125
m_HorizontalAdvance: 72
m_GlyphRect:
m_X: 10
m_Y: 329
m_Width: 64
m_Height: 86
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 2613
m_Metrics:
m_Width: 64.625
m_Height: 84.421875
m_HorizontalBearingX: 4.046875
m_HorizontalBearingY: 75.875
m_HorizontalAdvance: 72
m_GlyphRect:
m_X: 92
m_Y: 116
m_Width: 65
m_Height: 85
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 2085
m_Metrics:
m_Width: 67.234375
m_Height: 86.953125
m_HorizontalBearingX: 2.515625
m_HorizontalBearingY: 80.015625
m_HorizontalAdvance: 72
m_GlyphRect:
m_X: 92
m_Y: 220
m_Width: 68
m_Height: 88
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 4272
m_Metrics:
m_Width: 68.390625
m_Height: 87.109375
m_HorizontalBearingX: 2.34375
m_HorizontalBearingY: 79.734375
m_HorizontalAdvance: 72
m_GlyphRect:
m_X: 176
m_Y: 10
m_Width: 69
m_Height: 88
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
- m_Index: 2936
m_Metrics:
m_Width: 64.34375
m_Height: 87.75
m_HorizontalBearingX: 3.515625
m_HorizontalBearingY: 79.921875
m_HorizontalAdvance: 72
m_GlyphRect:
m_X: 10
m_Y: 434
m_Width: 65
m_Height: 88
m_Scale: 1
m_AtlasIndex: 0
m_ClassDefinitionType: 0
m_CharacterTable:
- m_ElementType: 1
m_Unicode: 36864
m_GlyphIndex: 7486
m_Scale: 1
- m_ElementType: 1
m_Unicode: 20986
m_GlyphIndex: 1148
m_Scale: 1
- m_ElementType: 1
m_Unicode: 35774
m_GlyphIndex: 7029
m_Scale: 1
- m_ElementType: 1
m_Unicode: 32622
m_GlyphIndex: 5911
m_Scale: 1
- m_ElementType: 1
m_Unicode: 24320
m_GlyphIndex: 2613
m_Scale: 1
- m_ElementType: 1
m_Unicode: 22987
m_GlyphIndex: 2085
m_Scale: 1
- m_ElementType: 1
m_Unicode: 28216
m_GlyphIndex: 4272
m_Scale: 1
- m_ElementType: 1
m_Unicode: 25103
m_GlyphIndex: 2936
m_Scale: 1
m_AtlasTextures:
- {fileID: -4117240312920070829}
m_AtlasTextureIndex: 0
m_IsMultiAtlasTexturesEnabled: 1
m_GetFontFeatures: 0
m_ClearDynamicDataOnBuild: 1
m_AtlasWidth: 2048
m_AtlasHeight: 2048
m_AtlasPadding: 9
m_AtlasRenderMode: 4165
m_UsedGlyphRects:
- m_X: 0
m_Y: 0
m_Width: 85
m_Height: 106
- m_X: 0
m_Y: 106
m_Width: 82
m_Height: 106
- m_X: 0
m_Y: 212
m_Width: 82
m_Height: 107
- m_X: 0
m_Y: 319
m_Width: 83
m_Height: 105
- m_X: 82
m_Y: 106
m_Width: 84
m_Height: 104
- m_X: 82
m_Y: 210
m_Width: 87
m_Height: 107
- m_X: 166
m_Y: 0
m_Width: 88
m_Height: 107
- m_X: 0
m_Y: 424
m_Width: 84
m_Height: 107
m_FreeGlyphRects:
- m_X: 82
m_Y: 317
m_Width: 1965
m_Height: 2
- m_X: 85
m_Y: 0
m_Width: 81
m_Height: 106
- m_X: 166
m_Y: 107
m_Width: 1881
m_Height: 103
- m_X: 169
m_Y: 107
m_Width: 1878
m_Height: 1940
- m_X: 254
m_Y: 0
m_Width: 1793
m_Height: 2047
- m_X: 0
m_Y: 531
m_Width: 2047
m_Height: 1516
- m_X: 83
m_Y: 317
m_Width: 1964
m_Height: 107
- m_X: 84
m_Y: 317
m_Width: 1963
m_Height: 1730
m_FontFeatureTable:
m_MultipleSubstitutionRecords: []
m_LigatureSubstitutionRecords: []
m_GlyphPairAdjustmentRecords: []
m_MarkToBaseAdjustmentRecords: []
m_MarkToMarkAdjustmentRecords: []
m_ShouldReimportFontFeatures: 0
m_FallbackFontAssetTable: []
m_FontWeightTable:
- regularTypeface: {fileID: 0}
italicTypeface: {fileID: 0}
- regularTypeface: {fileID: 0}
italicTypeface: {fileID: 0}
- regularTypeface: {fileID: 0}
italicTypeface: {fileID: 0}
- regularTypeface: {fileID: 0}
italicTypeface: {fileID: 0}
- regularTypeface: {fileID: 0}
italicTypeface: {fileID: 0}
- regularTypeface: {fileID: 0}
italicTypeface: {fileID: 0}
- regularTypeface: {fileID: 0}
italicTypeface: {fileID: 0}
- regularTypeface: {fileID: 0}
italicTypeface: {fileID: 0}
- regularTypeface: {fileID: 0}
italicTypeface: {fileID: 0}
- regularTypeface: {fileID: 0}
italicTypeface: {fileID: 0}
fontWeights: []
normalStyle: 0
normalSpacingOffset: 0
boldStyle: 0.75
boldSpacing: 7
italicStyle: 35
tabSize: 10
m_fontInfo:
Name:
PointSize: 0
Scale: 0
CharacterCount: 0
LineHeight: 0
Baseline: 0
Ascender: 0
CapHeight: 0
Descender: 0
CenterLine: 0
SuperscriptOffset: 0
SubscriptOffset: 0
SubSize: 0
Underline: 0
UnderlineThickness: 0
strikethrough: 0
strikethroughThickness: 0
TabWidth: 0
Padding: 0
AtlasWidth: 0
AtlasHeight: 0
m_glyphInfoList: []
m_KerningTable:
kerningPairs: []
fallbackFontAssets: []
atlas: {fileID: 0}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 39a0999dfda46415d8cb47c0af34425c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f2b355be7b8e043c284b522bf019ec71
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+869
View File
@@ -0,0 +1,869 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &448832561162696443
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8122162583318469730}
- component: {fileID: 8094119460062558940}
- component: {fileID: 9178021984139815003}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8122162583318469730
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 448832561162696443}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 386739684198077203}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 200, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8094119460062558940
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 448832561162696443}
m_CullTransparentMesh: 1
--- !u!114 &9178021984139815003
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 448832561162696443}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u9000\u51FA\n"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &1711305871754027684
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2716289115834271656}
- component: {fileID: 6441692389451551187}
- component: {fileID: 8433752425876594347}
- component: {fileID: 5262932774126942146}
m_Layer: 5
m_Name: button_start
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2716289115834271656
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1711305871754027684}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7318911407796138674}
m_Father: {fileID: 4239241503696807466}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 115}
m_SizeDelta: {x: 400, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6441692389451551187
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1711305871754027684}
m_CullTransparentMesh: 1
--- !u!114 &8433752425876594347
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1711305871754027684}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.5566038, g: 0.5566038, b: 0.5566038, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &5262932774126942146
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1711305871754027684}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 8433752425876594347}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
m_TargetAssemblyTypeName: MainMenu, Assembly-CSharp
m_MethodName: OnStartClicked
m_Mode: 0
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName:
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!1 &3436160046666079938
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5812142528611729957}
- component: {fileID: 2567210313262782293}
- component: {fileID: 3929010241593642976}
m_Layer: 5
m_Name: button_settings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5812142528611729957
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3436160046666079938}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 467631604685648855}
m_Father: {fileID: 4239241503696807466}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -15}
m_SizeDelta: {x: 400, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2567210313262782293
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3436160046666079938}
m_CullTransparentMesh: 1
--- !u!114 &3929010241593642976
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3436160046666079938}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.5566038, g: 0.5566038, b: 0.5566038, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &3930545697855790736
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4239241503696807466}
m_Layer: 5
m_Name: Display
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4239241503696807466
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3930545697855790736}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1024108681053612849}
- {fileID: 2716289115834271656}
- {fileID: 5812142528611729957}
- {fileID: 386739684198077203}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &4501733423580401971
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1024108681053612849}
- component: {fileID: 1576371461921322040}
- component: {fileID: 2415037613533731144}
m_Layer: 5
m_Name: BG_Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1024108681053612849
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4501733423580401971}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 4239241503696807466}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1576371461921322040
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4501733423580401971}
m_CullTransparentMesh: 1
--- !u!114 &2415037613533731144
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4501733423580401971}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.26415092, g: 0.26415092, b: 0.26415092, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &6812073856054311023
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 467631604685648855}
- component: {fileID: 1719560711185747215}
- component: {fileID: 4828899361684662238}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &467631604685648855
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6812073856054311023}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5812142528611729957}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 200, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1719560711185747215
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6812073856054311023}
m_CullTransparentMesh: 1
--- !u!114 &4828899361684662238
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6812073856054311023}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u8BBE\u7F6E"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &7970175801429006359
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7318911407796138674}
- component: {fileID: 6669893808439612721}
- component: {fileID: 8006408860936601219}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &7318911407796138674
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7970175801429006359}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2716289115834271656}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 200, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6669893808439612721
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7970175801429006359}
m_CullTransparentMesh: 1
--- !u!114 &8006408860936601219
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7970175801429006359}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u5F00\u59CB\u6E38\u620F"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &8839426892266459139
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 386739684198077203}
- component: {fileID: 4340879920758205189}
- component: {fileID: 1410143352512231490}
- component: {fileID: 4290274303801895624}
m_Layer: 5
m_Name: button_exit
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &386739684198077203
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8839426892266459139}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8122162583318469730}
m_Father: {fileID: 4239241503696807466}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -145}
m_SizeDelta: {x: 400, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4340879920758205189
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8839426892266459139}
m_CullTransparentMesh: 1
--- !u!114 &1410143352512231490
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8839426892266459139}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.5566038, g: 0.5566038, b: 0.5566038, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &4290274303801895624
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8839426892266459139}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1410143352512231490}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
m_TargetAssemblyTypeName: MainMenu, Assembly-CSharp
m_MethodName: OnExitClicked
m_Mode: 0
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName:
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c297eb82e5d6b4957b5619f595673d51
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,244 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &6425183271725284041
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3239380777009020799}
- component: {fileID: 6218795531409178724}
- component: {fileID: 6678746856024674828}
m_Layer: 5
m_Name: FPS
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3239380777009020799
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6425183271725284041}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 738559199794729866}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 140, y: -54}
m_SizeDelta: {x: 200, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6218795531409178724
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6425183271725284041}
m_CullTransparentMesh: 1
--- !u!114 &6678746856024674828
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6425183271725284041}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: 'FPS:'
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 1
m_VerticalAlignment: 256
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6855968923735043733
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 738559199794729866}
- component: {fileID: 2943090586319084098}
- component: {fileID: 7796199694016904227}
m_Layer: 0
m_Name: RuntimeSettingsUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &738559199794729866
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6855968923735043733}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5772548879343942804}
- {fileID: 3239380777009020799}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2943090586319084098
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6855968923735043733}
m_CullTransparentMesh: 1
--- !u!114 &7796199694016904227
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6855968923735043733}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5cd887902ce124147b00d8e0173c77f1, type: 3}
m_Name:
m_EditorClassIdentifier:
target: {fileID: 6678746856024674828}
updateInterval: 0.25
format: FPS:{0:0}f/s
--- !u!1 &9083727530836819591
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5772548879343942804}
- component: {fileID: 1747812523818855795}
m_Layer: 0
m_Name: RuntimeSettings
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5772548879343942804
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9083727530836819591}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 738559199794729866}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1747812523818855795
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9083727530836819591}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec4449e5442054472af2a1b06c676efc, type: 3}
m_Name:
m_EditorClassIdentifier:
targetFrameRate: 60
vSyncCount: 0
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4d5d36acce6594f6b8cb501b76da76ab
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+798
View File
@@ -0,0 +1,798 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-8956640694201925796
MonoBehaviour:
m_ObjectHideFlags: 3
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: c01700fd266d6914ababb731e09af2eb, type: 3}
m_Name: DepthOfField
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.DepthOfField
active: 1
mode:
m_OverrideState: 1
m_Value: 0
gaussianStart:
m_OverrideState: 1
m_Value: 10
gaussianEnd:
m_OverrideState: 1
m_Value: 30
gaussianMaxRadius:
m_OverrideState: 1
m_Value: 1
highQualitySampling:
m_OverrideState: 1
m_Value: 0
focusDistance:
m_OverrideState: 1
m_Value: 10
aperture:
m_OverrideState: 1
m_Value: 5.6
focalLength:
m_OverrideState: 1
m_Value: 50
bladeCount:
m_OverrideState: 1
m_Value: 5
bladeCurvature:
m_OverrideState: 1
m_Value: 1
bladeRotation:
m_OverrideState: 1
m_Value: 0
--- !u!114 &-7173271369525976892
MonoBehaviour:
m_ObjectHideFlags: 3
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: 06437c1ff663d574d9447842ba0a72e4, type: 3}
m_Name: ScreenSpaceLensFlare
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ScreenSpaceLensFlare
active: 1
intensity:
m_OverrideState: 1
m_Value: 0
tintColor:
m_OverrideState: 1
m_Value: {r: 1, g: 1, b: 1, a: 1}
bloomMip:
m_OverrideState: 1
m_Value: 1
firstFlareIntensity:
m_OverrideState: 1
m_Value: 1
secondaryFlareIntensity:
m_OverrideState: 1
m_Value: 1
warpedFlareIntensity:
m_OverrideState: 1
m_Value: 1
warpedFlareScale:
m_OverrideState: 1
m_Value: {x: 1, y: 1}
samples:
m_OverrideState: 1
m_Value: 1
sampleDimmer:
m_OverrideState: 1
m_Value: 0.5
vignetteEffect:
m_OverrideState: 1
m_Value: 1
startingPosition:
m_OverrideState: 1
m_Value: 1.25
scale:
m_OverrideState: 1
m_Value: 1.5
streaksIntensity:
m_OverrideState: 1
m_Value: 0
streaksLength:
m_OverrideState: 1
m_Value: 0.5
streaksOrientation:
m_OverrideState: 1
m_Value: 0
streaksThreshold:
m_OverrideState: 1
m_Value: 0.25
resolution:
m_OverrideState: 1
m_Value: 4
chromaticAbberationIntensity:
m_OverrideState: 1
m_Value: 0.5
--- !u!114 &-6590605684323296252
MonoBehaviour:
m_ObjectHideFlags: 3
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: 0b2db86121404754db890f4c8dfe81b2, type: 3}
m_Name: Bloom
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.Bloom
active: 1
skipIterations:
m_OverrideState: 1
m_Value: 1
threshold:
m_OverrideState: 1
m_Value: 0.9
intensity:
m_OverrideState: 1
m_Value: 0
scatter:
m_OverrideState: 1
m_Value: 0.7
clamp:
m_OverrideState: 1
m_Value: 65472
tint:
m_OverrideState: 1
m_Value: {r: 1, g: 1, b: 1, a: 1}
highQualityFiltering:
m_OverrideState: 1
m_Value: 0
filter:
m_OverrideState: 1
m_Value: 0
downscale:
m_OverrideState: 1
m_Value: 0
maxIterations:
m_OverrideState: 1
m_Value: 6
dirtTexture:
m_OverrideState: 1
m_Value: {fileID: 0}
dimension: 1
dirtIntensity:
m_OverrideState: 1
m_Value: 0
--- !u!114 &-6125802814728068006
MonoBehaviour:
m_ObjectHideFlags: 3
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: 899c54efeace73346a0a16faa3afe726, type: 3}
m_Name: Vignette
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.Vignette
active: 1
color:
m_OverrideState: 1
m_Value: {r: 0, g: 0, b: 0, a: 1}
center:
m_OverrideState: 1
m_Value: {x: 0.5, y: 0.5}
intensity:
m_OverrideState: 1
m_Value: 0
smoothness:
m_OverrideState: 1
m_Value: 0.2
rounded:
m_OverrideState: 1
m_Value: 0
--- !u!114 &-4574649392742586442
MonoBehaviour:
m_ObjectHideFlags: 3
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: 6bd486065ce11414fa40e631affc4900, type: 3}
m_Name: ProbeVolumesOptions
m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.ProbeVolumesOptions
active: 1
normalBias:
m_OverrideState: 1
m_Value: 0.05
viewBias:
m_OverrideState: 1
m_Value: 0.1
scaleBiasWithMinProbeDistance:
m_OverrideState: 1
m_Value: 0
samplingNoise:
m_OverrideState: 1
m_Value: 0.1
animateSamplingNoise:
m_OverrideState: 1
m_Value: 1
leakReductionMode:
m_OverrideState: 1
m_Value: 2
minValidDotProductValue:
m_OverrideState: 1
m_Value: 0.1
occlusionOnlyReflectionNormalization:
m_OverrideState: 1
m_Value: 1
intensityMultiplier:
m_OverrideState: 1
m_Value: 1
skyOcclusionIntensityMultiplier:
m_OverrideState: 1
m_Value: 1
worldOffset:
m_OverrideState: 1
m_Value: {x: 0, y: 0, z: 0}
--- !u!114 &-2260510347071840766
MonoBehaviour:
m_ObjectHideFlags: 3
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: e021b4c809a781e468c2988c016ebbea, type: 3}
m_Name: ColorLookup
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ColorLookup
active: 1
texture:
m_OverrideState: 1
m_Value: {fileID: 0}
dimension: 1
contribution:
m_OverrideState: 1
m_Value: 0
--- !u!114 &-2246117215489223218
MonoBehaviour:
m_ObjectHideFlags: 3
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: fb60a22f311433c4c962b888d1393f88, type: 3}
m_Name: PaniniProjection
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.PaniniProjection
active: 1
distance:
m_OverrideState: 1
m_Value: 0
cropToFit:
m_OverrideState: 1
m_Value: 1
--- !u!114 &-1000507585345489635
MonoBehaviour:
m_ObjectHideFlags: 3
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: 29fa0085f50d5e54f8144f766051a691, type: 3}
m_Name: FilmGrain
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.FilmGrain
active: 1
type:
m_OverrideState: 1
m_Value: 0
intensity:
m_OverrideState: 1
m_Value: 0
response:
m_OverrideState: 1
m_Value: 0.8
texture:
m_OverrideState: 1
m_Value: {fileID: 0}
--- !u!114 &-434020181167841682
MonoBehaviour:
m_ObjectHideFlags: 3
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: 97c23e3b12dc18c42a140437e53d3951, type: 3}
m_Name: Tonemapping
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.Tonemapping
active: 1
mode:
m_OverrideState: 1
m_Value: 0
neutralHDRRangeReductionMode:
m_OverrideState: 1
m_Value: 2
acesPreset:
m_OverrideState: 1
m_Value: 3
hueShiftAmount:
m_OverrideState: 1
m_Value: 0
detectPaperWhite:
m_OverrideState: 1
m_Value: 0
paperWhite:
m_OverrideState: 1
m_Value: 300
detectBrightnessLimits:
m_OverrideState: 1
m_Value: 1
minNits:
m_OverrideState: 1
m_Value: 0.005
maxNits:
m_OverrideState: 1
m_Value: 1000
--- !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: d7fd9488000d3734a9e00ee676215985, type: 3}
m_Name: DefaultVolumeProfile
m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.VolumeProfile
components:
- {fileID: -2260510347071840766}
- {fileID: 1673038007589048963}
- {fileID: 3392082450552374256}
- {fileID: 8206374445483264792}
- {fileID: -8956640694201925796}
- {fileID: 4365507656831630168}
- {fileID: -7173271369525976892}
- {fileID: -434020181167841682}
- {fileID: 6613535598111110395}
- {fileID: 1016553225810598713}
- {fileID: 4293824711136058158}
- {fileID: -1000507585345489635}
- {fileID: -6590605684323296252}
- {fileID: 3428834073905679645}
- {fileID: -6125802814728068006}
- {fileID: 4660826629354821828}
- {fileID: 5753194521317488464}
- {fileID: -2246117215489223218}
- {fileID: -4574649392742586442}
--- !u!114 &1016553225810598713
MonoBehaviour:
m_ObjectHideFlags: 3
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: 81180773991d8724ab7f2d216912b564, type: 3}
m_Name: ChromaticAberration
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ChromaticAberration
active: 1
intensity:
m_OverrideState: 1
m_Value: 0
--- !u!114 &1673038007589048963
MonoBehaviour:
m_ObjectHideFlags: 3
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: 66f335fb1ffd8684294ad653bf1c7564, type: 3}
m_Name: ColorAdjustments
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ColorAdjustments
active: 1
postExposure:
m_OverrideState: 1
m_Value: 0
contrast:
m_OverrideState: 1
m_Value: 0
colorFilter:
m_OverrideState: 1
m_Value: {r: 1, g: 1, b: 1, a: 1}
hueShift:
m_OverrideState: 1
m_Value: 0
saturation:
m_OverrideState: 1
m_Value: 0
--- !u!114 &3392082450552374256
MonoBehaviour:
m_ObjectHideFlags: 3
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: ccf1aba9553839d41ae37dd52e9ebcce, type: 3}
m_Name: MotionBlur
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.MotionBlur
active: 1
mode:
m_OverrideState: 1
m_Value: 0
quality:
m_OverrideState: 1
m_Value: 0
intensity:
m_OverrideState: 1
m_Value: 0
clamp:
m_OverrideState: 1
m_Value: 0.05
--- !u!114 &3428834073905679645
MonoBehaviour:
m_ObjectHideFlags: 3
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: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3}
m_Name: LiftGammaGain
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.LiftGammaGain
active: 1
lift:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
gamma:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
gain:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
--- !u!114 &4293824711136058158
MonoBehaviour:
m_ObjectHideFlags: 3
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: cdfbdbb87d3286943a057f7791b43141, type: 3}
m_Name: ChannelMixer
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ChannelMixer
active: 1
redOutRedIn:
m_OverrideState: 1
m_Value: 100
redOutGreenIn:
m_OverrideState: 1
m_Value: 0
redOutBlueIn:
m_OverrideState: 1
m_Value: 0
greenOutRedIn:
m_OverrideState: 1
m_Value: 0
greenOutGreenIn:
m_OverrideState: 1
m_Value: 100
greenOutBlueIn:
m_OverrideState: 1
m_Value: 0
blueOutRedIn:
m_OverrideState: 1
m_Value: 0
blueOutGreenIn:
m_OverrideState: 1
m_Value: 0
blueOutBlueIn:
m_OverrideState: 1
m_Value: 100
--- !u!114 &4365507656831630168
MonoBehaviour:
m_ObjectHideFlags: 3
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: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3}
m_Name: LensDistortion
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.LensDistortion
active: 1
intensity:
m_OverrideState: 1
m_Value: 0
xMultiplier:
m_OverrideState: 1
m_Value: 1
yMultiplier:
m_OverrideState: 1
m_Value: 1
center:
m_OverrideState: 1
m_Value: {x: 0.5, y: 0.5}
scale:
m_OverrideState: 1
m_Value: 1
--- !u!114 &4660826629354821828
MonoBehaviour:
m_ObjectHideFlags: 3
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: 221518ef91623a7438a71fef23660601, type: 3}
m_Name: WhiteBalance
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.WhiteBalance
active: 1
temperature:
m_OverrideState: 1
m_Value: 0
tint:
m_OverrideState: 1
m_Value: 0
--- !u!114 &5753194521317488464
MonoBehaviour:
m_ObjectHideFlags: 3
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: 3eb4b772797da9440885e8bd939e9560, type: 3}
m_Name: ColorCurves
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ColorCurves
active: 1
master:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 2
m_Loop: 0
m_ZeroValue: 0
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
red:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 2
m_Loop: 0
m_ZeroValue: 0
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
green:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 2
m_Loop: 0
m_ZeroValue: 0
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
blue:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 2
m_Loop: 0
m_ZeroValue: 0
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 1
inSlope: 1
outSlope: 1
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
hueVsHue:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 0
m_Loop: 1
m_ZeroValue: 0.5
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
hueVsSat:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 0
m_Loop: 1
m_ZeroValue: 0.5
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
satVsSat:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 0
m_Loop: 0
m_ZeroValue: 0.5
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
lumVsSat:
m_OverrideState: 1
m_Value:
<length>k__BackingField: 0
m_Loop: 0
m_ZeroValue: 0.5
m_Range: 1
m_Curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
--- !u!114 &6613535598111110395
MonoBehaviour:
m_ObjectHideFlags: 3
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: 558a8e2b6826cf840aae193990ba9f2e, type: 3}
m_Name: ShadowsMidtonesHighlights
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.ShadowsMidtonesHighlights
active: 1
shadows:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
midtones:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
highlights:
m_OverrideState: 1
m_Value: {x: 1, y: 1, z: 1, w: 0}
shadowsStart:
m_OverrideState: 1
m_Value: 0
shadowsEnd:
m_OverrideState: 1
m_Value: 0.3
highlightsStart:
m_OverrideState: 1
m_Value: 0.55
highlightsEnd:
m_OverrideState: 1
m_Value: 1
--- !u!114 &8206374445483264792
MonoBehaviour:
m_ObjectHideFlags: 3
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: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3}
m_Name: SplitToning
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.SplitToning
active: 1
shadows:
m_OverrideState: 1
m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1}
highlights:
m_OverrideState: 1
m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1}
balance:
m_OverrideState: 1
m_Value: 0
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cb34ed36b46c82a4887c5b4404cea828
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+74
View File
@@ -0,0 +1,74 @@
#if UNITY_EDITOR
using UnityEditor;
using UnityEditor.SceneManagement;
using UnityEngine;
/// <summary>
/// Unity 编辑器每隔 10 分钟自动保存一次打开的场景和资源。
/// 菜单:Tools / Auto Save
/// </summary>
[InitializeOnLoad]
public static class AutoSave
{
private const string PrefEnabled = "UITools.AutoSave.Enabled";
private const double IntervalSeconds = 10 * 60; // 10 分钟
private static double _nextSaveTime;
private static bool Enabled
{
get => EditorPrefs.GetBool(PrefEnabled, true);
set => EditorPrefs.SetBool(PrefEnabled, value);
}
static AutoSave()
{
_nextSaveTime = EditorApplication.timeSinceStartup + IntervalSeconds;
EditorApplication.update += OnUpdate;
}
private static void OnUpdate()
{
if (!Enabled) return;
if (EditorApplication.isPlayingOrWillChangePlaymode) return;
if (EditorApplication.timeSinceStartup < _nextSaveTime) return;
_nextSaveTime = EditorApplication.timeSinceStartup + IntervalSeconds;
DoSave();
}
private static void DoSave()
{
EditorSceneManager.SaveOpenScenes();
AssetDatabase.SaveAssets();
Debug.Log($"[AutoSave] 已自动保存 — {System.DateTime.Now:HH:mm:ss}");
}
[MenuItem("Tools/Auto Save/立即保存")]
private static void SaveNow()
{
DoSave();
_nextSaveTime = EditorApplication.timeSinceStartup + IntervalSeconds;
}
[MenuItem("Tools/Auto Save/启用", true)]
private static bool ValidateEnable() => !Enabled;
[MenuItem("Tools/Auto Save/启用")]
private static void Enable()
{
Enabled = true;
_nextSaveTime = EditorApplication.timeSinceStartup + IntervalSeconds;
Debug.Log("[AutoSave] 已启用(每 10 分钟)");
}
[MenuItem("Tools/Auto Save/禁用", true)]
private static bool ValidateDisable() => Enabled;
[MenuItem("Tools/Auto Save/禁用")]
private static void Disable()
{
Enabled = false;
Debug.Log("[AutoSave] 已禁用");
}
}
#endif
@@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
guid: fdaf5b413baa94336b0cc70b47eb4ab1
MonoImporter:
externalObjects: {}
serializedVersion: 2
+40
View File
@@ -0,0 +1,40 @@
%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: b29e98153ec2fbd44b8f7da1b41194e8, type: 3}
m_Name: SpineSettings
m_EditorClassIdentifier: spine-unity-editor::Spine.Unity.Editor.SpinePreferences
defaultScale: 0.01
defaultMix: 0.2
defaultShader: Spine/Skeleton
defaultZSpacing: 0
defaultInstantiateLoop: 1
defaultPhysicsPositionInheritance: {x: 1, y: 1}
defaultPhysicsRotationInheritance: 1
showHierarchyIcons: 1
reloadAfterPlayMode: 1
setTextureImporterSettings: 1
textureSettingsReference:
fixPrefabOverrideViaMeshFilter: 0
removePrefabPreviewMeshes: 0
applyAdditiveMaterial: 0
blendModeMaterialMultiply: {fileID: 0}
blendModeMaterialScreen: {fileID: 0}
blendModeMaterialAdditive: {fileID: 0}
atlasTxtImportWarning: 1
textureImporterWarning: 1
componentMaterialWarning: 1
skeletonDataAssetNoFileError: 1
autoReloadSceneSkeletons: 1
handleScale: 1
mecanimEventIncludeFolderName: 1
timelineDefaultMixDuration: 0
timelineUseBlendDuration: 1
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7e19246ef97f04a579799c7bb57ee91b
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large. Load diff
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 03e4b8240d32e4450b75b5726e17fead
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+113
View File
@@ -0,0 +1,113 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4708354386871929370
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1387359303306385943}
m_Layer: 0
m_Name: TrailRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1387359303306385943
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4708354386871929370}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3984166181361325908}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &2035516173806587970
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1387359303306385943}
m_Modifications:
- target: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_LocalRotation.w
value: 0.7071068
objectReference: {fileID: 0}
- target: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_LocalRotation.x
value: -0.7071068
objectReference: {fileID: 0}
- target: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: -90
objectReference: {fileID: 0}
- target: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7845844651438781543, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: looping
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8611201173196409422, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
propertyPath: m_Name
value: Trail
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 03e4b8240d32e4450b75b5726e17fead, type: 3}
--- !u!4 &3984166181361325908 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 3131410372257859350, guid: 03e4b8240d32e4450b75b5726e17fead,
type: 3}
m_PrefabInstance: {fileID: 2035516173806587970}
m_PrefabAsset: {fileID: 0}
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 305d0010d8b0944179d12671922ebbdb
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+135
View File
@@ -0,0 +1,135 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: DefaultURP
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &6789430181708300886
MonoBehaviour:
m_ObjectHideFlags: 11
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 10
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 14f5017ace42540e588f55f1e017d5ce
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
+137
View File
@@ -0,0 +1,137 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Enermy
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 2000
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 2800000, guid: 4435e022686124b819f62ea7eb956405, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 4435e022686124b819f62ea7eb956405, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AddPrecomputedVelocity: 0
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &6789430181708300886
MonoBehaviour:
m_ObjectHideFlags: 11
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 10
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8e30e9762e64844bf8610d2e1b7341fd
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
+8 -5
View File
@@ -8,7 +8,7 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: GroundMat
m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0}
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
@@ -17,8 +17,10 @@ Material:
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
@@ -117,10 +119,11 @@ Material:
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 0.46226418, g: 0.4600837, b: 0.4600837, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &1326357712512029438
MonoBehaviour:
m_ObjectHideFlags: 11
@@ -133,4 +136,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 7
version: 10
+59 -7
View File
@@ -12,7 +12,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 7
version: 10
--- !u!21 &2100000
Material:
serializedVersion: 8
@@ -21,7 +21,7 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PlayerMat
m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0}
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
@@ -30,14 +30,16 @@ Material:
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Texture: {fileID: 2800000, guid: 7ca288cbfc0684bbf876ce03dca16a9a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
@@ -56,11 +58,19 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DissolveTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 7ca288cbfc0684bbf876ce03dca16a9a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Mask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
@@ -80,6 +90,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _UVNoiseTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -95,38 +109,76 @@ Material:
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaScale: 1
- _AlphaToMask: 0
- _Blend: 0
- _BlendMode: 1
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _ColorMask: 15
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _Dissolve: 0
- _DissolveChannel: 3
- _DissolveCustomChannel: 0
- _DissolveEdgeSharpness: 2
- _DissolveHighlightWidth: 0.08
- _DissolveWidth: 0
- _Distortion: 0
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _GlowScale: 1
- _MaskChannel: 3
- _MaskSpeedU: 0
- _MaskSpeedV: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _RenderFace: 0
- _Smoothness: 0.55
- _SmoothnessTextureChannel: 0
- _SoftParticleFade: 0
- _SpecularHighlights: 1
- _SpeedU: 0
- _SpeedV: 0
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _Surface: 0
- _UseDissolve: 0
- _UseMask: 0
- _UseMaskUvAni: 0
- _UseUIMaskClip: 0
- _UseUvAni: 0
- _UseUvDistortion: 0
- _UseVertexMask: 0
- _VertexFlipX: 1
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.2, g: 0.4, b: 0.85, a: 1}
- _Color: {r: 0.19999996, g: 0.39999998, b: 0.85, a: 1}
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _ClipRect: {r: -1, g: -1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DissolveEdgeColor: {r: 0, g: 0, b: 0, a: 1}
- _DissolveHighlightColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _NoiseScroll: {r: 0, g: 0, b: 1, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- _VertexOffset: {r: 0, g: 0, b: 1, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
+135
View File
@@ -0,0 +1,135 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-9004014875896890563
MonoBehaviour:
m_ObjectHideFlags: 11
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 10
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: fx2
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 2000
stringTagMap:
RenderType: Opaque
disabledShaderPasses:
- MOTIONVECTORS
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 2800000, guid: 7ca288cbfc0684bbf876ce03dca16a9a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 7ca288cbfc0684bbf876ce03dca16a9a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaToMask: 0
- _Blend: 0
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.55
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bf6393b9ebad14ecf95d17b703bdde58
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
+181
View File
@@ -0,0 +1,181 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-9004014875896890563
MonoBehaviour:
m_ObjectHideFlags: 11
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 7
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: "\u8F6F\u7C92\u5B50\u6750\u8D28"
m_Shader: {fileID: 4800000, guid: 7ddbc50ff7d2d42939fd3e9816f2baf4, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 2800000, guid: 7ca288cbfc0684bbf876ce03dca16a9a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DissolveTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: cde973ea4d56745398ef34e708bf7dd4, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Mask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _UVNoiseTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaScale: 1
- _AlphaToMask: 0
- _Blend: 0
- _BlendMode: 1
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _ColorMask: 15
- _Cull: 0
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _Dissolve: 0
- _DissolveChannel: 3
- _DissolveCustomChannel: 0
- _DissolveEdgeSharpness: 2
- _DissolveHighlightWidth: 0.08
- _DissolveWidth: 0
- _Distortion: 0
- _DstBlend: 10
- _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _GlowScale: 1
- _MaskChannel: 3
- _MaskSpeedU: 0
- _MaskSpeedV: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _RenderFace: 2
- _Smoothness: 0.55
- _SmoothnessTextureChannel: 0
- _SoftParticleFade: 0.63
- _SpecularHighlights: 1
- _SpeedU: 0
- _SpeedV: 0
- _SrcBlend: 5
- _SrcBlendAlpha: 1
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _Surface: 0
- _UseDissolve: 0
- _UseMask: 0
- _UseMaskUvAni: 0
- _UseUIMaskClip: 0
- _UseUvAni: 0
- _UseUvDistortion: 0
- _UseVertexMask: 0
- _VertexFlipX: 1
- _WorkflowMode: 1
- _ZWrite: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _ClipRect: {r: -1, g: -1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DissolveEdgeColor: {r: 0, g: 0, b: 0, a: 1}
- _DissolveHighlightColor: {r: 0, g: 0, b: 0, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _NoiseScroll: {r: 0, g: 0, b: 1, a: 1}
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- _VertexOffset: {r: 0, g: 0, b: 1, a: 1}
m_BuildTextureStacks: []
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3d7135e053c3e4da7afa24ef1c6c87b5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 0c463fb381b804c7b803d2b5a138e8b8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2073e1e5955f54a58b326895e250f148
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+133
View File
@@ -0,0 +1,133 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1107 &-7660952021025823665
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 2770544745156972816}
m_Position: {x: 270, y: 230, z: 0}
- serializedVersion: 1
m_State: {fileID: 2446840353835694038}
m_Position: {x: 270, y: 110, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 2446840353835694038}
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: EnermyRoot
serializedVersion: 5
m_AnimatorParameters:
- m_Name: is_die
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 9100000}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -7660952021025823665}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1102 &2446840353835694038
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: static
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 6866661222542110474}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &2770544745156972816
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: die
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: ec489eb5d7f2e4ca3814cc2ea5563317, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &6866661222542110474
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: is_die
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 2770544745156972816}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4e8522573e9504885ad602ed2aa78d36
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
+373
View File
@@ -0,0 +1,373 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: die
serializedVersion: 7
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0, y: 0.5, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.05
value: {x: 0, y: 1.32, z: 0}
inSlope: {x: 0, y: 4.399997, z: 0}
outSlope: {x: 0, y: 4.399997, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.1
value: {x: 0, y: 1.43, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.15
value: {x: 0, y: 0.5, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.23333333
value: {x: 0, y: 0.5, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: NPC
m_ScaleCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 1, y: 1, z: 1}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: NPC
m_FloatCurves: []
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: 3492492454
attribute: 1
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
- serializedVersion: 2
path: 3492492454
attribute: 3
script: {fileID: 0}
typeID: 4
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: 0.23333333
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.05
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.23333333
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_LocalPosition.x
path: NPC
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 1.32
inSlope: 4.399997
outSlope: 4.399997
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.1
value: 1.43
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0.5
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.23333333
value: 0.5
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_LocalPosition.y
path: NPC
classID: 4
script: {fileID: 0}
flags: 0
- 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.05
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.1
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.15
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.23333333
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_LocalPosition.z
path: NPC
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.x
path: NPC
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.y
path: NPC
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalScale.z
path: NPC
classID: 4
script: {fileID: 0}
flags: 0
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: ec489eb5d7f2e4ca3814cc2ea5563317
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b31c5a9d8bcbf4a53992f63fdf811514
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: eea4224d065bc4091800e6451def90b2
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+314
View File
@@ -0,0 +1,314 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1831812836464488284
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6748353704601367710}
- component: {fileID: 1975329308824242708}
- component: {fileID: 803957922561359967}
m_Layer: 0
m_Name: EnermyRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &6748353704601367710
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1831812836464488284}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -7.4, y: 0, z: 14.3}
m_LocalScale: {x: 1, y: 2, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8509561374186701538}
- {fileID: 3085680554144073820}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1975329308824242708
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1831812836464488284}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 6cfa95cf7b0a943c4904a13297c823e3, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::EnemyChaseController
target: {fileID: 9034613337173532632, guid: 905259bd26d574ba586c38b5e91d0b7f, type: 3}
moveSpeed: 3
acceleration: 10
turnSpeed: 10
destroyDistance: 2
dieFx: {fileID: 6847541981828055653, guid: eea4224d065bc4091800e6451def90b2, type: 3}
dieFxPos: {fileID: 3085680554144073820}
animator: {fileID: 803957922561359967}
dieParamName: is_die
dieDelay: 0.15
--- !u!95 &803957922561359967
Animator:
serializedVersion: 7
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1831812836464488284}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: 4e8522573e9504885ad602ed2aa78d36, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_StabilizeFeet: 0
m_AnimatePhysics: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorStateOnDisable: 0
m_WriteDefaultValuesOnDisable: 0
--- !u!1 &6942711232401943517
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3085680554144073820}
m_Layer: 0
m_Name: fx_die_pos
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3085680554144073820
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6942711232401943517}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6748353704601367710}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &7140997351202321905
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8509561374186701538}
- component: {fileID: 6532256412849151681}
- component: {fileID: 3156339848858622551}
- component: {fileID: 8791165072420320665}
m_Layer: 0
m_Name: NPC
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8509561374186701538
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7140997351202321905}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0.5, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 921819522740739283}
m_Father: {fileID: 6748353704601367710}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &6532256412849151681
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7140997351202321905}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &3156339848858622551
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7140997351202321905}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 8e30e9762e64844bf8610d2e1b7341fd, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!65 &8791165072420320665
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7140997351202321905}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!1001 &2272653251588540100
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 8509561374186701538}
m_Modifications:
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalScale.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalPosition.x
value: 0.059999943
objectReference: {fileID: 0}
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalPosition.y
value: -0.5
objectReference: {fileID: 0}
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalPosition.z
value: -0.09000015
objectReference: {fileID: 0}
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4708354386871929370, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_Name
value: TrailRoot
objectReference: {fileID: 0}
- target: {fileID: 4708354386871929370, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8132815969298277413, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
propertyPath: moveWithTransform
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 305d0010d8b0944179d12671922ebbdb, type: 3}
--- !u!4 &921819522740739283 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 1387359303306385943, guid: 305d0010d8b0944179d12671922ebbdb,
type: 3}
m_PrefabInstance: {fileID: 2272653251588540100}
m_PrefabAsset: {fileID: 0}
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f87a6591649d84a678b76e550f60c5f1
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 714e20389b83a411b801ff84c7a012a4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+186
View File
@@ -0,0 +1,186 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1744618517462954763
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3405330547492594424}
- component: {fileID: 1369191833475144503}
- component: {fileID: 6992472044908293245}
- component: {fileID: 7156104879043876676}
- component: {fileID: 7323707695743607516}
m_Layer: 0
m_Name: Player
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3405330547492594424
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1744618517462954763}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: 0}
m_LocalScale: {x: 1, y: 2, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9034613337173532632}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &1369191833475144503
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1744618517462954763}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!23 &6992472044908293245
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1744618517462954763}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RayTracingAccelStructBuildFlagsOverride: 0
m_RayTracingAccelStructBuildFlags: 1
m_SmallMeshCulling: 1
m_ForceMeshLod: -1
m_MeshLodSelectionBias: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_GlobalIlluminationMeshLod: 0
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_MaskInteraction: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!143 &7156104879043876676
CharacterController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1744618517462954763}
m_Material: {fileID: 0}
m_IncludeLayers:
serializedVersion: 2
m_Bits: 0
m_ExcludeLayers:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
m_Height: 1
m_Radius: 0.5
m_SlopeLimit: 45
m_StepOffset: 0.3
m_SkinWidth: 0.08
m_MinMoveDistance: 0.001
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &7323707695743607516
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1744618517462954763}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 331899a01a8f041c88567596518061b4, type: 3}
m_Name:
m_EditorClassIdentifier:
joystick: {fileID: 0}
cameraRelative: 1
cameraTransform: {fileID: 0}
speed: 12
turnSpeed: 12
inputSmoothing: 0.05
--- !u!1 &3051461309865635013
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 9034613337173532632}
- component: {fileID: 4855449060187578418}
m_Layer: 0
m_Name: PlayerRoot
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &9034613337173532632
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3051461309865635013}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3405330547492594424}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &4855449060187578418
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3051461309865635013}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2aef3dd8d016749eba828b4711807579, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::PrefabSpawner
prefab: {fileID: 1831812836464488284, guid: f87a6591649d84a678b76e550f60c5f1, type: 3}
target: {fileID: 3405330547492594424}
interval: 1
radius: 5
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 905259bd26d574ba586c38b5e91d0b7f
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8407dd29e03460a49b26942f7405cf2e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+586
View File
@@ -0,0 +1,586 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 12
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &382352711
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 382352715}
- component: {fileID: 382352714}
- component: {fileID: 382352713}
- component: {fileID: 382352712}
m_Layer: 0
m_Name: Camera
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &382352712
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 382352711}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 0
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_AllowHDROutput: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_Version: 2
m_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
--- !u!81 &382352713
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 382352711}
m_Enabled: 1
--- !u!20 &382352714
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 382352711}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 5
m_Depth: 0
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &382352715
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 382352711}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 384.2382, y: 1100.6873, z: -10.691572}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2110165814
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2110165817}
- component: {fileID: 2110165816}
- component: {fileID: 2110165815}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &2110165815
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2110165814}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
m_Name:
m_EditorClassIdentifier:
m_SendPointerHoverToParent: 1
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &2110165816
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2110165814}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &2110165817
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2110165814}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &514084943193964950
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6949479694313578284}
- component: {fileID: 776440082654687631}
- component: {fileID: 1120875435618564595}
- component: {fileID: 5709059310259333892}
- component: {fileID: 8422795035446032175}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!223 &776440082654687631
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 514084943193964950}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_VertexColorAlwaysGammaSpace: 1
m_AdditionalShaderChannelsFlag: 25
m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!114 &1120875435618564595
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 514084943193964950}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1080, y: 2340}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0.5
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
m_PresetInfoIsWorld: 0
--- !u!1001 &1158142051950714887
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 6949479694313578284}
m_Modifications:
- target: {fileID: 3930545697855790736, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_Name
value: Display
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_AnchorMax.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4290274303801895624, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 8422795035446032175}
- target: {fileID: 5262932774126942146, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 8422795035446032175}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c297eb82e5d6b4957b5619f595673d51, type: 3}
--- !u!224 &1158142051950714888 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 4239241503696807466, guid: c297eb82e5d6b4957b5619f595673d51,
type: 3}
m_PrefabInstance: {fileID: 1158142051950714887}
m_PrefabAsset: {fileID: 0}
--- !u!114 &5709059310259333892
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 514084943193964950}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!224 &6949479694313578284
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 514084943193964950}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1158142051950714888}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!114 &8422795035446032175
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 514084943193964950}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0c630a6a725d34ce393e88e4152a280c, type: 3}
m_Name:
m_EditorClassIdentifier:
startSceneName: Start
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 382352715}
- {fileID: 6949479694313578284}
- {fileID: 2110165817}
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6db6d35597a1b4f89ac3a3d9ca5561e7
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+777 -625
View File
File diff suppressed because it is too large. Load diff
Binary file not shown.
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e306318372738144f867f76e7a41cfc7
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 112000000
userData:
assetBundleName:
assetBundleVariant:
Binary file not shown.
@@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 7b4f05ddea5533c4f94894045d405cd7
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 1
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: 1
seamlessCubemap: 1
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 0
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
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: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 2
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
swizzle: 50462976
cookieLightType: 0
platformSettings:
- serializedVersion: 4
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 100
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 4
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: 4
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: []
customData:
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0
userData:
assetBundleName:
assetBundleVariant:
-97
View File
@@ -1,97 +0,0 @@
using UnityEngine;
/// <summary>
/// 标准的“点击地面移动角色”组件。
///
/// 用法:把本脚本挂到一个带 CharacterController 的对象上(本项目中是一个长方体 Cube)。
/// 运行时**按住**鼠标左键(拖拽),角色会持续朝鼠标当前指向的地面点移动并平滑转向,
/// 松开即停止;**按下瞬间**会在点击位置生成一个粒子预制体(可选),2 秒后自动销毁。
/// 角色仅在地表高度移动(保持 y 不变)。
/// </summary>
[RequireComponent(typeof(CharacterController))]
public class ClickToMove : MonoBehaviour
{
[Tooltip("角色移动速度(单位/秒)")]
[SerializeField] private float speed = 3f;
[Tooltip("点击地面时在点击位置动态生成的粒子预制体(需带 ParticleSystem 组件,实例化后 2 秒自动销毁)")]
[SerializeField] private GameObject clickEffect;
private CharacterController _controller;
private Vector3 _target;
private bool _moving;
// “Ground” 层索引,与 ProjectSettings/TagManager.asset 中的配置一致(第 6 层)。
private int _groundLayer = 6;
private void Start()
{
_controller = GetComponent<CharacterController>();
_target = transform.position;
// 优先使用项目里命名的 “Ground” 层;若编辑器尚未刷新层名则回退到默认索引 6。
int named = LayerMask.NameToLayer("Ground");
if (named >= 0)
_groundLayer = named;
else
Debug.LogWarning("[ClickToMove] 未找到 \"Ground\" 层,回退使用默认层索引 6。");
}
private void Update()
{
bool clicked = Input.GetMouseButtonDown(0);
bool holding = Input.GetMouseButton(0);
// 按下瞬间 或 按住拖拽时,都朝当前鼠标指向的地面点更新目标;
// 仅在“按下瞬间”生成一次点击粒子,避免按住过程中每帧重复生成。
if (clicked || holding)
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit hit, 100f, 1 << _groundLayer))
{
_target = hit.point;
_moving = true;
if (clicked)
SpawnClickEffect(hit.point);
}
}
// 朝目标点移动并转向
if (!_moving) return;
Vector3 dir = _target - transform.position;
dir.y = 0f; // 只在地表水平方向移动
if (dir.sqrMagnitude > 0.05f)
{
_controller.Move(dir.normalized * (speed * Time.deltaTime));
Vector3 facing = new Vector3(dir.x, 0f, dir.z);
if (facing.sqrMagnitude > 0.001f)
transform.rotation = Quaternion.Slerp(
transform.rotation,
Quaternion.LookRotation(facing),
Time.deltaTime * 12f);
}
else
{
_moving = false;
}
}
/// <summary>在点击位置动态生成粒子预制体,2 秒后自动销毁。</summary>
private void SpawnClickEffect(Vector3 position)
{
if (clickEffect == null) return;
// 在点击位置实例化预制体
GameObject effect = Instantiate(clickEffect, position, Quaternion.identity);
// 确保粒子播放(若预制体 playOnAwake 未勾选也能看到)
ParticleSystem ps = effect.GetComponent<ParticleSystem>();
if (ps != null) ps.Play();
// 延迟 2 秒后销毁
Destroy(effect, 2f);
}
}
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c5f2922bf442c4adb95912d403541a75
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+28
View File
@@ -0,0 +1,28 @@
using UnityEngine;
/// <summary>
/// 开机运行时设置。做成预制体放进场景,进游戏时自动应用。
/// 参数在 Inspector / 预制体上直接改,不用动代码。
/// </summary>
[DisallowMultipleComponent]
public class RuntimeSettings : MonoBehaviour
{
[Header("帧率")]
[Tooltip("目标帧率:-1 = 不限制(Unity 默认),60 = 常规,120 = 高刷屏 ProMotion")]
[SerializeField] private int targetFrameRate = 60;
[Tooltip("垂直同步。iOS 上无效,桌面平台有效;非 0 时会覆盖上面的目标帧率")]
[SerializeField] private int vSyncCount = 0;
private void Awake()
{
Apply();
}
/// <summary>立刻把当前参数应用到运行环境。</summary>
public void Apply()
{
QualitySettings.vSyncCount = vSyncCount;
Application.targetFrameRate = targetFrameRate;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ec4449e5442054472af2a1b06c676efc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b9763bfb9a651414d9d5aa77b79ea74a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,170 @@
using UnityEngine;
/// <summary>
/// 敌人追踪:朝目标(玩家)移动,进入销毁半径后自我销毁。
///
/// 目标来源两种:场景里手摆的敌人在 Inspector / 预制体实例里接好(预制体资产本身存不下场景对象,
/// 所以每个场景实例各自接一次);运行时生成的敌人由生成方(PrefabSpawner)在 Instantiate 之后
/// 调 SetTarget 传进来。代码里不按名字 / 标签查找节点。
/// 移动直接改 transform,不依赖 CharacterController / Rigidbody,只在水平面内走,
/// 高度保持不变。
///
/// 死亡流程:一进入销毁半径就立刻在 dieFxPos 节点处生成死亡特效预制体(die_fx,预制体引用,
/// 允许留空)、用 Animator 播死亡动画(把 dieParamName 这个 bool 置为 true,都允许留空),
/// 再等「延迟死亡」的时间,到点销毁自己;延迟期间停止移动和转身。
/// 也就是说 die_delay 延迟的是「身体消失」,不是特效/动画的播放时机——
/// 想看清死亡动画,把 die_delay 设成动画时长即可(三个变量互不关联)。
/// </summary>
[DisallowMultipleComponent]
public class EnemyChaseController : MonoBehaviour
{
[Header("引用(必须在 Inspector / 预制体实例里指定)")]
[Tooltip("追踪目标,拖玩家根节点进来;留空敌人不会移动")]
[SerializeField] private Transform target;
[Header("移动")]
[Tooltip("最大移动速度(单位/秒)")]
[SerializeField] private float moveSpeed = 3f;
[Tooltip("加速度(单位/秒²),决定从静止加到最大速度的快慢;0 = 立刻满速")]
[SerializeField] private float acceleration = 10f;
[Tooltip("转身速度,越大转得越快;0 = 不转身,保持初始朝向")]
[SerializeField] private float turnSpeed = 10f;
[Tooltip("销毁半径:与目标的水平距离小于它时销毁自己(0 = 贴身才销毁)")]
[SerializeField] private float destroyDistance = 0.8f;
[Header("死亡")]
[Tooltip("死亡特效预制体,允许留空。在 dieFxPos 处生成一份,按自身时长兜底回收")]
[SerializeField] private GameObject dieFx;
[Tooltip("死亡特效的生成位置,拖敌人下的定位节点(例如 fx_die_pos);留空则在敌人自身位置生成")]
[SerializeField] private Transform dieFxPos;
[Tooltip("敌人身上的 Animator,死亡动画由它播;留空则不播死亡动画")]
[SerializeField] private Animator animator;
[Tooltip("死亡动画的 bool 参数名,对应 Animator 里的参数;置 true 触发死亡动画,留空则不播")]
[SerializeField] private string dieParamName = "is_die";
[Tooltip("延迟死亡:进入销毁半径后再等这么久才销毁自己(0 = 立刻消失,特效和动画也就看不到)")]
[SerializeField] private float dieDelay = 0f;
private float _currentSpeed;
private bool _dying;
private float _dieTimer;
private void Awake()
{
if (animator == null)
Debug.LogError("[EnemyChaseController] 没有指定 Animator(animator),死亡动画不会播。", this);
}
private void Start()
{
// 放在 Start 而不是 Awake:敌人是 Instantiate 出来的,生成方在实例化之后才调 SetTarget,
// 而 Instantiate 会立刻跑 Awake,那时目标还没递进来。
if (target == null)
Debug.LogError("[EnemyChaseController] 没有追踪目标(target):请在 Inspector / 预制体实例里拖入玩家," +
"或由生成方(PrefabSpawner)在实例化后调 SetTarget 传入。", this);
}
/// <summary>由生成方在实例化之后调用,把追踪目标接进来;场景里手摆的敌人直接在 Inspector 接。</summary>
public void SetTarget(Transform value)
{
target = value;
}
private void Update()
{
if (_dying)
{
_dieTimer -= Time.deltaTime;
if (_dieTimer <= 0f)
Destroy(gameObject);
return;
}
if (target == null)
return;
Vector3 toTarget = target.position - transform.position;
toTarget.y = 0f; // 只在水平面内追踪,高度不变
float distance = toTarget.magnitude;
if (distance <= destroyDistance)
{
StartDying();
return;
}
Vector3 direction = toTarget / Mathf.Max(distance, 0.0001f);
_currentSpeed = acceleration > 0f
? Mathf.MoveTowards(_currentSpeed, moveSpeed, acceleration * Time.deltaTime)
: moveSpeed;
transform.position += direction * (_currentSpeed * Time.deltaTime);
if (turnSpeed > 0f)
transform.rotation = Quaternion.Slerp(
transform.rotation,
Quaternion.LookRotation(direction),
turnSpeed * Time.deltaTime);
}
/// <summary>进入销毁半径:立刻生成死亡特效、播死亡动画,然后开始倒计时。</summary>
private void StartDying()
{
_dying = true;
_dieTimer = dieDelay;
SpawnDeathPrefab(dieFx);
if (animator != null && !string.IsNullOrEmpty(dieParamName))
animator.SetBool(dieParamName, true);
if (_dieTimer <= 0f)
Destroy(gameObject);
}
/// <summary>在敌人当前位置生成死亡用的预制体,并按它自己的时长兜底回收。</summary>
private void SpawnDeathPrefab(GameObject prefab)
{
if (prefab == null)
return;
Transform spawn = dieFxPos != null ? dieFxPos : transform;
GameObject instance = Instantiate(prefab, spawn.position, spawn.rotation);
Destroy(instance, Lifespan(instance));
}
/// <summary>
/// 估这个实例能播多久:粒子取「时长 + 最长粒子寿命」,旧版动画取 Clip 长度,取最长的一个。
/// 只是兜底回收,预制体自己销毁也可以(重复销毁无害)。
/// </summary>
private static float Lifespan(GameObject instance)
{
float longest = 0f;
foreach (ParticleSystem ps in instance.GetComponentsInChildren<ParticleSystem>(true))
{
ParticleSystem.MainModule main = ps.main;
longest = Mathf.Max(longest, main.duration + main.startLifetime.constantMax);
}
foreach (Animation animation in instance.GetComponentsInChildren<Animation>(true))
foreach (AnimationState state in animation)
longest = Mathf.Max(longest, state.length);
return longest > 0f ? longest : 1f; // 认不出时长时给个兜底
}
/// <summary>在场景视图里画出销毁半径,方便对着调数值。</summary>
private void OnDrawGizmosSelected()
{
Gizmos.color = new Color(1f, 0.3f, 0.3f, 0.6f);
Gizmos.DrawWireSphere(transform.position, destroyDistance);
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 6cfa95cf7b0a943c4904a13297c823e3
@@ -0,0 +1,100 @@
using UnityEngine;
/// <summary>
/// 用 UI 虚拟摇杆(移动轮盘)驱动角色移动,替代原来的点击地面移动。
///
/// 用法:挂在带 CharacterController 的角色上,把场景里的 <see cref="VirtualJoystick"/>
/// 拖到 joystick 字段(在 Inspector / 预制体里接线,代码里不查找节点)。
/// 摇杆方向默认按摄像机朝向换算成世界方向,推杆越满速度越快;只做水平移动,y 不变。
/// </summary>
[RequireComponent(typeof(CharacterController))]
public class PlayerMoveController : MonoBehaviour
{
[Header("输入")]
[Tooltip("移动轮盘;必须在 Inspector / 预制体里指定,留空角色不会移动")]
[SerializeField] private VirtualJoystick joystick;
[Tooltip("是否按摄像机朝向移动(关掉则按世界坐标轴移动)")]
[SerializeField] private bool cameraRelative = true;
[Tooltip("朝向参考的摄像机,留空用 Camera.main")]
[SerializeField] private Transform cameraTransform;
[Header("移动")]
[Tooltip("满杆时的移动速度(单位/秒)")]
[SerializeField] private float speed = 5f;
[Tooltip("转向平滑速度,越大转得越快")]
[SerializeField] private float turnSpeed = 12f;
[Tooltip("输入平滑时间(0 = 立刻响应)")]
[SerializeField] private float inputSmoothing = 0.05f;
private CharacterController _controller;
private Vector2 _smoothedInput;
private Vector2 _smoothingVelocity;
private void Awake()
{
_controller = GetComponent<CharacterController>();
if (joystick == null)
Debug.LogError("[PlayerMoveController] 没有指定移动轮盘(joystick),请在 Inspector / 预制体里拖入。", this);
}
private void Update()
{
Vector2 input = joystick != null ? joystick.Value : Vector2.zero;
if (inputSmoothing > 0f)
input = Vector2.SmoothDamp(_smoothedInput, input, ref _smoothingVelocity, inputSmoothing);
_smoothedInput = input;
if (input.sqrMagnitude <= 0.0001f)
return;
Vector3 direction = ToWorldDirection(input);
if (direction.sqrMagnitude <= 0.0001f)
return;
_controller.Move(direction * (speed * input.magnitude * Time.deltaTime));
transform.rotation = Quaternion.Slerp(
transform.rotation,
Quaternion.LookRotation(direction),
Time.deltaTime * turnSpeed);
}
/// <summary>把摇杆的二维输入换算成世界方向(水平面内,已归一化)。</summary>
private Vector3 ToWorldDirection(Vector2 input)
{
Vector3 forward = Vector3.forward;
Vector3 right = Vector3.right;
if (cameraRelative)
{
Transform cam = cameraTransform != null
? cameraTransform
: (Camera.main != null ? Camera.main.transform : null);
if (cam != null)
{
forward = cam.forward;
forward.y = 0f;
right = cam.right;
right.y = 0f;
if (forward.sqrMagnitude > 0.0001f) forward.Normalize();
else forward = Vector3.forward;
if (right.sqrMagnitude > 0.0001f) right.Normalize();
else right = Vector3.right;
}
}
Vector3 dir = right * input.x + forward * input.y;
if (dir.sqrMagnitude > 1f)
dir.Normalize();
return dir;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 331899a01a8f041c88567596518061b4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+74
View File
@@ -0,0 +1,74 @@
using UnityEngine;
/// <summary>
/// 每隔 x 秒,在自身半径 n 米的范围内随机生成一个预制体,并把追踪目标递给它。
///
/// 用法:挂在场景里任意物体上,把要生成的预制体拖到 prefab 字段,把玩家根节点拖到 target 字段,
/// 再填间隔和半径。
/// 生成位置在以自身为圆心、半径 n 米的**水平圆面**内(Y 跟自身一致),不会掉到地下或飘到天上。
/// 生成的物体放在场景根节点下,朝向用 Identity。
///
/// 目标传递:生成出来的敌人拿不到场景里的玩家引用(预制体资产存不下场景对象),
/// 所以在 Instantiate 之后把 target 赋给它身上的 EnemyChaseController。
/// </summary>
[DisallowMultipleComponent]
public class PrefabSpawner : MonoBehaviour
{
[Header("敌人引用(必须在 Inspector / 预制体里指定)")]
[Tooltip("要生成的预制体,根节点上必须有 EnemyChaseController")]
[SerializeField] private GameObject prefab;
[Tooltip("生成后赋给敌人的追踪目标,拖玩家根节点进来")]
[SerializeField] private Transform target;
[Header("生成")]
[Tooltip("生成间隔(秒),必须大于 0")]
[SerializeField] private float interval = 1f;
[Tooltip("随机范围半径(米),以自身位置为圆心")]
[SerializeField] private float radius = 5f;
private float _timer;
private void Awake()
{
if (prefab == null)
{
Debug.LogError("[PrefabSpawner] 没有指定要生成的预制体(prefab),请在 Inspector 里拖入。", this);
return;
}
if (target == null)
Debug.LogError("[PrefabSpawner] 没有指定目标(target),生成出来的敌人不会有追踪目标。", this);
if (prefab.GetComponent<EnemyChaseController>() == null)
Debug.LogError("[PrefabSpawner] 这个预制体上没有 EnemyChaseController,目标传不进去。", this);
}
private void Update()
{
if (prefab == null)
return; // Awake 已经报过错
_timer += Time.deltaTime;
if (_timer < interval)
return;
_timer -= interval;
Spawn();
}
/// <summary>在自身半径 radius 米的水平圆面内随机取一点,生成预制体。</summary>
private void Spawn()
{
Vector2 offset = Random.insideUnitCircle * radius;
Vector3 position = transform.position + new Vector3(offset.x, 0f, offset.y);
GameObject instance = Instantiate(prefab, position, Quaternion.identity);
// 实例拿不到场景里的玩家引用,这里递进去
EnemyChaseController enemy = instance.GetComponent<EnemyChaseController>();
if (enemy != null)
enemy.SetTarget(target);
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 2aef3dd8d016749eba828b4711807579
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fe3dfc27f716b41f2b9a78dfe5a88a52
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,69 @@
using Cinemachine;
using UnityEngine;
/// <summary>
/// 按屏幕方向切换虚拟相机的跟随距离。
///
/// 挂在 Canvas 或任意「拉伸铺满」的 UI 节点上(这类节点的尺寸会随屏幕变化,Unity 才会回调),
/// 再把要改的虚拟相机拖到 virtualCamera 字段。该虚拟相机的 Body 必须是 Framing Transposer
/// (Camera Distance 是 Body 上的字段,不在虚拟相机组件本身)。
///
/// 触发时机:Unity 只在 RectTransform 尺寸变化时调用 OnRectTransformDimensionsChange,
/// 所以这里没有 Update、不轮询、初始化时不写值;只有屏幕方向真的翻转那一次才写一次距离。
/// (尺寸变了但方向没变——比如布局调整——也不会写。)
/// </summary>
[DisallowMultipleComponent]
public class CameraDistanceByOrientation : MonoBehaviour
{
[Header("引用(必须在 Inspector / 预制体里指定)")]
[Tooltip("要改跟随距离的虚拟相机;它的 Body 必须是 Framing Transposer")]
[SerializeField] private CinemachineVirtualCamera virtualCamera;
[Header("相机距离")]
[Tooltip("横屏时的 Camera Distance")]
[SerializeField] private float landscapeDistance = 13f;
[Tooltip("竖屏时的 Camera Distance")]
[SerializeField] private float portraitDistance = 30f;
private CinemachineFramingTransposer _framingTransposer;
private bool _isPortrait;
private void Awake()
{
if (GetComponent<RectTransform>() == null)
Debug.LogError("[CameraDistanceByOrientation] 这个物体没有 RectTransform,收不到尺寸变化回调;" +
"请挂到 Canvas 或任意拉伸铺满的 UI 节点上。", this);
if (virtualCamera == null)
{
Debug.LogError("[CameraDistanceByOrientation] 没有指定 virtualCamera,请在 Inspector 里拖入。", this);
return;
}
_framingTransposer = virtualCamera.GetCinemachineComponent<CinemachineFramingTransposer>();
if (_framingTransposer == null)
Debug.LogError("[CameraDistanceByOrientation] 虚拟相机的 Body 不是 Framing Transposer,改不了 Camera Distance。", this);
// 只记下开局方向,不写相机
_isPortrait = IsPortrait();
}
/// <summary>RectTransform 尺寸变化时由 Unity 调用(屏幕旋转、分辨率变化都会触发)。</summary>
private void OnRectTransformDimensionsChange()
{
bool portrait = IsPortrait();
if (portrait == _isPortrait)
return; // 尺寸变了但方向没变,不动相机
_isPortrait = portrait; // 只在翻转的这一次写值
if (_framingTransposer == null)
return; // Awake 已经报过错
_framingTransposer.m_CameraDistance = portrait ? portraitDistance : landscapeDistance;
}
/// <summary>屏幕高度大于宽度算竖屏。编辑器里拖动 Game 视图尺寸也能触发,方便验证。</summary>
private static bool IsPortrait() => Screen.height > Screen.width;
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 508bb4f2c6ebb49ffbe7c3cb6ee43239
+45
View File
@@ -0,0 +1,45 @@
using TMPro;
using UnityEngine;
/// <summary>
/// 把实时帧率写进 target 指定的文本,用来在真机上直接看性能。
/// 节点引用一律在 Inspector / 预制体里指定,代码里不按名字查找节点。
/// </summary>
[DisallowMultipleComponent]
public class FpsDisplay : MonoBehaviour
{
[Tooltip("显示帧率的文本,必须在 Inspector 里指定")]
[SerializeField] private TMP_Text target;
[Tooltip("刷新间隔(秒)。0.25 = 每秒刷 4 次,数字不会跳得太厉害")]
[SerializeField] private float updateInterval = 0.25f;
[Tooltip("文本格式,{0} 是帧率数值。例:FPS:{0:0}f/s")]
[SerializeField] private string format = "FPS:{0:0}f/s";
private float _accumulatedTime;
private int _frames;
private void Awake()
{
if (target == null)
Debug.LogError("[FpsDisplay] 没有指定显示帧率的文本(target),请在 Inspector 里拖入。", this);
}
private void Update()
{
if (target == null)
return;
_accumulatedTime += Time.unscaledDeltaTime;
_frames++;
if (_accumulatedTime < updateInterval)
return;
target.text = string.Format(format, _frames / _accumulatedTime);
_accumulatedTime = 0f;
_frames = 0;
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5cd887902ce124147b00d8e0173c77f1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+54
View File
@@ -0,0 +1,54 @@
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
/// <summary>
/// Main 启动页。
/// 点击事件在 Button 的 On Click() 里接线(Inspector 配置),代码里不查找节点。
/// </summary>
public class MainMenu : MonoBehaviour
{
[Tooltip("点「启动」后要加载的场景名,必须已经加进 Build Settings")]
[SerializeField] private string startSceneName = "Start";
private bool _loading;
/// <summary>启动:加载目标场景,加载完成后卸载 Main 场景自己。</summary>
public void OnStartClicked()
{
if (_loading) return; // 防连点,避免同时加载出两份
_loading = true;
StartCoroutine(LoadThenUnloadSelf());
}
/// <summary>退出游戏。</summary>
public void OnExitClicked()
{
Application.Quit();
#if UNITY_EDITOR
// 编辑器里 Application.Quit 不生效,方便本地测试
UnityEditor.EditorApplication.isPlaying = false;
#endif
}
private IEnumerator LoadThenUnloadSelf()
{
Scene mainScene = gameObject.scene;
AsyncOperation load = SceneManager.LoadSceneAsync(startSceneName, LoadSceneMode.Additive);
if (load == null)
{
Debug.LogError("[MainMenu] 场景 \"" + startSceneName + "\" 加载失败,确认它已加入 Build Settings。", this);
_loading = false;
yield break;
}
yield return load; // 等目标场景加载完成
Scene loaded = SceneManager.GetSceneByName(startSceneName);
if (loaded.IsValid())
SceneManager.SetActiveScene(loaded);
SceneManager.UnloadSceneAsync(mainScene); // 加载完成后卸载 Main
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 0c630a6a725d34ce393e88e4152a280c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+34
View File
@@ -0,0 +1,34 @@
using UnityEngine;
/// <summary>
/// 暂停按钮。点击后在指定父节点下实例化暂停菜单预制体。
/// 菜单预制体、父节点都在 Inspector 里指定,代码不查找节点。
/// </summary>
[DisallowMultipleComponent]
public class PauseButton : MonoBehaviour
{
[Tooltip("点击后要显示的暂停菜单预制体")]
[SerializeField] private GameObject pauseMenuPrefab;
[Tooltip("菜单生成到哪个父节点下;留空则用本按钮的父节点(一般是 Canvas)")]
[SerializeField] private Transform menuParent;
private GameObject _instance;
public void OnPauseClicked()
{
if (pauseMenuPrefab == null)
{
Debug.LogError("[PauseButton] 没有指定暂停菜单预制体(pauseMenuPrefab)。", this);
return;
}
if (_instance != null) // 菜单已经开着,不重复生成
return;
Transform parent = menuParent != null ? menuParent : transform.parent;
_instance = Instantiate(pauseMenuPrefab, parent);
Time.timeScale = 0f; // 暂停游戏;不需要真暂停就删掉这一行
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 96966a3c5c8764fc4bedfd83928fce19
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+53
View File
@@ -0,0 +1,53 @@
using System.Collections;
using UnityEngine;
using UnityEngine.SceneManagement;
/// <summary>
/// 暂停菜单:继续游戏 / 回到 Main 场景。
/// 按钮点击在各自 Button 的 On Click() 里接线(Inspector 配置)。
/// </summary>
[DisallowMultipleComponent]
public class PauseMenu : MonoBehaviour
{
[Tooltip("「回到Main」要加载的场景名,必须已经加进 Build Settings")]
[SerializeField] private string mainSceneName = "Main";
private bool _leaving;
/// <summary>继续游戏:恢复时间,关掉自己。</summary>
public void OnContinueClicked()
{
Time.timeScale = 1f;
Destroy(gameObject);
}
/// <summary>回到 Main:加载 Main 场景,加载完成后卸载当前场景。</summary>
public void OnBackToMainClicked()
{
if (_leaving) return;
_leaving = true;
Time.timeScale = 1f;
StartCoroutine(LoadMainThenUnloadCurrent());
}
private IEnumerator LoadMainThenUnloadCurrent()
{
Scene currentScene = gameObject.scene;
AsyncOperation load = SceneManager.LoadSceneAsync(mainSceneName, LoadSceneMode.Additive);
if (load == null)
{
Debug.LogError("[PauseMenu] 场景 \"" + mainSceneName + "\" 加载失败,确认它已加入 Build Settings。", this);
_leaving = false;
yield break;
}
yield return load; // 等 Main 加载完成
Scene loaded = SceneManager.GetSceneByName(mainSceneName);
if (loaded.IsValid())
SceneManager.SetActiveScene(loaded);
SceneManager.UnloadSceneAsync(currentScene); // 卸载当前场景
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e23dc01f92265409eb1d1cfafc1ad5dc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+127
View File
@@ -0,0 +1,127 @@
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
/// <summary>
/// 屏幕虚拟摇杆(移动轮盘)。挂在预制体根节点上,底盘和摇杆头两个引用
/// (background / handle)在 Inspector / 预制体里接好,代码里不按名字查找节点。
///
/// 鼠标按住拖拽或手指触摸都可以操作,对外输出归一化方向 <see cref="Value"/>:
/// x = 左右(右为正),y = 前后(上为正),模长 0~1 表示推杆幅度。
/// 松手后方向归零。
/// </summary>
[DisallowMultipleComponent]
public class VirtualJoystick : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerUpHandler
{
[Header("引用(必须在 Inspector / 预制体里指定)")]
[Tooltip("摇杆底盘(RectTransform)。拖拽位置以它的轴心为圆心换算,必须是捕获点击的那个节点")]
[SerializeField] private RectTransform background;
[Tooltip("摇杆头(RectTransform),跟着拖拽移动")]
[SerializeField] private RectTransform handle;
[Header("手感(距离单位是 UI 像素,以底盘轴心为圆心)")]
[Tooltip("摇杆头允许离开中心的最大距离。拖到这个距离就是满值输入(Value 模长 = 1),再往外拖摇杆头也不动。" +
"底盘 280、摇杆头 120 时,80 ≈ 摇杆头刚好贴到底盘边缘。")]
[SerializeField] private float maxDragRadius = 80f;
[Tooltip("死区:拖动距离小于「最大半径 × 该比例」时不输出,避免手抖")]
[Range(0f, 0.9f)]
[SerializeField] private float deadZone = 0.12f;
[Tooltip("松手后摇杆头是否弹回中心")]
[SerializeField] private bool returnToCenter = true;
[Tooltip("松手后是否隐藏整个轮盘(移动端常用)")]
[SerializeField] private bool hideOnRelease = false;
/// <summary>归一化输入方向,x = 左右,y = 前后,模长 0~1。</summary>
public Vector2 Value { get; private set; }
/// <summary>当前是否按住了轮盘。</summary>
public bool IsPressed { get; private set; }
private Canvas _canvas;
private Vector2 _handleHomePosition;
private void Awake()
{
if (background == null)
Debug.LogError("[VirtualJoystick] 没有指定摇杆底盘(background),请在 Inspector / 预制体里拖入。", this);
if (handle == null)
Debug.LogError("[VirtualJoystick] 没有指定摇杆头(handle),请在 Inspector / 预制体里拖入。", this);
_canvas = GetComponentInParent<Canvas>();
if (handle != null)
_handleHomePosition = handle.anchoredPosition;
}
private void OnEnable()
{
ResetInput();
}
public void OnPointerDown(PointerEventData eventData)
{
IsPressed = true;
gameObject.SetActive(true);
UpdateFromPointer(eventData);
}
public void OnDrag(PointerEventData eventData)
{
IsPressed = true;
UpdateFromPointer(eventData);
}
public void OnPointerUp(PointerEventData eventData)
{
IsPressed = false;
if (returnToCenter)
ResetInput();
if (hideOnRelease)
gameObject.SetActive(false);
}
/// <summary>把摇杆归零,手柄回到初始位置。</summary>
public void ResetInput()
{
Value = Vector2.zero;
if (handle != null)
handle.anchoredPosition = _handleHomePosition;
}
private void UpdateFromPointer(PointerEventData eventData)
{
if (background == null) return;
Camera cam = _canvas != null && _canvas.renderMode == RenderMode.ScreenSpaceOverlay
? null
: (eventData.pressEventCamera != null ? eventData.pressEventCamera : (_canvas != null ? _canvas.worldCamera : null));
if (!RectTransformUtility.ScreenPointToLocalPointInRectangle(background, eventData.position, cam, out Vector2 local))
return;
// local 是相对底盘轴心的像素偏移,直接按「最大拖动半径」归一化
float radius = Mathf.Max(1f, maxDragRadius);
float distance = local.magnitude;
Vector2 direction = distance > 0.0001f ? local / distance : Vector2.zero;
float magnitude = Mathf.Clamp01(distance / radius);
if (magnitude < deadZone)
{
Value = Vector2.zero;
}
else
{
// 死区外的部分重新映射到 0~1,避免刚出死区就一大跳
float remapped = Mathf.InverseLerp(deadZone, 1f, magnitude);
Value = direction * Mathf.Clamp01(remapped);
}
if (handle != null)
handle.anchoredPosition = _handleHomePosition + direction * (magnitude * radius);
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a40b5077dc83e4f33a9f0718325ff7e8
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8ef91dccdc72f414cacbaf7c6498e0f3
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,143 @@
%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: bf2edee5c58d82540a51f03df9d42094, type: 3}
m_Name: UniversalRenderPipelineAsset
m_EditorClassIdentifier:
k_AssetVersion: 13
k_AssetPreviousVersion: 13
m_RendererType: 1
m_RendererData: {fileID: 0}
m_RendererDataList:
- {fileID: 11400000, guid: 61a1b88813ced4bde8ed27e3df04ab50, type: 2}
m_DefaultRendererIndex: 0
m_RequireDepthTexture: 1
m_RequireOpaqueTexture: 0
m_OpaqueDownsampling: 1
m_SupportsTerrainHoles: 1
m_SupportsHDR: 1
m_HDRColorBufferPrecision: 0
m_MSAA: 1
m_RenderScale: 1
m_UpscalingFilter: 0
m_FsrOverrideSharpness: 0
m_FsrSharpness: 0.92
m_EnableLODCrossFade: 1
m_LODCrossFadeDitheringType: 1
m_ShEvalMode: 0
m_LightProbeSystem: 0
m_ProbeVolumeMemoryBudget: 1024
m_ProbeVolumeBlendingMemoryBudget: 256
m_SupportProbeVolumeGPUStreaming: 0
m_SupportProbeVolumeDiskStreaming: 0
m_SupportProbeVolumeScenarios: 0
m_SupportProbeVolumeScenarioBlending: 0
m_ProbeVolumeSHBands: 1
m_MainLightRenderingMode: 1
m_MainLightShadowsSupported: 1
m_MainLightShadowmapResolution: 2048
m_AdditionalLightsRenderingMode: 1
m_AdditionalLightsPerObjectLimit: 4
m_AdditionalLightShadowsSupported: 0
m_AdditionalLightsShadowmapResolution: 2048
m_AdditionalLightsShadowResolutionTierLow: 256
m_AdditionalLightsShadowResolutionTierMedium: 512
m_AdditionalLightsShadowResolutionTierHigh: 1024
m_ReflectionProbeBlending: 0
m_ReflectionProbeBoxProjection: 0
m_ReflectionProbeAtlas: 1
m_ShadowDistance: 50
m_ShadowCascadeCount: 1
m_Cascade2Split: 0.25
m_Cascade3Split: {x: 0.1, y: 0.3}
m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467}
m_CascadeBorder: 0.2
m_ShadowDepthBias: 1
m_ShadowNormalBias: 1
m_AnyShadowsSupported: 1
m_SoftShadowsSupported: 0
m_ConservativeEnclosingSphere: 1
m_NumIterationsEnclosingSphere: 64
m_SoftShadowQuality: 2
m_AdditionalLightsCookieResolution: 2048
m_AdditionalLightsCookieFormat: 3
m_UseSRPBatcher: 1
m_SupportsDynamicBatching: 0
m_MixedLightingSupported: 1
m_SupportsLightCookies: 1
m_SupportsLightLayers: 0
m_DebugLevel: 0
m_StoreActionsOptimization: 0
m_UseAdaptivePerformance: 1
m_ColorGradingMode: 0
m_ColorGradingLutSize: 32
m_AllowPostProcessAlphaOutput: 0
m_UseFastSRGBLinearConversion: 0
m_SupportDataDrivenLensFlare: 1
m_SupportScreenSpaceLensFlare: 1
m_GPUResidentDrawerMode: 0
m_SmallMeshScreenPercentage: 0
m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0
m_ShadowType: 1
m_LocalShadowsSupported: 0
m_LocalShadowsAtlasResolution: 256
m_MaxPixelLights: 0
m_ShadowAtlasResolution: 256
m_VolumeFrameworkUpdateMode: 0
m_VolumeProfile: {fileID: 0}
apvScenesData:
obsoleteSceneBounds:
m_Keys: []
m_Values: []
obsoleteHasProbeVolumes:
m_Keys: []
m_Values:
m_PrefilteringModeMainLightShadows: 3
m_PrefilteringModeAdditionalLight: 3
m_PrefilteringModeAdditionalLightShadows: 0
m_PrefilterXRKeywords: 1
m_PrefilteringModeForwardPlus: 0
m_PrefilteringModeDeferredRendering: 0
m_PrefilteringModeScreenSpaceOcclusion: 0
m_PrefilterDebugKeywords: 1
m_PrefilterWriteRenderingLayers: 1
m_PrefilterHDROutput: 1
m_PrefilterAlphaOutput: 1
m_PrefilterSSAODepthNormals: 1
m_PrefilterSSAOSourceDepthLow: 1
m_PrefilterSSAOSourceDepthMedium: 1
m_PrefilterSSAOSourceDepthHigh: 1
m_PrefilterSSAOInterleaved: 1
m_PrefilterSSAOBlueNoise: 1
m_PrefilterSSAOSampleCountLow: 1
m_PrefilterSSAOSampleCountMedium: 1
m_PrefilterSSAOSampleCountHigh: 1
m_PrefilterDBufferMRT1: 1
m_PrefilterDBufferMRT2: 1
m_PrefilterDBufferMRT3: 1
m_PrefilterSoftShadowsQualityLow: 1
m_PrefilterSoftShadowsQualityMedium: 1
m_PrefilterSoftShadowsQualityHigh: 1
m_PrefilterSoftShadows: 0
m_PrefilterScreenCoord: 1
m_PrefilterScreenSpaceIrradiance: 1
m_PrefilterNativeRenderPass: 1
m_PrefilterUseLegacyLightmaps: 0
m_PrefilterBicubicLightmapSampling: 1
m_PrefilterReflectionProbeRotation: 1
m_PrefilterReflectionProbeBlending: 1
m_PrefilterReflectionProbeBoxProjection: 1
m_PrefilterReflectionProbeAtlas: 1
m_ShaderVariantLogLevel: 0
m_ShadowCascades: 0
m_Textures:
blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6939220033d5b428eb900e90212d2902
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+58
View File
@@ -0,0 +1,58 @@
%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: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
m_Name: UniversalRenderer
m_EditorClassIdentifier:
debugShaders:
debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
type: 3}
hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959,
type: 3}
probeVolumeResources:
probeVolumeDebugShader: {fileID: 0}
probeVolumeFragmentationDebugShader: {fileID: 0}
probeVolumeOffsetDebugShader: {fileID: 0}
probeVolumeSamplingDebugShader: {fileID: 0}
probeSamplingDebugMesh: {fileID: 0}
probeSamplingDebugTexture: {fileID: 0}
probeVolumeBlendStatesCS: {fileID: 0}
m_RendererFeatures: []
m_RendererFeatureMap:
m_UseNativeRenderPass: 0
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
m_AssetVersion: 3
m_PrepassLayerMask:
serializedVersion: 2
m_Bits: 4294967295
m_OpaqueLayerMask:
serializedVersion: 2
m_Bits: 4294967295
m_TransparentLayerMask:
serializedVersion: 2
m_Bits: 4294967295
m_DefaultStencilState:
overrideStencilState: 0
stencilReference: 0
stencilCompareFunction: 8
passOperation: 2
failOperation: 0
zFailOperation: 0
m_ShadowTransparentReceive: 1
m_RenderingMode: 0
m_DepthPrimingMode: 0
m_CopyDepthMode: 1
m_DepthAttachmentFormat: 0
m_DepthTextureFormat: 0
m_AccurateGbufferNormals: 0
m_IntermediateTextureMode: 1
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 61a1b88813ced4bde8ed27e3df04ab50
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 82f4082f90a6047c5b477df20021b978
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8aeae0a7d94384a8b979cec567fe9d8b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+231
View File
@@ -0,0 +1,231 @@
using UnityEditor;
using UnityEngine;
// UIMask 材质面板的"下拉框 -> 隐藏属性"绘制器基类。
// ShaderLab 的 Blend / Cull 只接受数字属性,没法用枚举直接切换,
// 所以由绘制器把下拉框的选项写进隐藏属性。
// 每次绘制面板都会同步一次,所以从其它 shader(例如 URP/Lit 也有同名的
// _SrcBlend / _DstBlend / _Cull)切过来的材质会被自动纠正。
// 注意:attribute 的名字必须是子类的简单类名,Unity 按类名查找绘制器。
public abstract class UIMaskEnumDrawer : MaterialPropertyDrawer
{
protected abstract string[] Options { get; }
// 把下拉框当前选项同步到材质上的隐藏属性
protected abstract void Apply(MaterialEditor editor, int index);
public override void OnGUI(Rect position, MaterialProperty prop, string label, MaterialEditor editor)
{
EditorGUI.BeginChangeCheck();
int index = Mathf.Clamp(Mathf.RoundToInt(prop.floatValue), 0, Options.Length - 1);
index = EditorGUI.Popup(position, label, index, Options);
if (EditorGUI.EndChangeCheck())
{
prop.floatValue = index;
}
Apply(editor, index);
}
public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor)
{
return EditorGUIUtility.singleLineHeight;
}
protected void SetValue(MaterialEditor editor, string propertyName, float value)
{
foreach (Object target in editor.targets)
{
var material = target as Material;
if (material == null || !material.HasProperty(propertyName))
{
continue;
}
if (!Mathf.Approximately(material.GetFloat(propertyName), value))
{
material.SetFloat(propertyName, value);
}
}
}
}
// 混合模式:Additive / Alpha / Alpha Premultiplied / Opaque
// 数值对应 UnityEngine.Rendering.BlendMode:SrcAlpha=5, One=1, OneMinusSrcAlpha=10, Zero=0
// Opaque 会同时打开 ZWrite(不透明需要写深度),其余模式 ZWrite = 0
public class UIMaskBlendMode : UIMaskEnumDrawer
{
private static readonly string[] Items = { "Additive", "Alpha", "Alpha Premultiplied", "Opaque" };
protected override string[] Options => Items;
protected override void Apply(MaterialEditor editor, int index)
{
const float srcAlpha = (float)UnityEngine.Rendering.BlendMode.SrcAlpha; // 5
const float one = (float)UnityEngine.Rendering.BlendMode.One; // 1
const float oneMinusSrcAlpha = (float)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha; // 10
const float zero = (float)UnityEngine.Rendering.BlendMode.Zero; // 0
switch (index)
{
case 1: // Alpha:标准透明混合
SetValue(editor, "_SrcBlend", srcAlpha);
SetValue(editor, "_DstBlend", oneMinusSrcAlpha);
SetValue(editor, "_ZWrite", 0f);
break;
case 2: // Alpha Premultiplied:颜色已预乘 alpha,源因子用 One
SetValue(editor, "_SrcBlend", one);
SetValue(editor, "_DstBlend", oneMinusSrcAlpha);
SetValue(editor, "_ZWrite", 0f);
break;
case 3: // Opaque:不混合 + 写深度
SetValue(editor, "_SrcBlend", one);
SetValue(editor, "_DstBlend", zero);
SetValue(editor, "_ZWrite", 1f);
break;
default: // Additive:SrcAlpha + One
SetValue(editor, "_SrcBlend", srcAlpha);
SetValue(editor, "_DstBlend", one);
SetValue(editor, "_ZWrite", 0f);
break;
}
}
}
// 渲染面:只渲染前面 / 只渲染后面 / 双面
// ShaderLab 的 Cull 取值:Off=0(双面)、Front=1(剔除正面,即只渲染后面)、Back=2(剔除背面,即只渲染前面)
public class UIMaskRenderFace : UIMaskEnumDrawer
{
private const float CullOff = 0f;
private const float CullFront = 1f;
private const float CullBack = 2f;
private static readonly string[] Items = { "前面", "背面", "双面" };
protected override string[] Options => Items;
protected override void Apply(MaterialEditor editor, int index)
{
float cull = index == 0 ? CullBack : (index == 1 ? CullFront : CullOff);
SetValue(editor, "_Cull", cull);
}
}
// 贴图通道:R / G / B / A(值直接被 shader 采样时使用,不需要写隐藏属性)
// 默认 A(index = 3)
public class UIMaskChannel : UIMaskEnumDrawer
{
private static readonly string[] Items = { "R 通道", "G 通道", "B 通道", "A 通道" };
protected override string[] Options => Items;
protected override void Apply(MaterialEditor editor, int index)
{
// 下拉框的值本身就是要采样的通道号,无需同步到别的属性
}
}
// 通用模块:粒子自定义数据通道下拉框(shader 里写 [CustomDataChannel])
// 选项 9 项:null / Custom1.xyzw / Custom2.xyzw;值 0=null,1~4=Custom1,5~8=Custom2
// 右侧会提示该通道是否已被同一材质上的其它参数占用
//(约定:属性名里含 "CustomChannel" 的都会被统计,以后新增参数只要按这个命名即可自动纳入)
// shader 侧配套函数:CustomDataChannelValue(custom1, custom2, channel) → 取对应通道的值
public class CustomDataChannel : MaterialPropertyDrawer
{
private static readonly string[] Items =
{
"null",
"Custom1.x", "Custom1.y", "Custom1.z", "Custom1.w",
"Custom2.x", "Custom2.y", "Custom2.z", "Custom2.w"
};
private const float HintWidth = 150f;
public override float GetPropertyHeight(MaterialProperty prop, string label, MaterialEditor editor)
{
return EditorGUIUtility.singleLineHeight;
}
public override void OnGUI(Rect position, MaterialProperty prop, string label, MaterialEditor editor)
{
Rect popupRect = new Rect(position.x, position.y, Mathf.Max(60f, position.width - HintWidth - 4f), position.height);
Rect hintRect = new Rect(position.xMax - HintWidth, position.y, HintWidth, position.height);
int index = Mathf.Clamp(Mathf.RoundToInt(prop.floatValue), 0, Items.Length - 1);
EditorGUI.BeginChangeCheck();
EditorGUI.showMixedValue = prop.hasMixedValue;
index = EditorGUI.Popup(popupRect, label, index, Items);
EditorGUI.showMixedValue = false;
if (EditorGUI.EndChangeCheck())
{
prop.floatValue = index;
}
bool occupied;
string hint = DescribeOccupation(editor, prop, index, out occupied);
var hintContent = new GUIContent(hint, "数据来自粒子系统的「自定义数据」模块;"
+ "还需要在粒子渲染器的「自定义顶点流」里按 UV、Custom1.xyzw、Custom2.xyzw 的顺序勾选对应通道。");
Color oldColor = GUI.color;
if (index == 0)
{
GUI.color = new Color(0.7f, 0.7f, 0.7f);
}
else
{
GUI.color = occupied ? new Color(1f, 0.72f, 0.25f) : new Color(0.55f, 0.85f, 0.55f);
}
EditorGUI.LabelField(hintRect, hintContent, EditorStyles.miniLabel);
GUI.color = oldColor;
}
private static string DescribeOccupation(MaterialEditor editor, MaterialProperty prop, int index, out bool occupied)
{
occupied = false;
if (index == 0)
{
return "未使用";
}
var material = editor.targets.Length > 0 ? editor.targets[0] as Material : null;
if (material == null)
{
return string.Empty;
}
Shader shader = material.shader;
int count = shader.GetPropertyCount();
var owners = new System.Collections.Generic.List<string>();
for (int i = 0; i < count; i++)
{
string name = shader.GetPropertyName(i);
if (name == prop.name || !name.Contains("CustomChannel"))
{
continue;
}
if (!material.HasProperty(name) || Mathf.RoundToInt(material.GetFloat(name)) != index)
{
continue;
}
string description = shader.GetPropertyDescription(i);
owners.Add(string.IsNullOrEmpty(description) ? name : description);
}
if (owners.Count == 0)
{
return "未占用";
}
occupied = true;
return owners.Count == 1
? "已被 " + owners[0] + " 占用"
: "已被 " + owners[0] + " 等 " + owners.Count + " 处占用";
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: de421d7ff241b44acba639824a11e4b6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+331
View File
@@ -0,0 +1,331 @@
using UnityEditor;
using UnityEngine;
using System.Collections.Generic;
// UIMask 的材质面板:分组折叠 + 中文标签。
// shader 里用 CustomEditor "UIMaskShaderGUI" 挂上这个类。
// 折叠状态存在 EditorPrefs(按组名),重编译/重启 Unity 后仍然保持。
// 未在 Groups 里列出的属性(_SrcBlend/_DstBlend/_Cull、硬边溶解、Stencil 等)不绘制。
public class UIMaskShaderGUI : ShaderGUI
{
private const string FoldKeyPrefix = "UIMask.GUI.";
// 用来读取 shader 里声明的默认值(新建一个隐藏材质读它的初始值)
private static Material defaultsMaterial;
private class Group
{
public string Label;
public string Toggle; // 组的启用开关(没有则为 null)
public string[] Props; // 组内属性,按显示顺序
}
private static readonly Group[] Groups =
{
new Group
{
Label = "基础",
Props = new[] { "_BlendMode", "_RenderFace", "_TintColor", "_GlowScale|_AlphaScale", "_MainTex", "_SoftParticleFade" }
},
new Group
{
Label = "UV 滚动",
Toggle = "_UseUvAni",
Props = new[] { "_SpeedU|_SpeedV" }
},
new Group
{
Label = "UV 扰乱",
Toggle = "_UseUvDistortion",
Props = new[] { "_UVNoiseTex", "_Distortion", "_NoiseScroll" }
},
new Group
{
Label = "遮罩 Mask",
Toggle = "_UseMask",
Props = new[] { "_UseMaskUvAni", "_Mask", "_MaskChannel", "_MaskSpeedU|_MaskSpeedV" }
},
new Group
{
Label = "溶解",
Toggle = "_UseDissolve",
Props = new[]
{
"_DissolveTex",
"_DissolveChannel",
"_Dissolve",
"_DissolveWidth",
"_DissolveCustomChannel",
"_DissolveEdgeColor",
"_DissolveEdgeSharpness",
"_DissolveHighlightColor",
"_DissolveHighlightWidth"
}
},
new Group
{
Label = "UI 裁切",
Toggle = "_UseUIMaskClip",
Props = new[] { "_ClipRect" }
},
new Group
{
Label = "顶点遮罩",
Toggle = "_UseVertexMask",
Props = new[] { "_VertexOffset" }
},
};
public override void OnGUI(MaterialEditor editor, MaterialProperty[] props)
{
foreach (Group group in Groups)
{
DrawGroup(editor, props, group);
}
}
private static void DrawGroup(MaterialEditor editor, MaterialProperty[] props, Group group)
{
MaterialProperty toggle = string.IsNullOrEmpty(group.Toggle)
? null
: FindProperty(group.Toggle, props, false);
string foldKey = FoldKeyPrefix + group.Label;
// 默认只展开"基础",其余收起(收起时右边的勾选状态仍能看出该功能有没有开)
bool expanded = EditorPrefs.GetBool(foldKey, group.Label == "基础");
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
EditorGUILayout.BeginHorizontal();
bool newExpanded = EditorGUILayout.Foldout(expanded, group.Label, true, EditorStyles.foldoutHeader);
GUILayout.FlexibleSpace();
if (toggle != null)
{
editor.ShaderProperty(toggle, GUIContent.none, 0);
}
if (GUILayout.Button(new GUIContent("重置", "把本组参数恢复为 shader 默认值"), EditorStyles.miniButton, GUILayout.Width(42f)))
{
ResetGroup(editor, props, group);
}
EditorGUILayout.EndHorizontal();
if (newExpanded != expanded)
{
EditorPrefs.SetBool(foldKey, newExpanded);
}
if (newExpanded)
{
EditorGUI.indentLevel++;
DrawProps(editor, props, group.Props);
EditorGUI.indentLevel--;
}
EditorGUILayout.EndVertical();
}
// 把某一组的属性恢复成 shader 默认值(启用开关同时同步它的关键字)
private static void ResetGroup(MaterialEditor editor, MaterialProperty[] props, Group group)
{
Material sample = null;
foreach (Object target in editor.targets)
{
sample = target as Material;
if (sample != null)
{
break;
}
}
if (sample == null)
{
return;
}
if (defaultsMaterial == null || defaultsMaterial.shader != sample.shader)
{
if (defaultsMaterial != null)
{
Object.DestroyImmediate(defaultsMaterial);
}
defaultsMaterial = new Material(sample.shader) { hideFlags = HideFlags.HideAndDontSave };
}
Undo.RecordObjects(editor.targets, "Reset " + group.Label);
foreach (string name in EnumerateNames(group))
{
MaterialProperty prop = FindProperty(name, props, false);
if (prop == null || !defaultsMaterial.HasProperty(name))
{
continue;
}
switch (prop.propertyType)
{
case UnityEngine.Rendering.ShaderPropertyType.Color:
prop.colorValue = defaultsMaterial.GetColor(name);
break;
case UnityEngine.Rendering.ShaderPropertyType.Vector:
prop.vectorValue = defaultsMaterial.GetVector(name);
break;
case UnityEngine.Rendering.ShaderPropertyType.Texture:
prop.textureValue = defaultsMaterial.GetTexture(name);
break;
default:
float value = defaultsMaterial.GetFloat(name);
prop.floatValue = value;
// 开关类属性(_UseXxx)要把关键字一起恢复,否则面板勾选和实际编译状态会对不上
if (name.StartsWith("_Use"))
{
SetKeyword(editor, KeywordOf(name), value > 0.5f);
}
break;
}
}
foreach (Object target in editor.targets)
{
EditorUtility.SetDirty(target);
}
}
private static IEnumerable<string> EnumerateNames(Group group)
{
if (!string.IsNullOrEmpty(group.Toggle))
{
yield return group.Toggle;
}
foreach (string row in group.Props)
{
int separator = row.IndexOf('|');
if (separator < 0)
{
yield return row;
}
else
{
yield return row.Substring(0, separator);
yield return row.Substring(separator + 1);
}
}
}
private static string KeywordOf(string propertyName)
{
string trimmed = propertyName.StartsWith("_") ? propertyName.Substring(1) : propertyName;
return "_" + trimmed.ToUpperInvariant() + "_ON";
}
private static void SetKeyword(MaterialEditor editor, string keyword, bool enabled)
{
foreach (Object target in editor.targets)
{
var material = target as Material;
if (material == null)
{
continue;
}
if (enabled)
{
material.EnableKeyword(keyword);
}
else
{
material.DisableKeyword(keyword);
}
}
}
// group.Props 里一项 = 一行;写 "A|B" 表示这两个单值属性并排在同一行
private static void DrawProps(MaterialEditor editor, MaterialProperty[] props, string[] rows)
{
foreach (string row in rows)
{
int separator = row.IndexOf('|');
if (separator < 0)
{
DrawOne(editor, props, row);
continue;
}
MaterialProperty left = FindProperty(row.Substring(0, separator), props, false);
MaterialProperty right = FindProperty(row.Substring(separator + 1), props, false);
if (left != null && right != null && IsSingleValue(left) && IsSingleValue(right))
{
DrawTwoPerRow(editor, left, right);
}
else
{
// 其中一边不存在或不是单值属性,退回各自一行,避免出错
if (left != null) DrawOne(editor, props, left.name);
if (right != null) DrawOne(editor, props, right.name);
}
}
}
private static void DrawOne(MaterialEditor editor, MaterialProperty[] props, string name)
{
MaterialProperty prop = FindProperty(name, props, false);
if (prop == null)
{
return;
}
if (prop.propertyType == UnityEngine.Rendering.ShaderPropertyType.Texture)
{
// Unity 原生贴图选择器(缩略图 + 平铺/偏移都由它画)
bool scaleOffset = (prop.propertyFlags & UnityEngine.Rendering.ShaderPropertyFlags.NoScaleOffset) == 0;
editor.TextureProperty(prop, prop.displayName, scaleOffset);
return;
}
if (prop.propertyType == UnityEngine.Rendering.ShaderPropertyType.Vector)
{
DrawVectorTwoLines(prop);
return;
}
editor.ShaderProperty(prop, prop.displayName);
}
private static bool IsSingleValue(MaterialProperty prop)
{
return prop.propertyType == UnityEngine.Rendering.ShaderPropertyType.Float
|| prop.propertyType == UnityEngine.Rendering.ShaderPropertyType.Int;
}
// 两个单值属性并排一行;半行放不下默认标签宽度,所以临时收窄标签
private static void DrawTwoPerRow(MaterialEditor editor, MaterialProperty left, MaterialProperty right)
{
Rect row = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight);
const float gap = 6f;
float half = (row.width - gap) * 0.5f;
float oldLabelWidth = EditorGUIUtility.labelWidth;
EditorGUIUtility.labelWidth = Mathf.Min(oldLabelWidth, half * 0.5f);
editor.ShaderProperty(new Rect(row.x, row.y, half, row.height), left, new GUIContent(left.displayName));
editor.ShaderProperty(new Rect(row.x + half + gap, row.y, half, row.height), right, new GUIContent(right.displayName));
EditorGUIUtility.labelWidth = oldLabelWidth;
}
// 四分量向量:属性名独占一行,X/Y/Z/W 单独占下一行(默认是挤在同一行,名字会被切掉)
private static void DrawVectorTwoLines(MaterialProperty prop)
{
EditorGUILayout.LabelField(prop.displayName, EditorStyles.label);
EditorGUI.BeginChangeCheck();
EditorGUI.showMixedValue = prop.hasMixedValue;
Vector4 value = EditorGUILayout.Vector4Field(GUIContent.none, prop.vectorValue);
EditorGUI.showMixedValue = false;
if (EditorGUI.EndChangeCheck())
{
prop.vectorValue = value;
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 621d15512511a4cbdaf5fc4e9f99dfa3
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+193
View File
@@ -0,0 +1,193 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: VFX
m_Shader: {fileID: 4800000, guid: 7ddbc50ff7d2d42939fd3e9816f2baf4, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords:
- _USEUVTRAIL_ON
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BaseMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DissolveTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 7ca288cbfc0684bbf876ce03dca16a9a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Mask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _RampTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _UVNoiseTex:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_LightmapsInd:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- unity_ShadowMasks:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Ints: []
m_Floats:
- _AlphaClip: 0
- _AlphaScale: 1
- _AlphaToMask: 0
- _Blend: 0
- _BlendMode: 1
- _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _ClearCoatMask: 0
- _ClearCoatSmoothness: 0
- _ColorMask: 15
- _Cull: 2
- _Cutoff: 0.5
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _Dissolve: 0
- _DissolveChannel: 3
- _DissolveCustomChannel: 0
- _DissolveCustomData: 0
- _DissolveEdgeSharpness: 2
- _DissolveHighlightWidth: 0.08
- _DissolveWidth: 0
- _Distortion: 0
- _DstBlend: 10
- _DstBlendAlpha: 0
- _EdgeGlow: 1
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _GlowScale: 1
- _MaskChannel: 3
- _MaskSpeedU: 0
- _MaskSpeedV: 0
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _RenderFace: 0
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SoftParticleFade: 0
- _SpecularHighlights: 1
- _SpeedU: 0
- _SpeedV: 0
- _SrcBlend: 5
- _SrcBlendAlpha: 1
- _Stencil: 0
- _StencilComp: 8
- _StencilOp: 0
- _StencilReadMask: 255
- _StencilWriteMask: 255
- _Surface: 0
- _UseDissolve: 0
- _UseHardEdge: 0
- _UseMask: 0
- _UseMaskUvAni: 0
- _UseReceiveFog: 0
- _UseUIMaskClip: 0
- _UseUvAni: 0
- _UseUvDistortion: 0
- _UseUvTrail: 1
- _UseVertexMask: 0
- _VertexFlipX: 1
- _WorkflowMode: 1
- _ZWrite: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _ClipRect: {r: -1, g: -1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _DissolveEdgeColor: {r: 0, g: 0, b: 0, a: 1}
- _DissolveHighlightColor: {r: 0, g: 0, b: 0, a: 1}
- _EdgeColor: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _MainTexTiling: {r: 1, g: 1, b: 0, a: 0}
- _NoiseScroll: {r: 0, g: 0, b: 1, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
- _TintColor: {r: 0.5, g: 0.5, b: 0.5, a: 0.5}
- _VertexOffset: {r: 0, g: 0, b: 1, a: 1}
m_BuildTextureStacks: []
--- !u!114 &4124507439711967337
MonoBehaviour:
m_ObjectHideFlags: 11
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 7
+8
View File
@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: fef3f43e5c75945209ac3bd77f1cad29
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:
+325
View File
@@ -0,0 +1,325 @@
// UIMask:UI Mask 粒子/特效 shader —— 加色与普通混合共用一个 shader
//
// 混合模式在材质面板上是一个下拉框 "_BlendMode"(加色 Additive / 普通混合 AlphaBlend)。
// 它由 Assets/Shaders/Editor/UIMaskBlendMode.cs([UIMaskBlendMode] 绘制器)映射到真正的 Blend 状态:
// 加色(Additive): _SrcBlend = 5 (SrcAlpha) _DstBlend = 1 (One)
// 普通混合(AlphaBlend):_SrcBlend = 5 (SrcAlpha) _DstBlend = 10 (OneMinusSrcAlpha)
// 渲染面同理:[UIMaskRenderFace] 下拉映射到隐藏属性 _Cull(双面=0,只渲染后面=1,只渲染前面=2)。
// _SrcBlend / _DstBlend / _Cull 是隐藏属性,由下拉框自动写入,不要手动改。
// Blend 是固定功能状态,不参与 shader 变体表,所以切换混合模式不产生额外变体。
// 面向美术:程序/技术类参数一律用 [HideInInspector] 隐藏(混合模式内部值、Stencil 组、
// 顶点 Mask 翻转),需要时由程序控制,材质面板只留艺术参数。
Shader "VFX/Yeomai_VFX" {
Properties {
[UIMaskBlendMode] _BlendMode ("混合模式", Float) = 0
[HideInInspector] _SrcBlend ("Src Blend", Float) = 5
[HideInInspector] _DstBlend ("Dst Blend", Float) = 1
[UIMaskRenderFace] _RenderFace ("渲染面", Float) = 2
[HideInInspector] _Cull ("Cull", Float) = 0
[HideInInspector] _ZWrite ("ZWrite", Float) = 0
[HDR]_TintColor ("着色", Color) = (0.5,0.5,0.5,0.5)
_GlowScale("发光强度", float) = 1
_AlphaScale("透明度", float) = 1
_SoftParticleFade ("软粒子过渡", Range(0, 5)) = 0
_MainTex ("主贴图", 2D) = "white" {}
[Toggle] _UseUvAni("启用", Float) = 0
_SpeedU("U 速度", Float) = 0
_SpeedV("V 速度", Float) = 0
[Toggle] _UseUvDistortion("启用", Float) = 0
_UVNoiseTex("噪声贴图", 2D) = "black" {}
_Distortion ("扰动量", Float) = 0
_NoiseScroll ("噪声滚动 (XY 速度 / ZW 强度)", Vector) = (0,0,1,1)
[Toggle] _UseMask("启用", Float) = 0
[Toggle] _UseMaskUvAni("UV 滚动", Float) = 0
_Mask("遮罩贴图", 2D) = "white" {}
[UIMaskChannel] _MaskChannel("通道", Float) = 3
_MaskSpeedU("U 速度", Float) = 0
_MaskSpeedV("V 速度", Float) = 0
[Toggle] _UseDissolve("启用", Float) = 0
_DissolveTex ("溶解贴图", 2D) = "white" {}
[UIMaskChannel] _DissolveChannel("通道", Float) = 3
_Dissolve ("溶解进度", Range(0, 1.01)) = 0
_DissolveWidth ("溶解宽度", Range(0, 1)) = 0
[CustomDataChannel] _DissolveCustomChannel ("自定义数据通道", Float) = 0
// 默认黑色 = 不叠加任何颜色,保证新参数不影响原有溶解效果
[HDR]_DissolveEdgeColor ("溶解边缘颜色", Color) = (0, 0, 0, 1)
_DissolveEdgeSharpness ("边缘锐度 (越大越细)", Range(0.001, 8)) = 2
// 第二层:贴边界的细亮圈(烧纸的燃烧边),同样默认黑色不影响原效果
[HDR]_DissolveHighlightColor ("溶解边缘高亮", Color) = (0, 0, 0, 1)
_DissolveHighlightWidth ("高亮宽度 (越小越细)", Range(0.001, 0.5)) = 0.08
[Toggle] _UseUIMaskClip("启用", Float) = 0
_ClipRect("裁切矩形 (由 Mask / RectMask2D 控制)", Vector) = (-1, -1, 1, 1)
[Toggle] _UseVertexMask("启用", Float) = 0
_VertexOffset ("方向与范围", Vector) = (0,0,1,1)
// 程序专用:顶点 Mask 的翻转,由程序设置
[HideInInspector] _VertexFlipX ("程序专用", Float) = 1
// required for UI.Mask —— 这几个由 Unity 的 Mask / RectMask2D 在运行时写入,不需要美术看到
[HideInInspector] _StencilComp("Stencil Comparison", Float) = 8
[HideInInspector] _Stencil("Stencil ID", Float) = 0
[HideInInspector] _StencilOp("Stencil Operation", Float) = 0
[HideInInspector] _StencilWriteMask("Stencil Write Mask", Float) = 255
[HideInInspector] _StencilReadMask("Stencil Read Mask", Float) = 255
[HideInInspector] _ColorMask("Color Mask", Float) = 15
}
CustomEditor "UIMaskShaderGUI"
Category {
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" }
Blend [_SrcBlend][_DstBlend]
Cull [_Cull] Lighting Off ZWrite [_ZWrite]
SubShader {
Stencil
{
Ref[_Stencil]
Comp[_StencilComp]
Pass[_StencilOp]
ReadMask[_StencilReadMask]
WriteMask[_StencilWriteMask]
}
ColorMask[_ColorMask]
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 2.0
// 全部使用 shader_feature(按材质用到的组合裁剪),不要改成 multi_compile
#pragma shader_feature _USEMASK_ON
#pragma shader_feature _USEMASKUVANI_ON
#pragma shader_feature _USEUVANI_ON
#pragma shader_feature _USEUVDISTORTION_ON
#pragma shader_feature _USEDISSOLVE_ON
#pragma shader_feature _USEUIMASKCLIP_ON
#pragma shader_feature _USEVERTEXMASK_ON
// 不声明 multi_compile_fog:UNITY_FOG_* 宏在无雾关键字时展开为空,
// 原来的"_UseReceiveFog"开关勾了也不会有任何效果,故已移除。
#include "UnityCG.cginc"
#include "UnityUI.cginc"
sampler2D _MainTex;
fixed4 _TintColor;
// 软粒子:拿相机深度图和粒子自身深度比较,贴近其它几何体时淡出(距离=0 时完全不生效)
UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture);
float _SoftParticleFade;
#if _USEMASK_ON
sampler2D _Mask;
fixed4 _Mask_ST;
float _MaskChannel;
#if _USEMASKUVANI_ON
float _MaskSpeedU;
float _MaskSpeedV;
#endif
#endif
#if _USEUVANI_ON
float _SpeedU;
float _SpeedV;
#endif
#if _USEUVDISTORTION_ON
sampler2D _UVNoiseTex;
fixed4 _UVNoiseTex_ST;
fixed _Distortion;
fixed4 _NoiseScroll;
#endif
#if _USEDISSOLVE_ON
sampler2D _DissolveTex;
fixed4 _DissolveTex_ST;
float _DissolveChannel;
fixed _Dissolve;
fixed _DissolveWidth;
float _DissolveCustomChannel;
fixed4 _DissolveEdgeColor;
fixed _DissolveEdgeSharpness;
fixed4 _DissolveHighlightColor;
fixed _DissolveHighlightWidth;
#endif
// 通道选择:0=R 1=G 2=B 3=A。用点乘取通道,避免动态分量索引(SM2.0 不支持)
inline float UIMaskSampleChannel(sampler2D tex, float2 uv, float channel)
{
float4 c = tex2D(tex, uv);
float4 w = 1.0 - saturate(abs(channel - float4(0.0, 1.0, 2.0, 3.0)));
return dot(c, w);
}
// 通用模块:按通道号取粒子自定义数据(供"自定义数据通道"下拉框使用)
// channel: 0 = null(返回 0),1~4 = Custom1.xyzw,5~8 = Custom2.xyzw
inline float CustomDataChannelValue(float4 custom1, float4 custom2, float channel)
{
float4 w1 = 1.0 - saturate(abs(channel - float4(1.0, 2.0, 3.0, 4.0)));
float4 w2 = 1.0 - saturate(abs(channel - float4(5.0, 6.0, 7.0, 8.0)));
return dot(custom1, w1) + dot(custom2, w2);
}
#if _USEUIMASKCLIP_ON
fixed4 _ClipRect;
#endif
#if _USEVERTEXMASK_ON
fixed4 _VertexOffset;
fixed _VertexFlipX;
#endif
struct appdata_t {
float4 vertex : POSITION;
fixed4 color : COLOR;
// 顶点流约定(渲染器 → 自定义顶点流,按此顺序):UV, Custom1.xyzw, Custom2.xyzw
float4 texcoord : TEXCOORD0; // UV.xy + Custom1.xy
float4 texcoord1 : TEXCOORD1; // Custom1.zw + Custom2.xy
float4 texcoord2 : TEXCOORD2; // Custom2.zw
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f {
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
fixed4 texcoord : TEXCOORD0;
float4 customData : TEXCOORD1; // Custom1.xyzw
float4 customData2 : TEXCOORD6; // Custom2.xyzw
#if _USEMASK_ON || _USEUVDISTORTION_ON
// xy = 遮罩 UV,zw = 噪声 UV(合占一个插值器,给软粒子腾位置)
fixed4 uvPack : TEXCOORD2;
#endif
#if _USEDISSOLVE_ON
fixed2 texcoordDissolve: TEXCOORD4;
#endif
#if _USEUIMASKCLIP_ON
fixed2 worldPosition : TEXCOORD5;
#endif
// 软粒子:xy/w = 屏幕 UV,w = 视空间深度
float4 screenPos : TEXCOORD3;
#if _USEVERTEXMASK_ON
fixed2 vertex2 : TEXCOORD7;
#endif
UNITY_VERTEX_OUTPUT_STEREO
};
fixed4 _MainTex_ST;
fixed _GlowScale;
fixed _AlphaScale;
v2f vert (appdata_t v)
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
o.vertex = UnityObjectToClipPos(v.vertex);
o.color = v.color * _TintColor;
o.texcoord.xy = TRANSFORM_TEX(v.texcoord,_MainTex);
o.texcoord.zw = v.texcoord.zw;
o.screenPos = ComputeScreenPos(o.vertex);
// 把打包在各 texcoord 里的粒子自定义数据还原成 Custom1.xyzw / Custom2.xyzw
o.customData = float4(v.texcoord.z, v.texcoord.w, v.texcoord1.x, v.texcoord1.y);
o.customData2 = float4(v.texcoord1.z, v.texcoord1.w, v.texcoord2.x, v.texcoord2.y);
#if _USEMASK_ON
o.uvPack.xy = TRANSFORM_TEX(v.texcoord,_Mask);
#endif
#if _USEUVDISTORTION_ON
o.uvPack.zw = TRANSFORM_TEX(v.texcoord,_UVNoiseTex);
#endif
#if _USEDISSOLVE_ON
o.texcoordDissolve = TRANSFORM_TEX(v.texcoord,_DissolveTex);
#endif
#if _USEUIMASKCLIP_ON
o.worldPosition = mul(unity_ObjectToWorld, v.vertex).xy;
#endif
#if _USEVERTEXMASK_ON
o.vertex2 = v.vertex.xy;
#endif
return o;
}
fixed4 frag (v2f i) : SV_Target
{
#if _USEUVANI_ON
// 用 _Time.y(float)而不是 _Time.g(fixed):运行久了 fixed 精度不足会出现像素块/卡顿
i.texcoord.xy += _Time.y * float2(_SpeedU, _SpeedV);
#endif
#if _USEUVDISTORTION_ON
float2 noiseScrollXY = _NoiseScroll.xy;
i.uvPack.zw += fixed2(_Time.g * noiseScrollXY);
i.texcoord.xy += tex2D(_UVNoiseTex, i.uvPack.zw).xy*_Distortion*_NoiseScroll.zw;
#endif
fixed4 col = 2.0f * i.color * tex2D(_MainTex, i.texcoord.xy);
col.rgb *= _GlowScale;
col.a = saturate(col.a) * _AlphaScale;
#if _USEMASK_ON
#if _USEMASKUVANI_ON
i.uvPack.xy += _Time.y * float2(_MaskSpeedU, _MaskSpeedV);
#endif
col.a = saturate(col.a * UIMaskSampleChannel(_Mask, i.uvPack.xy, _MaskChannel));
#endif
#if _USEDISSOLVE_ON
// 溶解进度 = 滑条 × 选中的自定义数据通道;通道 = null 时完全用滑条(保持原行为)
fixed customProgress = CustomDataChannelValue(i.customData, i.customData2, _DissolveCustomChannel);
fixed useCustom = step(0.5, _DissolveCustomChannel);
fixed dissolveProgress = _Dissolve * lerp(1.0, customProgress, useCustom);
fixed DissolveWithParticle =(dissolveProgress*(1+_DissolveWidth)-_DissolveWidth) ;
fixed dissolveMap = UIMaskSampleChannel(_DissolveTex, i.texcoordDissolve, _DissolveChannel);
fixed dissolveAlpha = saturate(smoothstep( DissolveWithParticle, (DissolveWithParticle+_DissolveWidth), dissolveMap));
col.a *= dissolveAlpha;
// 溶解边缘色:越靠近溶解边界越亮。已溶解区域 alpha≈0 不可见,所以视觉上就是沿着溶解轮廓的一圈颜色。
// 做火焰时把颜色设成 HDR 橙红(用 HDR 拾色器的强度调亮),边缘就会像在燃烧。
fixed dissolveEdge = pow(1.0 - dissolveAlpha, _DissolveEdgeSharpness);
col.rgb += _DissolveEdgeColor.rgb * dissolveEdge;
// 细亮圈:只在溶解边界(dissolveAlpha ≈ 0.5)附近加亮,越靠近边界越亮,
// 宽度由 _DissolveHighlightWidth 控制;颜色用 HDR 拉高就是"烧得发白"的亮边。
fixed highlightBand = saturate(1.0 - abs(dissolveAlpha - 0.5) / max(_DissolveHighlightWidth, 0.0001));
col.rgb += _DissolveHighlightColor.rgb * smoothstep(0.0, 1.0, highlightBand);
#endif
#if _USEUIMASKCLIP_ON
col.a *= UnityGet2DClipping(i.worldPosition.xy, _ClipRect);
#endif
#if _USEVERTEXMASK_ON
col.a *= smoothstep(1, 0, ((i.vertex2.x - _VertexOffset.x) * _VertexOffset.z + (i.vertex2.y - _VertexOffset.y) * _VertexOffset.w) * _VertexFlipX);
#endif
// 软粒子:与相机深度图比较,贴近其它几何体(如地面)时按深度差淡出,消除生硬交线。
// _SoftParticleFade = 0(默认)时被 step 门控掉,完全不生效,也不产生分支/变体。
// 注意:正交相机下 screenPos.w != 视空间深度,此效果不适用。
{
float2 screenUV = i.screenPos.xy / i.screenPos.w;
float sceneEyeZ = LinearEyeDepth(SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, screenUV));
float partEyeZ = i.screenPos.w;
float softFade = saturate((sceneEyeZ - partEyeZ) / max(_SoftParticleFade, 0.0001));
col.a *= lerp(1.0, softFade, step(0.0001, _SoftParticleFade));
}
return col;
}
ENDCG
}
}
}
}
Loaded 100 of 270 files, more files were not shown because too many files have changed in this diff. Show more