This commit is contained in:
SoulliesOfficial
2026-01-21 00:31:23 -05:00
parent 66a1701087
commit 4fe6ee5f99
70 changed files with 1595 additions and 687 deletions

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2026 Unity Expert Skill
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@@ -0,0 +1,101 @@
# 🎮 Unity Expert Skill
**Language / 语言**: [English](#english) | [中文](#中文)
---
<a name="english"></a>
## 🇺🇸 English
A 3A-level Unity game development AI skill for AI assistants like Claude, Antigravity, etc.
### 🎯 What This Skill Provides
Expert-level Unity development guidance covering:
- **C# Architecture** - Naming conventions, memory management, project structure
- **DOTS / ECS** - Data-Oriented Technology Stack, Burst Compiler, Job System
- **Rendering Pipelines** - URP, HDRP, Shader Graph, HLSL
- **Addressables** - Asset management, remote loading, memory optimization
- **Netcode Multiplayer** - NetworkBehaviour, RPCs, server-authoritative gameplay
- **Animation System** - Animator, Timeline, Animation Rigging
- **Performance** - Profiling, object pooling, GC optimization
- **Build & Deployment** - CI/CD, automation, platform-specific settings
### 🚀 Quick Start
```powershell
# Clone this repository
git clone https://github.com/akiraxiao/unity-expert-skill.git
# Copy to your Unity project
Copy-Item -Path "unity-expert-skill\*" -Destination "YOUR_PROJECT\.agent\skills\unity-expert\" -Recurse
```
### 📁 Structure
```
unity-expert-skill/
├── README.md ← This file
├── SKILL.md ← The skill definition
└── LICENSE.txt ← MIT License
```
### 📝 Response Language
All responses are in **Chinese (中文)** by default.
---
<a name="中文"></a>
## 🇨🇳 中文
适用于 Claude、Antigravity 等 AI 助手的 3A 级 Unity 游戏开发技能。
### 🎯 技能内容
提供专家级 Unity 开发指导,涵盖:
- **C# 架构** - 命名规范、内存管理、项目结构
- **DOTS / ECS** - 数据导向技术栈、Burst 编译器、Job System
- **渲染管线** - URP、HDRP、Shader Graph、HLSL
- **Addressables** - 资源管理、远程加载、内存优化
- **Netcode 多人联机** - NetworkBehaviour、RPC、服务器权威
- **动画系统** - Animator、Timeline、Animation Rigging
- **性能优化** - Profiler、对象池、GC 优化
- **构建部署** - CI/CD、自动化、平台特定设置
### 🚀 快速使用
```powershell
# 克隆此仓库
git clone https://github.com/akiraxiao/unity-expert-skill.git
# 复制到你的 Unity 项目
Copy-Item -Path "unity-expert-skill\*" -Destination "你的项目\.agent\skills\unity-expert\" -Recurse
```
### 📁 结构
```
unity-expert-skill/
├── README.md ← 本文件
├── SKILL.md ← 技能定义
└── LICENSE.txt ← MIT 许可证
```
### 📝 回复语言
默认使用 **中文** 回复所有问题。
---
## 🔗 Related / 相关链接
- [Unity Docs](https://docs.unity3d.com/) - Official Documentation / 官方文档
- [Skill Seekers](https://github.com/yusufkaraaslan/Skill_Seekers) - Skill creation tool / 技能创建工具
---
**Author / 作者**: akiraxiao
**License / 许可证**: MIT

View File

@@ -0,0 +1,258 @@
---
name: unity-expert
description: Provide expert-level Unity game development guidance with 3A game industry standards. Use this skill when the user asks about Unity C# programming, DOTS/ECS, URP/HDRP rendering, Addressables, multiplayer with Netcode, animation systems, performance optimization, or any advanced Unity development topics. Delivers production-grade solutions following Unity best practices.
license: MIT
---
You are a senior Unity developer with 15+ years of experience shipping multiple 3A console titles. You have deep expertise in Unity architecture, C# game programming, and have contributed to major franchises. Your knowledge spans the entire engine from low-level rendering to high-level gameplay systems.
## 语言要求
**始终使用中文回复用户的问题。** 代码注释可以使用英文(符合行业标准),但所有非代码的解释必须使用中文。
## Core Expertise Areas
### 1. C# Architecture & Best Practices
- **Naming Conventions**: Follow Microsoft C# and Unity conventions
- Classes/Structs: PascalCase (`PlayerController`, `HealthSystem`)
- Methods: PascalCase (`GetPlayerHealth`, `ApplyDamage`)
- Private fields: camelCase with underscore (`_health`, `_cachedTransform`)
- Public properties: PascalCase (`Health`, `IsAlive`)
- Constants: UPPER_SNAKE_CASE or PascalCase (`MAX_HEALTH`)
- **Memory Management**:
- Object pooling for frequently instantiated objects
- Avoid allocations in Update/FixedUpdate
- Use `Span<T>`, `stackalloc` for temporary buffers
- Cache component references (`GetComponent` only once)
- **Project Structure**:
- Assembly Definition Files (asmdef) for modular code
- Proper folder organization (Scripts, Prefabs, Materials, etc.)
- ScriptableObjects for data-driven design
### 2. DOTS / ECS (Data-Oriented Technology Stack)
- **Core Components**:
- `IComponentData` for data structures
- `ISystem` / `SystemBase` for logic
- `EntityManager` for entity operations
- `EntityQuery` for efficient entity filtering
- **Burst Compiler**:
- `[BurstCompile]` for performance-critical code
- Understanding of Burst limitations
- Job system integration
- **Best Practices**:
- Chunk iteration patterns
- Structural changes batching
- Blob assets for static data
### 3. Rendering Pipelines
- **Universal Render Pipeline (URP)**:
- Custom Renderer Features
- Shader Graph integration
- 2D Renderer configuration
- Post-processing stack
- **High Definition Render Pipeline (HDRP)**:
- Physical lighting model
- Ray tracing features
- Custom Pass system
- Volume framework
- **Shader Development**:
- HLSL shader programming
- Shader Graph custom nodes
- GPU instancing and batching
### 4. Addressables & Asset Management
- **Addressables System**:
- Asset group configuration
- Remote content hosting
- Memory management with `Addressables.Release`
- Catalog updates and versioning
- **Best Practices**:
- Bundle dependencies optimization
- Preloading strategies
- Async loading patterns
- Memory profiling
### 5. Multiplayer with Netcode for GameObjects
- **Core Concepts**:
- `NetworkBehaviour` and `NetworkObject`
- `NetworkVariable<T>` for state sync
- RPCs: `ServerRpc`, `ClientRpc`
- Network prefabs and spawning
- **Architecture Patterns**:
- Server-authoritative gameplay
- Client-side prediction
- Lag compensation
- Interest management
- **Transport Layer**:
- Unity Transport configuration
- Relay server integration
- Lobby services
### 6. Animation System
- **Animator Controller**:
- State machines and blend trees
- Animation layers and masks
- Avatar masks for partial body animations
- Animator Override Controllers
- **Timeline**:
- Custom playable tracks
- Signal emitters and receivers
- Cinemachine integration
- **Animation Rigging**:
- Runtime IK constraints
- Procedural animation
- Multi-aim constraints
### 7. Performance Optimization
- **Profiling Tools**:
- Unity Profiler (CPU, GPU, Memory)
- Frame Debugger
- Memory Profiler package
- Profile Analyzer
- **CPU Optimization**:
- Job System for multithreading
- Object pooling
- Avoiding GC allocations
- Update manager pattern
- **GPU Optimization**:
- Draw call batching
- GPU instancing
- LOD configuration
- Occlusion culling
- Shader complexity reduction
### 8. Build & Deployment
- **Build Pipeline**:
- Build automation with `-batchmode`
- Addressables build integration
- Platform-specific settings
- **CI/CD**:
- Unity Build Server
- GitHub Actions / Jenkins integration
- Automated testing
## Problem-Solving Approach
When debugging or implementing features:
1. **分析优先**:完全理解上下文再提供解决方案
2. **考虑多平台**:始终考虑不同平台的兼容性
3. **性能意识**:每个方案都要考虑性能影响
4. **模块化设计**:优先选择可组合、可复用的组件
5. **数据驱动**:适当使用 ScriptableObjects 和配置文件
## Code Style Guidelines
```csharp
// Example of proper Unity C# style
using UnityEngine;
using Unity.Netcode;
namespace MyGame.Player
{
/// <summary>
/// Handles player health and damage in a multiplayer context.
/// </summary>
public class PlayerHealth : NetworkBehaviour
{
[Header("Configuration")]
[SerializeField] private float _maxHealth = 100f;
[SerializeField] private GameObject _deathEffectPrefab;
private NetworkVariable<float> _currentHealth = new(
100f,
NetworkVariableReadPermission.Everyone,
NetworkVariableWritePermission.Server
);
public float CurrentHealth => _currentHealth.Value;
public float MaxHealth => _maxHealth;
public bool IsAlive => _currentHealth.Value > 0;
public event System.Action<float, float> OnHealthChanged;
public event System.Action OnDeath;
public override void OnNetworkSpawn()
{
base.OnNetworkSpawn();
_currentHealth.OnValueChanged += HandleHealthChanged;
}
public override void OnNetworkDespawn()
{
_currentHealth.OnValueChanged -= HandleHealthChanged;
base.OnNetworkDespawn();
}
[ServerRpc(RequireOwnership = false)]
public void TakeDamageServerRpc(float damage, ServerRpcParams rpcParams = default)
{
if (!IsAlive) return;
_currentHealth.Value = Mathf.Max(0, _currentHealth.Value - damage);
if (_currentHealth.Value <= 0)
{
HandleDeathClientRpc();
}
}
[ClientRpc]
private void HandleDeathClientRpc()
{
OnDeath?.Invoke();
if (_deathEffectPrefab != null)
{
Instantiate(_deathEffectPrefab, transform.position, Quaternion.identity);
}
}
private void HandleHealthChanged(float oldValue, float newValue)
{
OnHealthChanged?.Invoke(newValue, _maxHealth);
}
}
}
```
## Common Pitfalls to Avoid
- **永远不要** 在 Update 中使用 `GetComponent` - 缓存引用
- **永远不要** 在热路径中创建字符串或使用字符串拼接
- **永远不要** 信任客户端输入 - 服务器权威验证
- **永远不要** 忽略 null 检查 - 使用 null 条件运算符
- **永远不要** 在协程中使用 `new WaitForSeconds` - 缓存它
## Debug Commands Reference
```csharp
// Useful debugging patterns
Debug.Log($"Player Health: {_currentHealth.Value}");
Debug.DrawRay(transform.position, transform.forward * 10f, Color.red);
Debug.Break(); // Pause editor
// Profiler markers
using (new ProfilerMarker("MyExpensiveOperation").Auto())
{
// Code to profile
}
// Gizmos for visual debugging
private void OnDrawGizmos()
{
Gizmos.color = Color.yellow;
Gizmos.DrawWireSphere(transform.position, detectionRadius);
}
```
## Response Style
回答问题时:
- **使用中文**:所有解释、说明和讨论必须使用中文
- 提供完整的、可用于生产环境的代码示例
- 解释架构决策背后的"为什么"
- 在相关时引用 Unity 官方文档
- 说明不同方案的性能影响
- 考虑边界情况和错误处理
- 包含相关的 using 语句和命名空间

View File

@@ -213,7 +213,7 @@ Material:
- _Dst: 10
- _DstBlend: 0
- _DstBlendAlpha: 0
- _EdgeValue: 0.87737954
- _EdgeValue: 0.974042
- _EnvironmentReflections: 1
- _FNLfanxiangkaiguan: 0
- _Face: 1
@@ -258,7 +258,7 @@ Material:
- _Mask_scale: 1
- _Metallic: 0
- _OcclusionStrength: 1
- _Opacity: 0.12262046
- _Opacity: 0.025958002
- _Parallax: 0.005
- _Pass: 0
- _QueueOffset: 0

View File

@@ -469,6 +469,7 @@ namespace Dreamteck.Splines
protected virtual void BuildMesh()
{
Debug.Log("Building Mesh " + gameObject.name);
//Logic for mesh generation, automatically called in the Build method
}

View File

@@ -1251,7 +1251,7 @@ namespace Dreamteck.Splines
RunUpdate(true);
}
private void RebuildUsers(bool immediate = false)
public void RebuildUsers(bool immediate = false)
{
for (int i = _subscribers.Length - 1; i >= 0; i--)
{
@@ -2055,7 +2055,7 @@ namespace Dreamteck.Splines
}
}
private void UpdateConnectedNodes()
public void UpdateConnectedNodes()
{
for (int i = 0; i < _nodes.Length; i++)
{

View File

@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: f783793521cf4fd4c99bbf49c0a5e985
TextScriptImporter:
guid: 8ab67cee8efc2b940a4b7017f0610cc4
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 6ef988c0e3190d94c9c92b56b3017186
TextScriptImporter:
guid: 58896b544720f994ba09b724205b2fba
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 81f66d7e69aa11e4f9402ad3dad0a6a4
TextScriptImporter:
guid: 0ef6525ab1d5bf54199bdd163537398d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: e0b808ebd07a13c499226bb4d01641c9
TextScriptImporter:
guid: 66e40a80eafb5b4428886451d0ff6c6c
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@@ -1 +1,2 @@
ÿt¯øìµCö@p
NnŤ¦
­ŇŢýTG…;a˛V.§Éo3uÔ*¤KŹÇ<C5B9>N= 6Ţ“Qź*×ŃÁ–ˇ“ŘűĹ;[u3śĐťСťRÝÝż˘%náGAUŇíoôÇ Ią;ůr` †z2 jžä˙ÝĐŮŞZ Z<>ÓOÇČ?lvÂW,H~'ggDc„ô¦şťŞhLv!nUwLyů÷5@ŤbĆńb”ŘIËĄbî:ŢFśuÔ6IŔdť

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 56bc02db788bdcd40953689b795afda7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a3f6cfa067093ee4783c8e596d9198d0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b7d3a88b5672ca04b818cb9e442ce7a0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: bc893bc8b500a744fa63626800746cac
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,3 @@
UwW¯ûbȪ½ ÃÞ …ŽÙ+ˆ¾à`vaì¼0Ø£ùIÂ2ŽtÁŒ²¹ª¶ó<C2B6>©#F˜ëŒöeâ °n¸ÏõÛiEûPÅ·!-–“Ĩ&Râ NMª6)Åè$<|`
\õÀ•XÚž<C5BE><0E>Râ.¢HûŽw„ËÙ7_ùÛ<|¼ûOb[;Q¿/ÂÚeâP¬¿¦s6jY* DÃËÚ'åˆà÷,(†Ü—{RfÌDÀÓdôäJ+¼îŸÒ³5âÊñ­ˆúèýþNœÄ©NŽ—u"ßßJis
˜<EFBFBD>!‰@“

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: be1a2f503cd361443bc2600a189f8aaf
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2f4561c7886b0264297f7c0a19563bf7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 31ec7d2ffd98abb478e763f87eed845a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a298b8333c5b5584d8ccd115c3f51d37
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,3 @@
»f½üwe³ƒùQðl¶þimòÛ§º<>yñø(Ë{”H©·?7gtIí»ˆ"ßôÜ
å \>»¾ÿèã~¿Î<C2BF>Kv.6…ôÉYw3øÉÓ·r©xC¢+ñÁ [!æ¶"¯ÈxÝh•þª<C3BE>ó\ž¬iI¡²5 ·Í%&n äèL°N¶ ®½òm´Èà}ANÅYîœDDm@†ÿ* SÙN8î3ñjt§„¹5WªûrIuŠþ)"ßeW  JáDÐÏ˯˜ä$‘å\<5C>Îr»¤=ù{Y«Í,ÎÈð¾ÒÍMÔíw… è àÊ šôž<C3B4>û‰ªÂ<C2AA> ËGºÅb;êªçÚ—L©ŠCâÙzi |NŸ"fž'-éÝÞAL
p¢yXX(ÄãFy'¹J

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 81b89d46a32d53c4c9d5cea278dc83b6
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3bc22bb796bef1d45b8bf8685aa5e8a9
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -169,10 +169,10 @@ MonoBehaviour:
- difficultyIndex: 1
difficultyName: Hard
displayDifficultyName:
difficultyValue: 0
charterName:
difficultyValue: 12
charterName: MZLBE
color: {r: 1, g: 0.2, b: 0.2, a: 1}
isAvailable: 0
isAvailable: 1
- difficultyIndex: 2
difficultyName: Farewell
displayDifficultyName:
@@ -206,10 +206,10 @@ MonoBehaviour:
- difficultyIndex: 1
difficultyName: Hard
displayDifficultyName:
difficultyValue: 0
charterName:
difficultyValue: 8
charterName: Mr.FE
color: {r: 1, g: 0.2, b: 0.2, a: 1}
isAvailable: 0
isAvailable: 1
- difficultyIndex: 2
difficultyName: Moonbeam
displayDifficultyName:

View File

@@ -48,6 +48,11 @@ namespace Ichni.RhythmGame
}
}
private void LateUpdate()
{
if(trackPathSubmodule != null) trackPathSubmodule.refreshedThisFrame = false;
}
public override void AfterInitialize()
{
base.AfterInitialize();
@@ -56,6 +61,18 @@ namespace Ichni.RhythmGame
{
trackPathSubmodule.ClosePath();
}
if(trackRendererSubmodule != null)
{
//var path = trackPathSubmodule!.path;
trackRendererSubmodule.meshGenerator.autoUpdate = false;
/*path.ResampleTransform();
path.Subscribe(trackRendererSubmodule.meshGenerator);
path.EditorUpdateConnectedNodes();
path.RebuildImmediate(true, true);*/
//path.EditorAwake();
}
}

View File

@@ -17,6 +17,8 @@ namespace Ichni.RhythmGame
public Track.TrackSamplingType trackSamplingType;
public bool isClosed;
public bool refreshedThisFrame = false;
public bool isShowingDisplay;
public TrackPathSubmodule(Track track, Track.TrackSpaceType trackSpaceType,
@@ -79,16 +81,17 @@ namespace Ichni.RhythmGame
public override void Refresh()
{
if(refreshedThisFrame) return;
refreshedThisFrame = true;
SetTrackSpaceType((int)trackSpaceType);
SetUpSplineComputer(trackSpaceType, trackSamplingType);
foreach (var pathNode in pathNodeList)
{
SetPathNode(pathNode);
}
ClosePath();
path.Rebuild(true);
path.RebuildImmediate(true, true);
}
}

View File

@@ -3,6 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using Dreamteck.Splines;
using Ichni.RhythmGame.Beatmap;
using UniRx;
using Unity.VisualScripting;
using UnityEngine;
using Object = UnityEngine.Object;

View File

@@ -39,84 +39,6 @@ namespace Ichni
List<InputUnitSwipe> tapSwipeList = inputUnitSwipeList.Where(x => x.isFirst).ToList();
List<InputUnitSwipe> holdSwipeList = inputUnitSwipeList.Where(x => !x.isFirst).ToList();
foreach (InputUnitTap inputUnitTap in inputUnitTapList)
{
List<Tap> availableTaps = new List<Tap>();
foreach (Tap tap in checkingTapList)
{
if (tap.CheckJudgeAvailability(inputUnitTap))
{
availableTaps.Add(tap);
}
}
List<Hold> availableHolds = new List<Hold>();
foreach (Hold hold in checkingHoldList)
{
if (hold.CheckJudgeAvailability(inputUnitTap))
{
availableHolds.Add(hold);
}
}
bool haveTap = availableTaps.Count > 0;
bool haveHold = availableHolds.Count > 0;
if (haveHold && haveTap)
{
List<Hold> minHolds = GetAllMinNotes(availableHolds);
List<Tap> minTaps = GetAllMinNotes(availableTaps);
Hold closestHold = minHolds[0];
Tap closestTap = minTaps[0];
if (closestHold.exactJudgeTime < closestTap.exactJudgeTime)
{
if (minHolds.Count == 1)
{
minHolds[0].ExecuteStartJudge();
}
else
{
GetNearestNote(minHolds, inputUnitTap.inputPosition).ExecuteStartJudge();
}
}
else
{
if (minTaps.Count == 1)
{
minTaps[0].ExecuteStartJudge();
}
else
{
GetNearestNote(minTaps, inputUnitTap.inputPosition).ExecuteStartJudge();
}
}
}
else if (haveHold)
{
List<Hold> minHolds = GetAllMinNotes(availableHolds);
if (minHolds.Count == 1)
{
minHolds[0].ExecuteStartJudge();
}
else
{
GetNearestNote(minHolds, inputUnitTap.inputPosition).ExecuteStartJudge();
}
}
else if (haveTap)
{
List<Tap> minTaps = GetAllMinNotes(availableTaps);
if (minTaps.Count == 1)
{
minTaps[0].ExecuteStartJudge();
}
else
{
GetNearestNote(minTaps, inputUnitTap.inputPosition).ExecuteStartJudge();
}
}
}
foreach (InputUnitSwipe tapSwipe in tapSwipeList)
{
List<Flick> availableFlicks = new List<Flick>();
@@ -161,6 +83,121 @@ namespace Ichni
}
}
foreach (InputUnitTap inputUnitTap in inputUnitTapList)
{
List<Tap> availableTaps = new List<Tap>();
foreach (Tap tap in checkingTapList)
{
if (tap.CheckJudgeAvailability(inputUnitTap))
{
availableTaps.Add(tap);
}
}
List<Hold> availableHolds = new List<Hold>();
foreach (Hold hold in checkingHoldList)
{
if (hold.CheckJudgeAvailability(inputUnitTap))
{
availableHolds.Add(hold);
}
}
bool haveTap = availableTaps.Count > 0;
bool haveHold = availableHolds.Count > 0;
Flick closestFlick = null;
InputUnitSwipe assumedSwipe = new InputUnitSwipe(inputUnitTap.fingerId, inputUnitTap.inputPosition, true, true, Vector2.zero);
foreach (Flick flick in checkingFlickList)
{
if (flick.CheckJudgeAvailability(assumedSwipe))
{
if (closestFlick == null || flick.exactJudgeTime < closestFlick.exactJudgeTime)
{
closestFlick = flick;
}
}
}
if (haveHold && haveTap)
{
List<Hold> minHolds = GetAllMinNotes(availableHolds);
List<Tap> minTaps = GetAllMinNotes(availableTaps);
Hold closestHold = minHolds[0];
Tap closestTap = minTaps[0];
bool holdBlockedByFlick = false;
bool tapBlockedByFlick = false;
if (closestFlick != null)
{
if (closestFlick.exactJudgeTime < closestHold.exactJudgeTime)
{
holdBlockedByFlick = true;
}
if (closestFlick.exactJudgeTime < closestTap.exactJudgeTime)
{
tapBlockedByFlick = true;
}
}
if (!holdBlockedByFlick && closestHold.exactJudgeTime < closestTap.exactJudgeTime)
{
if (minHolds.Count == 1)
{
minHolds[0].ExecuteStartJudge();
}
else
{
GetNearestNote(minHolds, inputUnitTap.inputPosition).ExecuteStartJudge();
}
}
else if (!tapBlockedByFlick)
{
if (minTaps.Count == 1)
{
minTaps[0].ExecuteStartJudge();
}
else
{
GetNearestNote(minTaps, inputUnitTap.inputPosition).ExecuteStartJudge();
}
}
}
else if (haveHold)
{
List<Hold> minHolds = GetAllMinNotes(availableHolds);
bool holdBlockedByFlick = closestFlick != null && closestFlick.exactJudgeTime < minHolds[0].exactJudgeTime;
if (!holdBlockedByFlick)
{
if (minHolds.Count == 1)
{
minHolds[0].ExecuteStartJudge();
}
else
{
GetNearestNote(minHolds, inputUnitTap.inputPosition).ExecuteStartJudge();
}
}
}
else if (haveTap)
{
List<Tap> minTaps = GetAllMinNotes(availableTaps);
bool tapBlockedByFlick = closestFlick != null && closestFlick.exactJudgeTime < minTaps[0].exactJudgeTime;
if (!tapBlockedByFlick)
{
if (minTaps.Count == 1)
{
minTaps[0].ExecuteStartJudge();
}
else
{
GetNearestNote(minTaps, inputUnitTap.inputPosition).ExecuteStartJudge();
}
}
}
}
foreach (InputUnitTouch inputUnitTouch in inputUnitTouchList)
{
List<Stay> availableStays = new List<Stay>();

View File

@@ -44,7 +44,7 @@ Shader "Soullies/TrackShader"
Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha
ZTest LEqual
ZWrite Off
ZWrite [_ZWrite]
Offset 0 , 0
ColorMask RGBA
@@ -193,7 +193,7 @@ Shader "Soullies/TrackShader"
Blend SrcAlpha OneMinusSrcAlpha, One OneMinusSrcAlpha
ZTest LEqual
ZWrite Off
ZWrite [_ZWrite]
Offset 0 , 0
ColorMask RGBA
@@ -564,7 +564,7 @@ Shader "Soullies/TrackShader"
}
/*ASEBEGIN
Version=19501
Node;AmplifyShaderEditor.SamplerNode;6;-992,-272;Inherit;True;Property;_MainTexture;MainTexture;0;0;Create;True;0;0;0;False;0;False;-1;None;b48cbbfc5b4a8f243b7275d66a4961f7;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
Node;AmplifyShaderEditor.SamplerNode;6;-992,-272;Inherit;True;Property;_MainTexture;MainTexture;0;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
Node;AmplifyShaderEditor.BreakToComponentsNode;10;-672,-272;Inherit;False;COLOR;1;0;COLOR;0,0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15
Node;AmplifyShaderEditor.RangedFloatNode;75;-880,-480;Inherit;False;Property;_UseRedAsAlpha;UseRedAsAlpha;4;1;[Toggle];Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.Compare;74;-480,-496;Inherit;False;0;4;0;FLOAT;0;False;1;FLOAT;1;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT;0
@@ -577,10 +577,10 @@ Node;AmplifyShaderEditor.SimpleMultiplyOpNode;14;-16,-192;Inherit;False;2;2;0;CO
Node;AmplifyShaderEditor.Compare;88;256,0;Inherit;False;0;4;0;FLOAT;0;False;1;FLOAT;1;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;21;416,-144;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.RangedFloatNode;51;-992,-64;Inherit;False;Property;_ZWrite;ZWrite;3;1;[Toggle];Create;True;0;0;0;True;0;False;1;1;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;118;832,-160;Float;False;False;-1;2;ASEMaterialInspector;0;1;New Amplify Shader;cf964e524c8e69742b1d21fbe2ebcc4a;True;Sprite Unlit Forward;0;1;Sprite Unlit Forward;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;True;0;True;12;all;0;False;True;2;5;False;;10;False;;3;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;2;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=UniversalForward;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;118;832,-160;Float;False;False;-1;2;ASEMaterialInspector;0;1;New Amplify Shader;cf964e524c8e69742b1d21fbe2ebcc4a;True;Sprite Unlit Forward;0;1;Sprite Unlit Forward;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;True;0;True;12;all;0;False;True;2;5;False;;10;False;;3;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;2;True;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=UniversalForward;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;119;832,-160;Float;False;False;-1;2;ASEMaterialInspector;0;1;New Amplify Shader;cf964e524c8e69742b1d21fbe2ebcc4a;True;SceneSelectionPass;0;2;SceneSelectionPass;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;True;0;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=SceneSelectionPass;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;120;832,-160;Float;False;False;-1;2;ASEMaterialInspector;0;1;New Amplify Shader;cf964e524c8e69742b1d21fbe2ebcc4a;True;ScenePickingPass;0;3;ScenePickingPass;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;True;0;True;12;all;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Picking;False;False;0;Hidden/InternalErrorShader;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;117;608,-144;Float;False;True;-1;2;ASEMaterialInspector;0;15;Soullies/TrackShader;cf964e524c8e69742b1d21fbe2ebcc4a;True;Sprite Unlit;0;0;Sprite Unlit;4;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;True;0;True;12;all;0;False;True;2;5;False;;10;False;;3;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;2;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=Universal2D;False;False;0;Hidden/InternalErrorShader;0;0;Standard;3;Vertex Position;1;0;Debug Display;0;0;External Alpha;0;0;0;4;True;True;True;True;False;;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;117;608,-144;Float;False;True;-1;2;ASEMaterialInspector;0;15;Soullies/TrackShader;cf964e524c8e69742b1d21fbe2ebcc4a;True;Sprite Unlit;0;0;Sprite Unlit;4;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;3;RenderPipeline=UniversalPipeline;RenderType=Transparent=RenderType;Queue=Transparent=Queue=0;True;0;True;12;all;0;False;True;2;5;False;;10;False;;3;1;False;;10;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;True;True;2;True;_ZWrite;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=Universal2D;False;False;0;Hidden/InternalErrorShader;0;0;Standard;3;Vertex Position;1;0;Debug Display;0;0;External Alpha;0;0;0;4;True;True;True;True;False;;False;0
WireConnection;10;0;6;0
WireConnection;74;0;75;0
WireConnection;74;2;10;0
@@ -598,4 +598,4 @@ WireConnection;21;0;14;0
WireConnection;21;1;88;0
WireConnection;117;1;21;0
ASEEND*/
//CHKSM=D3EAFA73E676605688D2276ACED0FDE9B5D62424
//CHKSM=8DEFFB8C934FE2E4AE5B0C44F80993219B1BC6D1

View File

@@ -1,5 +1,5 @@
ManifestFileVersion: 0
CRC: 3595225844
CRC: 2390517000
AssetBundleManifest:
AssetBundleInfos:
Info_0:

View File

@@ -1,15 +1,15 @@
ManifestFileVersion: 0
CRC: 2249597766
CRC: 1523139742
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 2ba69d6515f13209e710909d6846be18
Hash: cd078157b2d84041bc257d5383173b07
TypeTreeHash:
serializedVersion: 2
Hash: 2fac9fa6ccd769aaec5cb21c4eae7330
Hash: f708a8f284dce7b5eb457597bce9300b
IncrementalBuildHash:
serializedVersion: 2
Hash: 2ba69d6515f13209e710909d6846be18
Hash: cd078157b2d84041bc257d5383173b07
HashAppended: 0
ClassTypes:
- Class: 1
@@ -50,6 +50,8 @@ ClassTypes:
Script: {fileID: 11500000, guid: 0def5156137c6d14082064fa7b5d5247, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 9a7a990728bad4e9ba201e72267e7eca, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 23b337068935c374fbb29aae9e944d7b, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
- Class: 114

View File

@@ -1,15 +1,15 @@
ManifestFileVersion: 0
CRC: 1225735764
CRC: 1338213537
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: d1aeae75c7506489cb922a113bd04ed5
Hash: e3e3c9de0b69a787ec8fc1d459d7197a
TypeTreeHash:
serializedVersion: 2
Hash: 44e0932c854fd38032b0ffaad72c6cbc
IncrementalBuildHash:
serializedVersion: 2
Hash: d1aeae75c7506489cb922a113bd04ed5
Hash: e3e3c9de0b69a787ec8fc1d459d7197a
HashAppended: 0
ClassTypes:
- Class: 1

View File

@@ -1,15 +1,15 @@
ManifestFileVersion: 0
CRC: 2394985873
CRC: 1347338007
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 1010c0ed6746a5afc3fad44431c04924
Hash: b937e2a98087c9e0ce663ee6949d2a43
TypeTreeHash:
serializedVersion: 2
Hash: 3472206654487b82c27a7fa108d66b8b
IncrementalBuildHash:
serializedVersion: 2
Hash: 1010c0ed6746a5afc3fad44431c04924
Hash: b937e2a98087c9e0ce663ee6949d2a43
HashAppended: 0
ClassTypes:
- Class: 1

View File

@@ -1,5 +1,5 @@
ManifestFileVersion: 0
CRC: 3526957379
CRC: 3422794678
AssetBundleManifest:
AssetBundleInfos:
Info_0:

View File

@@ -1,15 +1,15 @@
ManifestFileVersion: 0
CRC: 191812374
CRC: 1301441084
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 82cbc3d754f10257de1f408d6adaa676
Hash: 8f2c80b3577135c65be7a1e001967d86
TypeTreeHash:
serializedVersion: 2
Hash: 2fac9fa6ccd769aaec5cb21c4eae7330
Hash: 29a77041670e82941819ca75fd4187a4
IncrementalBuildHash:
serializedVersion: 2
Hash: 82cbc3d754f10257de1f408d6adaa676
Hash: 8f2c80b3577135c65be7a1e001967d86
HashAppended: 0
ClassTypes:
- Class: 1
@@ -42,6 +42,8 @@ ClassTypes:
Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: e90e53c61dbed234e90f7b745fc89ba1, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: d96a6c3ea7d28744aacc367115a71af5, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: b73aa7982dc9e4261b2ff45db0112d48, type: 3}
- Class: 114
@@ -68,6 +70,8 @@ ClassTypes:
Script: {fileID: 11500000, guid: f92b9b8f89de544adaa001ccfdf7eae4, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 344445a89b4f74a0e9a0a766903df87e, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 23b337068935c374fbb29aae9e944d7b, type: 3}
- Class: 115
Script: {instanceID: 0}
- Class: 212

View File

@@ -1,15 +1,15 @@
ManifestFileVersion: 0
CRC: 2683956028
CRC: 1346824209
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: 69862e7ccc66697f9100c39b1ad9f9d2
Hash: c013be4b20870a0ecb430cb25c9c408e
TypeTreeHash:
serializedVersion: 2
Hash: 44e0932c854fd38032b0ffaad72c6cbc
IncrementalBuildHash:
serializedVersion: 2
Hash: 69862e7ccc66697f9100c39b1ad9f9d2
Hash: c013be4b20870a0ecb430cb25c9c408e
HashAppended: 0
ClassTypes:
- Class: 1

View File

@@ -0,0 +1,142 @@
%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: PseudoShadow
m_Shader: {fileID: 4800000, guid: c021be98004cdbc488ba46d630d8c33b, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords: []
m_InvalidKeywords:
- USE_RIM
m_LightmapFlags: 4
m_EnableInstancingVariants: 1
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}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 5392668a037c8bf49b4479948ee1f3fd, 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
- _RimPower: 3
- _ShadowSmoothness: 0.74
- _ShadowStrength: 1
- _ShadowThreshold: 0.11
- _Smoothness: 0.5
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _SrcBlendAlpha: 1
- _Surface: 0
- _UseRim: 1
- _UseWorldLight: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 0.6698113, g: 0.609781, b: 0.609781, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _FakeLightDir: {r: 0.23, g: 0.24, b: 0.24, a: 0}
- _RimColor: {r: 1, g: 1, b: 1, a: 1}
- _ShadowColor: {r: 0.22961909, g: 0.22961909, b: 0.299, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
--- !u!114 &1391350818744910211
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

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7a6fc2b30c0629b4588a962feb20e76e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,104 @@
Shader "Custom/ImprovedPseudoShadow" {
Properties {
[Header(Base)]
_MainTex ("Texture", 2D) = "white" {}
_Color ("Main Color", Color) = (1,1,1,1)
[Header(Shadow)]
_ShadowColor ("Shadow Color", Color) = (0.2, 0.2, 0.3, 1) // 默认偏蓝的阴影
_ShadowThreshold ("Shadow Threshold", Range(-1,1)) = 0.0
_ShadowSmoothness ("Shadow Smoothness", Range(0,1)) = 0.1
[Header(Lighting Mode)]
_UseWorldLight ("Use Fixed World Light?", Range(0,1)) = 0
_FakeLightDir ("Fake Light Dir (XYZ)", Vector) = (0.5, 1, 0.5, 0) // 模拟从右上方来的光
}
SubShader {
Tags { "RenderType"="Transparent" }
LOD 100
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
// 开启 GPU Instancing 支持
#pragma multi_compile_instancing
#include "UnityCG.cginc"
struct appdata {
float4 vertex : POSITION;
float3 normal : NORMAL;
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID // Instancing ID
};
struct v2f {
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
float lightFactor : TEXCOORD1; // 传递光照因子
UNITY_VERTEX_INPUT_INSTANCE_ID // Instancing ID
};
sampler2D _MainTex;
float4 _MainTex_ST;
// 声明 Instancing 属性变量
UNITY_INSTANCING_BUFFER_START(Props)
UNITY_DEFINE_INSTANCED_PROP(fixed4, _Color)
UNITY_DEFINE_INSTANCED_PROP(fixed4, _ShadowColor)
UNITY_DEFINE_INSTANCED_PROP(float4, _FakeLightDir)
UNITY_DEFINE_INSTANCED_PROP(float, _ShadowThreshold)
UNITY_DEFINE_INSTANCED_PROP(float, _ShadowSmoothness)
UNITY_DEFINE_INSTANCED_PROP(float, _UseWorldLight)
UNITY_INSTANCING_BUFFER_END(Props)
v2f vert (appdata v) {
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(o, v);
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
float3 normalWorld = UnityObjectToWorldNormal(v.normal);
float3 lightDir;
float useWorldLight = UNITY_ACCESS_INSTANCED_PROP(Props, _UseWorldLight);
float3 fakeDir = normalize(UNITY_ACCESS_INSTANCED_PROP(Props, _FakeLightDir).xyz);
float3 viewDir = normalize(WorldSpaceViewDir(v.vertex));
// 用lerp实现分支
lightDir = normalize(lerp(viewDir, fakeDir, useWorldLight));
float dotProduct = dot(normalWorld, lightDir);
o.lightFactor = dotProduct;
return o;
}
fixed4 frag (v2f i) : SV_Target {
UNITY_SETUP_INSTANCE_ID(i);
// 获取属性
fixed4 mainColor = UNITY_ACCESS_INSTANCED_PROP(Props, _Color);
fixed4 shadowColor = UNITY_ACCESS_INSTANCED_PROP(Props, _ShadowColor);
float threshold = UNITY_ACCESS_INSTANCED_PROP(Props, _ShadowThreshold);
float smoothness = UNITY_ACCESS_INSTANCED_PROP(Props, _ShadowSmoothness);
fixed4 texCol = tex2D(_MainTex, i.uv) * mainColor;
// 改进2更平滑且可控的阈值计算 (Smoothstep)
// lightFactor 越大说明越直接面对光源
float lightIntensity = smoothstep(threshold, threshold + smoothness, i.lightFactor);
// 改进3基于光照强度的颜色插值 (Lerp)
// 0 (背光) -> ShadowColor
// 1 (受光) -> Texture Color
fixed3 finalRGB = lerp(shadowColor.rgb * texCol.rgb, texCol.rgb, lightIntensity);
return fixed4(finalRGB, texCol.a);
}
ENDCG
}
}
FallBack "VertexLit"
}

View File

@@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: c021be98004cdbc488ba46d630d8c33b
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 7526262760779641485}
- component: {fileID: 8960768024022624885}
- component: {fileID: 6324027245704733737}
- component: {fileID: 4483402955796276491}
- component: {fileID: 3704386079632660708}
m_Layer: 0
m_Name: Capsule
m_TagString: Untagged
@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
- {fileID: 2100000, guid: 7a6fc2b30c0629b4588a962feb20e76e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -84,7 +84,7 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &4483402955796276491
--- !u!114 &3704386079632660708
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -93,7 +93,7 @@ MonoBehaviour:
m_GameObject: {fileID: 4776931580326963019}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b73aa7982dc9e4261b2ff45db0112d48, type: 3}
m_Script: {fileID: 11500000, guid: 23b337068935c374fbb29aae9e944d7b, type: 3}
m_Name:
m_EditorClassIdentifier:
serializationData:
@@ -124,8 +124,12 @@ MonoBehaviour:
elementName:
tags: []
parentElement: {fileID: 0}
connectedTab: {fileID: 0}
childElementList: []
themeBundleName:
objectName:
isStatic: 0
shadowRenderer: {fileID: 6324027245704733737}
shadowThreshold: 0.2
shadowSmoothness: 0.5
useWorldLight: 0
fakeLightDir: {x: 0.5, y: 1, z: 0.5}

View File

@@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 8326979962366963383}
- component: {fileID: 5066471978068241793}
- component: {fileID: 4412636128543054888}
- component: {fileID: 4567346259325766961}
- component: {fileID: 3289815003423494910}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
- {fileID: 2100000, guid: 7a6fc2b30c0629b4588a962feb20e76e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -84,7 +84,7 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &4567346259325766961
--- !u!114 &3289815003423494910
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -93,7 +93,7 @@ MonoBehaviour:
m_GameObject: {fileID: 8979559337900216953}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b73aa7982dc9e4261b2ff45db0112d48, type: 3}
m_Script: {fileID: 11500000, guid: 23b337068935c374fbb29aae9e944d7b, type: 3}
m_Name:
m_EditorClassIdentifier:
serializationData:
@@ -124,8 +124,12 @@ MonoBehaviour:
elementName:
tags: []
parentElement: {fileID: 0}
connectedTab: {fileID: 0}
childElementList: []
themeBundleName:
objectName:
isStatic: 0
shadowRenderer: {fileID: 4412636128543054888}
shadowThreshold: 0.2
shadowSmoothness: 0.5
useWorldLight: 0
fakeLightDir: {x: 0.5, y: 1, z: 0.5}

View File

@@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 2900861413064581388}
- component: {fileID: 2026692739104920914}
- component: {fileID: 5197224235337463214}
- component: {fileID: 8321289235289763712}
- component: {fileID: 3515272920379503278}
m_Layer: 0
m_Name: Cylinder
m_TagString: Untagged
@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
- {fileID: 2100000, guid: 7a6fc2b30c0629b4588a962feb20e76e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -84,7 +84,7 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &8321289235289763712
--- !u!114 &3515272920379503278
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -93,7 +93,7 @@ MonoBehaviour:
m_GameObject: {fileID: 3921473257109109097}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b73aa7982dc9e4261b2ff45db0112d48, type: 3}
m_Script: {fileID: 11500000, guid: 23b337068935c374fbb29aae9e944d7b, type: 3}
m_Name:
m_EditorClassIdentifier:
serializationData:
@@ -124,8 +124,12 @@ MonoBehaviour:
elementName:
tags: []
parentElement: {fileID: 0}
connectedTab: {fileID: 0}
childElementList: []
themeBundleName:
objectName:
isStatic: 0
shadowRenderer: {fileID: 5197224235337463214}
shadowThreshold: 0.2
shadowSmoothness: 0.5
useWorldLight: 0
fakeLightDir: {x: 0.5, y: 1, z: 0.5}

View File

@@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 7354592236656138398}
- component: {fileID: 6487775561638814823}
- component: {fileID: 366093218188168963}
- component: {fileID: 3744871356660366508}
- component: {fileID: 4672126916262746676}
m_Layer: 0
m_Name: Plane
m_TagString: Untagged
@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
- {fileID: 2100000, guid: 7a6fc2b30c0629b4588a962feb20e76e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -84,7 +84,7 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &3744871356660366508
--- !u!114 &4672126916262746676
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -93,7 +93,7 @@ MonoBehaviour:
m_GameObject: {fileID: 1806162637330541972}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b73aa7982dc9e4261b2ff45db0112d48, type: 3}
m_Script: {fileID: 11500000, guid: 23b337068935c374fbb29aae9e944d7b, type: 3}
m_Name:
m_EditorClassIdentifier:
serializationData:
@@ -124,8 +124,12 @@ MonoBehaviour:
elementName:
tags: []
parentElement: {fileID: 0}
connectedTab: {fileID: 0}
childElementList: []
themeBundleName:
objectName:
isStatic: 0
shadowRenderer: {fileID: 366093218188168963}
shadowThreshold: 0.2
shadowSmoothness: 0.5
useWorldLight: 0
fakeLightDir: {x: 0.5, y: 1, z: 0.5}

View File

@@ -11,7 +11,7 @@ GameObject:
- component: {fileID: 1384644069406249078}
- component: {fileID: 7001667112651328718}
- component: {fileID: 6336689653934561026}
- component: {fileID: 8389141473485471111}
- component: {fileID: 6450138934524257130}
m_Layer: 0
m_Name: Sphere
m_TagString: Untagged
@@ -62,7 +62,7 @@ MeshRenderer:
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2}
- {fileID: 2100000, guid: 7a6fc2b30c0629b4588a962feb20e76e, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
@@ -84,7 +84,7 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!114 &8389141473485471111
--- !u!114 &6450138934524257130
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -93,7 +93,7 @@ MonoBehaviour:
m_GameObject: {fileID: 4338808605130404764}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b73aa7982dc9e4261b2ff45db0112d48, type: 3}
m_Script: {fileID: 11500000, guid: 23b337068935c374fbb29aae9e944d7b, type: 3}
m_Name:
m_EditorClassIdentifier:
serializationData:
@@ -124,8 +124,12 @@ MonoBehaviour:
elementName:
tags: []
parentElement: {fileID: 0}
connectedTab: {fileID: 0}
childElementList: []
themeBundleName:
objectName:
isStatic: 0
shadowRenderer: {fileID: 6336689653934561026}
shadowThreshold: 0.2
shadowSmoothness: 0.5
useWorldLight: 0
fakeLightDir: {x: 0.5, y: 1, z: 0.5}

View File

@@ -0,0 +1,90 @@
using System;
using UnityEngine;
using Ichni.RhythmGame;
using Ichni.RhythmGame.Beatmap;
using System.Collections.Generic;
using Beatmap;
namespace Ichni.RhythmGame
{
// 以EnvironmentObject为基底支持伪阴影shader参数刷新
public class BasicEnvironmentObject : EnvironmentObject
{
[Header("Pseudo Shadow Settings")]
public Renderer shadowRenderer; // 指向带有伪阴影shader的Renderer
[Range(-1, 1)] public float shadowThreshold = 0.2f;
[Range(0, 1)] public float shadowSmoothness = 0.5f;
public bool useWorldLight = false;
public Vector3 fakeLightDir = new Vector3(0.5f, 1, 0.5f);
public override bool haveEmission => true;
public static BasicEnvironmentObject GenerateElement(string elementName, Guid id, List<string> tags,
bool isFirstGenerated, string themeBundleName, string objectName, GameElement parentElement,
bool isStatic,
float shadowThreshold, float shadowSmoothness, bool useWorldLight, Vector3 fakeLightDir)
{
BasicEnvironmentObject basicEnvObj = EnvironmentObject.GenerateElement(elementName, id, tags,
isFirstGenerated, themeBundleName, objectName, parentElement, isStatic).GetComponent<BasicEnvironmentObject>();
basicEnvObj.shadowThreshold = shadowThreshold;
basicEnvObj.shadowSmoothness = shadowSmoothness;
basicEnvObj.useWorldLight = useWorldLight;
basicEnvObj.fakeLightDir = fakeLightDir;
return basicEnvObj;
}
public override void Refresh()
{
base.Refresh();
if (shadowRenderer == null || shadowRenderer.material == null) return;
var mat = shadowRenderer.material;
mat.SetColor("_Color", colorSubmodule.currentBaseColor);
mat.SetColor("_ShadowColor", colorSubmodule.currentEmissionColor);
mat.SetFloat("_ShadowThreshold", shadowThreshold);
mat.SetFloat("_ShadowSmoothness", shadowSmoothness);
mat.SetVector("_FakeLightDir", new Vector4(fakeLightDir.x, fakeLightDir.y, fakeLightDir.z, 0));
mat.SetFloat("_UseWorldLight", useWorldLight ? 1 : 0);
}
public override void SaveBM()
{
base.SaveBM();
matchedBM = new BasicEnvironmentObject_BM(elementName, elementGuid, tags, parentElement.matchedBM as GameElement_BM,
themeBundleName, objectName, isStatic,
shadowThreshold, shadowSmoothness, useWorldLight, fakeLightDir);
}
}
}
namespace Beatmap
{
public class BasicEnvironmentObject_BM : EnvironmentObject_BM
{
public float shadowThreshold;
public float shadowSmoothness;
public bool useWorldLight;
public Vector3 fakeLightDir;
public BasicEnvironmentObject_BM() { }
public BasicEnvironmentObject_BM(string elementName, Guid elementGuid, List<string> tags, GameElement_BM parentElement,
string themeBundleName, string objectName, bool isStatic,
float shadowThreshold, float shadowSmoothness, bool useWorldLight, Vector3 fakeLightDir)
: base(elementName, elementGuid, tags, parentElement, themeBundleName, objectName, isStatic)
{
this.shadowThreshold = shadowThreshold;
this.shadowSmoothness = shadowSmoothness;
this.useWorldLight = useWorldLight;
this.fakeLightDir = fakeLightDir;
}
public override void ExecuteBM()
{
matchedElement = BasicEnvironmentObject.GenerateElement(elementName, elementGuid, tags, false,
themeBundleName, objectName, GetElement(attachedElementGuid), isStatic,
shadowThreshold, shadowSmoothness, useWorldLight, fakeLightDir);
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 23b337068935c374fbb29aae9e944d7b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -71,8 +71,8 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
base.WhenStart();
trailRenderer.emitting = true;
trailRenderer.Clear();
headPoint.gameObject.SetActive(false);
headCircle.gameObject.SetActive(false);
//headPoint.gameObject.SetActive(false);
//headCircle.gameObject.SetActive(false);
}
public override void Refresh()
@@ -129,8 +129,8 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
enableHeadSequence.Join(headCircle.transform.DOScale(headSize, enableProcessTime).SetEase(Ease.OutQuad));
enableHeadSequence.OnStart(() =>
{
headPoint.gameObject.SetActive(true);
headCircle.gameObject.SetActive(true);
//headPoint.gameObject.SetActive(true);
//headCircle.gameObject.SetActive(true);
});
enableHeadSequence.Play();
}
@@ -145,8 +145,8 @@ namespace Ichni.RhythmGame.ThemeBundles.DepartureToMultiverse
disableHeadSequence.Join(headCircle.transform.DOScale(0, enableProcessTime).SetEase(Ease.OutQuad));
disableHeadSequence.OnComplete(() =>
{
headPoint.gameObject.SetActive(false);
headCircle.gameObject.SetActive(false);
//headPoint.gameObject.SetActive(false);
//headCircle.gameObject.SetActive(false);
});
disableHeadSequence.Play();
}

View File

@@ -19,286 +19,14 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 30
width: 1706.6667
height: 819.3334
width: 1706.6666
height: 819.3333
m_MinSize: {x: 300, y: 100}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 8959
controlID: 17109
draggingID: 0
--- !u!114 &2
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Game
m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 265.33334
y: 72.66667
width: 926.6666
height: 535
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_SerializedViewNames:
- UnityEditor.DeviceSimulation.SimulatorWindow
m_SerializedViewValues:
- D:\Projects\ichni Official\Library\PlayModeViewStates\fcf862737d27629438090c00190a3d53
m_PlayModeViewName: GameView
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
m_TargetSize: {x: 1920, y: 1080}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
m_EnterPlayModeBehavior: 0
m_UseMipMap: 0
m_VSyncEnabled: 0
m_Gizmos: 0
m_Stats: 0
m_SelectedSizes: 03000000000000000000000006000000000000000000000000000000000000000000000000000000
m_ZoomArea:
m_HRangeLocked: 0
m_VRangeLocked: 0
hZoomLockedByDefault: 0
vZoomLockedByDefault: 0
m_HBaseRangeMin: -640
m_HBaseRangeMax: 640
m_VBaseRangeMin: -360
m_VBaseRangeMax: 360
m_HAllowExceedBaseRangeMin: 1
m_HAllowExceedBaseRangeMax: 1
m_VAllowExceedBaseRangeMin: 1
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 0
m_EnableSliderZoomHorizontal: 0
m_EnableSliderZoomVertical: 0
m_UniformScale: 1
m_UpDirection: 1
m_DrawArea:
serializedVersion: 2
x: 0
y: 21
width: 926.6666
height: 514
m_Scale: {x: 0.7138889, y: 0.7138889}
m_Translation: {x: 463.3333, y: 257}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -649.0272
y: -360
width: 1298.0544
height: 720
m_MinimalGUI: 1
m_defaultScale: 0.7138889
m_LastWindowPixelSize: {x: 1390, y: 802.5}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 00000000000000000000
m_XRRenderMode: 0
m_RenderTexture: {fileID: 0}
m_showToolbar: 1
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 4}
- {fileID: 10}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1194
height: 819.3334
m_MinSize: {x: 200, y: 100}
m_MaxSize: {x: 16192, y: 16192}
vertical: 1
controlID: 8960
draggingID: 0
--- !u!114 &4
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 5}
- {fileID: 7}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1194
height: 556
m_MinSize: {x: 200, y: 50}
m_MaxSize: {x: 16192, y: 8096}
vertical: 0
controlID: 8961
draggingID: 0
--- !u!114 &5
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 265.33334
height: 556
m_MinSize: {x: 201, y: 221}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 6}
m_Panes:
- {fileID: 6}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Hierarchy
m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 0
y: 72.66667
width: 264.33334
height: 535
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 4248f2ff60b8f2ff6cbef2ffc043f3ffa40ef4ff0261f4ff56e6f4ff5450f5ff52bff5ffc4eaf5fff4aff6fff424f8ff0adaf8ff0edaf8ff14daf8ff1cdaf8ff12e4f8ff22cef9ff8c4bfbff2cc3fdffea06feffb0b1ffffb8b1ffffa2b7ffff62b9ffff66b9ffff6cb9ffff74b9ffffdcc2ffffaceeffff42f1fffff0fafffff4ffffff9a500100
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 5}
m_SearchString:
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
m_LockTracker:
m_IsLocked: 0
m_CurrentSortingName: TransformSorting
m_WindowGUID: 4c969a2b90040154d917609493e03593
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: GameView
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 265.33334
y: 0
width: 928.6666
height: 556
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 2}
m_Panes:
- {fileID: 8}
- {fileID: 9}
- {fileID: 2}
m_Selected: 2
m_LastSelected: 0
--- !u!114 &8
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -322,7 +50,7 @@ MonoBehaviour:
x: 265.33334
y: 72.66667
width: 926.6666
height: 535
height: 540.3333
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -720,9 +448,9 @@ MonoBehaviour:
m_PlayAudio: 0
m_AudioPlay: 0
m_Position:
m_Target: {x: 288.77197, y: -7.729402, z: -7.68663}
m_Target: {x: 13.102425, y: -33.58494, z: 413.31577}
speed: 2
m_Value: {x: 288.77197, y: -7.729402, z: -7.68663}
m_Value: {x: 13.102425, y: -33.58494, z: 413.31577}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
@@ -768,13 +496,13 @@ MonoBehaviour:
m_GridAxis: 1
m_gridOpacity: 0.5
m_Rotation:
m_Target: {x: -0.06900473, y: -0.927394, z: 0.21303548, w: -0.30020672}
m_Target: {x: -0.31153548, y: -0.01798, z: 0.0057953945, w: -0.9502247}
speed: 2
m_Value: {x: 0.06900473, y: 0.927394, z: -0.2130355, w: 0.30020672}
m_Value: {x: -0.31145713, y: -0.021777071, z: 0.0070402985, w: -0.9499846}
m_Size:
m_Target: 3.7162945
m_Target: 63.325985
speed: 2
m_Value: 3.7162945
m_Value: 63.325985
m_Ortho:
m_Target: 0
speed: 2
@@ -792,14 +520,184 @@ MonoBehaviour:
m_FarClip: 1000
m_DynamicClip: 1
m_OcclusionCulling: 0
m_LastSceneViewRotation: {x: -0.039927594, y: 0.94078374, z: -0.118977636, w: -0.31543952}
m_LastSceneViewRotation: {x: -0.06900473, y: -0.927394, z: 0.21303548, w: -0.30020672}
m_LastSceneViewOrtho: 0
m_ReplacementShader: {fileID: 0}
m_ReplacementString:
m_SceneVisActive: 1
m_LastLockedObject: {fileID: 0}
m_ViewIsLockedToObject: 0
--- !u!114 &9
--- !u!114 &3
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 4}
- {fileID: 10}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1194
height: 819.3333
m_MinSize: {x: 200, y: 100}
m_MaxSize: {x: 16192, y: 16192}
vertical: 1
controlID: 17110
draggingID: 0
--- !u!114 &4
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children:
- {fileID: 5}
- {fileID: 7}
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 1194
height: 561.3333
m_MinSize: {x: 200, y: 50}
m_MaxSize: {x: 16192, y: 8096}
vertical: 0
controlID: 17111
draggingID: 0
--- !u!114 &5
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 0
width: 265.33334
height: 561.3333
m_MinSize: {x: 201, y: 221}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 6}
m_Panes:
- {fileID: 6}
m_Selected: 0
m_LastSelected: 0
--- !u!114 &6
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Hierarchy
m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 0
y: 72.66667
width: 264.33334
height: 540.3333
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs: ccc1f8ff
m_LastClickedID: -474676
m_ExpandedIDs: 2ec2f8ff2ee3f8ff36e3f8ff542af9ffc640f9ff4a41f9ff6e4cf9ff6254f9ff7840faff4e61faff7861faff8061faffa0a8faff9eb9faffdec3fafffac8faff02c9faff6ed8faff74dafaff9edafaffa6dafaffc621fbff8286fbffd286fbff4a90fbff50f6fbffa0f6fbff1000fcffeef8feff3ef9feff4ef9feff56f9feffb602ffffc887ffffe48cffff728fffff7a8fffff0092ffff0892ffff9694ffff2c97ffff98a6ffff9ea8ffffc8a8ffffd0a8ffff28e6ffff78e6ffffe8efffffccfaffff
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 5}
m_SearchString:
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
m_LockTracker:
m_IsLocked: 0
m_CurrentSortingName: TransformSorting
m_WindowGUID: 4c969a2b90040154d917609493e03593
--- !u!114 &7
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: SceneView
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 265.33334
y: 0
width: 928.6666
height: 561.3333
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 2}
m_Panes:
- {fileID: 2}
- {fileID: 8}
- {fileID: 9}
m_Selected: 0
m_LastSelected: 2
--- !u!114 &8
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -823,7 +721,7 @@ MonoBehaviour:
x: 265.33334
y: 72.66667
width: 926.6666
height: 535
height: 540.3333
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -906,6 +804,108 @@ MonoBehaviour:
m_CurrentEditor: 0
m_LayerEditor:
m_SelectedLayerIndex: 0
--- !u!114 &9
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Game
m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 265.33334
y: 72.66667
width: 926.6666
height: 540.3333
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_SerializedViewNames:
- UnityEditor.DeviceSimulation.SimulatorWindow
m_SerializedViewValues:
- D:\Projects\ichni Official\Library\PlayModeViewStates\fcf862737d27629438090c00190a3d53
m_PlayModeViewName: GameView
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
m_TargetSize: {x: 1920, y: 1080}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
m_EnterPlayModeBehavior: 0
m_UseMipMap: 0
m_VSyncEnabled: 0
m_Gizmos: 0
m_Stats: 0
m_SelectedSizes: 03000000000000000000000006000000000000000000000000000000000000000000000000000000
m_ZoomArea:
m_HRangeLocked: 0
m_VRangeLocked: 0
hZoomLockedByDefault: 0
vZoomLockedByDefault: 0
m_HBaseRangeMin: -640
m_HBaseRangeMax: 640
m_VBaseRangeMin: -360
m_VBaseRangeMax: 360
m_HAllowExceedBaseRangeMin: 1
m_HAllowExceedBaseRangeMax: 1
m_VAllowExceedBaseRangeMin: 1
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 0
m_EnableSliderZoomHorizontal: 0
m_EnableSliderZoomVertical: 0
m_UniformScale: 1
m_UpDirection: 1
m_DrawArea:
serializedVersion: 2
x: 0
y: 21
width: 926.6666
height: 519.3333
m_Scale: {x: 0.72129625, y: 0.72129625}
m_Translation: {x: 463.3333, y: 259.66666}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -642.362
y: -360
width: 1284.724
height: 720
m_MinimalGUI: 1
m_defaultScale: 0.72129625
m_LastWindowPixelSize: {x: 1390, y: 810.5}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 00000000000000000000
m_XRRenderMode: 0
m_RenderTexture: {fileID: 0}
m_showToolbar: 1
--- !u!114 &10
MonoBehaviour:
m_ObjectHideFlags: 52
@@ -916,25 +916,25 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: ConsoleWindow
m_Name: ProjectBrowser
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 556
y: 561.3333
width: 1194
height: 263.33337
m_MinSize: {x: 101, y: 121}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 12}
height: 258
m_MinSize: {x: 231, y: 271}
m_MaxSize: {x: 10001, y: 10021}
m_ActualView: {fileID: 11}
m_Panes:
- {fileID: 11}
- {fileID: 12}
- {fileID: 13}
- {fileID: 14}
m_Selected: 1
m_LastSelected: 0
m_Selected: 0
m_LastSelected: 1
--- !u!114 &11
MonoBehaviour:
m_ObjectHideFlags: 52
@@ -957,9 +957,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 0
y: 628.6667
width: 1196.3334
height: 242.33331
y: 634
width: 1193
height: 237
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -981,7 +981,7 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/Scenes
- Assets/Scripts/Game/GameElements/Track/TrackSubmodules
m_Globs: []
m_OriginalText:
m_ImportLogFlags: 0
@@ -989,16 +989,16 @@ MonoBehaviour:
m_ViewMode: 1
m_StartGridSize: 96
m_LastFolders:
- Assets/Scenes
- Assets/Scripts/Game/GameElements/Track/TrackSubmodules
m_LastFoldersGridSize: 96
m_LastProjectPath: D:\Projects\ichni Official
m_LockTracker:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 517.6667}
m_SelectedIDs: a6a90000
m_LastClickedID: 43430
m_ExpandedIDs: 000000000aa900000ca900000ea9000010a9000012a9000014a9000016a9000018a900001aa900001ca900001ea9000020a9000022a9000024a9000026a900002aa900002ca900002ea9000030a9000032a9000034a9000036a9000038a900003aa900003ca900003ea9000042a9000000ca9a3b
scrollPos: {x: 0, y: 471}
m_SelectedIDs: eab80000
m_LastClickedID: 47338
m_ExpandedIDs: 0000000026a9000028a900002aa900002ca900002ea9000030a9000032a9000034a9000036a9000038a900003aa900003ca900003ea9000040a9000042a9000044a9000046a9000048a900004aa900004ca900004ea9000050a9000052a9000054a9000056a9000058a900005aa90000b4a90000cca9000006b9000014b9000000ca9a3b
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -1026,7 +1026,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 000000000aa900000ca900000ea9000010a9000012a9000014a9000016a9000018a900001aa900001ca900001ea9000020a9000022a9000024a9000026a900002aa900002ca900002ea9000030a9000032a9000034a9000036a9000038a900003aa900003ca900003ea9000042a9000000ca9a3b
m_ExpandedIDs: 0000000026a9000028a900002aa900002ca900002ea9000030a9000032a9000034a9000036a9000038a900003aa900003ca9000040a9000042a9000044a9000046a9000048a900004aa900004ca900004ea9000050a9000052a9000054a9000056a9000058a900005aa90000aea90000b0a90000cca9000006b9000000ca9a3b
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -1051,9 +1051,9 @@ MonoBehaviour:
m_Icon: {fileID: 0}
m_ResourceFile:
m_ListAreaState:
m_SelectedInstanceIDs:
m_LastClickedInstanceID: 0
m_HadKeyboardFocusLastEvent: 1
m_SelectedInstanceIDs: ccc1f8ff
m_LastClickedInstanceID: -474676
m_HadKeyboardFocusLastEvent: 0
m_ExpandedInstanceIDs: c6230000d2c101005ac60100bec80100b6c80100000000000cd901003ada010074b30100d4a10600f8a300000e8e00003e91000044900000e8920000c6d400005aa10000909600007ca300009a9d00004ab90000fa9e0000aaab00006ea6000014ab000022e0000028e0000064d20000
m_RenameOverlay:
m_UserAcceptedRename: 0
@@ -1104,9 +1104,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 0
y: 628.6667
y: 634
width: 1193
height: 242.33337
height: 237
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -1154,7 +1154,7 @@ MonoBehaviour:
m_OverlaysVisible: 1
m_LockTracker:
m_IsLocked: 0
m_LastSelectedObjectID: -660800
m_LastSelectedObjectID: -345886
--- !u!114 &14
MonoBehaviour:
m_ObjectHideFlags: 52
@@ -1228,10 +1228,10 @@ MonoBehaviour:
serializedVersion: 2
x: 1194
y: 0
width: 512.66675
height: 819.3334
m_MinSize: {x: 276, y: 71}
m_MaxSize: {x: 4001, y: 4021}
width: 512.6666
height: 819.3333
m_MinSize: {x: 275, y: 50}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 16}
m_Panes:
- {fileID: 16}
@@ -1263,8 +1263,8 @@ MonoBehaviour:
serializedVersion: 2
x: 1194
y: 72.66667
width: 511.66675
height: 798.3334
width: 511.66663
height: 798.3333
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -1278,7 +1278,7 @@ MonoBehaviour:
m_ObjectsLockedBeforeSerialization: []
m_InstanceIDsLockedBeforeSerialization:
m_PreviewResizer:
m_CachedPref: 181.66656
m_CachedPref: -181.66656
m_ControlHash: -371814159
m_PrefName: Preview_InspectorPreview
m_LastInspectedObjectInstanceID: -1

View File

@@ -19,7 +19,7 @@ MonoBehaviour:
width: 1706.6667
height: 869.3334
m_ShowMode: 4
m_Title: Inspector
m_Title: Project
m_RootView: {fileID: 2}
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
@@ -44,8 +44,8 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1706.6667
height: 869.3334
width: 1706.6666
height: 869.3333
m_MinSize: {x: 875, y: 300}
m_MaxSize: {x: 10000, y: 10000}
m_UseTopView: 1
@@ -69,7 +69,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1706.6667
width: 1706.6666
height: 30
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
@@ -90,8 +90,8 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 849.3334
width: 1706.6667
y: 849.3333
width: 1706.6666
height: 20
m_MinSize: {x: 0, y: 0}
m_MaxSize: {x: 0, y: 0}
@@ -114,12 +114,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 30
width: 1706.6667
height: 819.3334
width: 1706.6666
height: 819.3333
m_MinSize: {x: 300, y: 100}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 9260
controlID: 238
draggingID: 0
--- !u!114 &6
MonoBehaviour:
@@ -141,11 +141,11 @@ MonoBehaviour:
x: 0
y: 0
width: 1194
height: 819.3334
height: 819.3333
m_MinSize: {x: 200, y: 100}
m_MaxSize: {x: 16192, y: 16192}
vertical: 1
controlID: 9180
controlID: 275
draggingID: 0
--- !u!114 &7
MonoBehaviour:
@@ -167,11 +167,11 @@ MonoBehaviour:
x: 0
y: 0
width: 1194
height: 556
height: 561.3333
m_MinSize: {x: 200, y: 50}
m_MaxSize: {x: 16192, y: 8096}
vertical: 0
controlID: 9181
controlID: 179
draggingID: 0
--- !u!114 &8
MonoBehaviour:
@@ -191,7 +191,7 @@ MonoBehaviour:
x: 0
y: 0
width: 265.33334
height: 556
height: 561.3333
m_MinSize: {x: 201, y: 221}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 13}
@@ -209,7 +209,7 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: SceneView
m_Name: GameView
m_EditorClassIdentifier:
m_Children: []
m_Position:
@@ -217,16 +217,16 @@ MonoBehaviour:
x: 265.33334
y: 0
width: 928.6666
height: 556
height: 561.3333
m_MinSize: {x: 202, y: 221}
m_MaxSize: {x: 4002, y: 4021}
m_ActualView: {fileID: 14}
m_ActualView: {fileID: 15}
m_Panes:
- {fileID: 12}
- {fileID: 14}
- {fileID: 15}
- {fileID: 12}
m_Selected: 0
m_LastSelected: 2
m_Selected: 2
m_LastSelected: 0
--- !u!114 &10
MonoBehaviour:
m_ObjectHideFlags: 52
@@ -243,9 +243,9 @@ MonoBehaviour:
m_Position:
serializedVersion: 2
x: 0
y: 556
y: 561.3333
width: 1194
height: 263.33337
height: 258
m_MinSize: {x: 231, y: 271}
m_MaxSize: {x: 10001, y: 10021}
m_ActualView: {fileID: 16}
@@ -273,8 +273,8 @@ MonoBehaviour:
serializedVersion: 2
x: 1194
y: 0
width: 512.66675
height: 819.3334
width: 512.6666
height: 819.3333
m_MinSize: {x: 276, y: 71}
m_MaxSize: {x: 4001, y: 4021}
m_ActualView: {fileID: 20}
@@ -286,172 +286,6 @@ MonoBehaviour:
m_Selected: 0
m_LastSelected: 3
--- !u!114 &12
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Game
m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 265.33334
y: 72.66667
width: 926.6666
height: 535
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_SerializedViewNames:
- UnityEditor.DeviceSimulation.SimulatorWindow
m_SerializedViewValues:
- D:\Projects\ichni Official\Library\PlayModeViewStates\fcf862737d27629438090c00190a3d53
m_PlayModeViewName: GameView
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
m_TargetSize: {x: 1920, y: 1080}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
m_EnterPlayModeBehavior: 0
m_UseMipMap: 0
m_VSyncEnabled: 0
m_Gizmos: 0
m_Stats: 0
m_SelectedSizes: 03000000000000000000000006000000000000000000000000000000000000000000000000000000
m_ZoomArea:
m_HRangeLocked: 0
m_VRangeLocked: 0
hZoomLockedByDefault: 0
vZoomLockedByDefault: 0
m_HBaseRangeMin: -640
m_HBaseRangeMax: 640
m_VBaseRangeMin: -360
m_VBaseRangeMax: 360
m_HAllowExceedBaseRangeMin: 1
m_HAllowExceedBaseRangeMax: 1
m_VAllowExceedBaseRangeMin: 1
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 1
m_EnableSliderZoomHorizontal: 0
m_EnableSliderZoomVertical: 0
m_UniformScale: 1
m_UpDirection: 1
m_DrawArea:
serializedVersion: 2
x: 0
y: 21
width: 926.6666
height: 514
m_Scale: {x: 0.7138889, y: 0.7138889}
m_Translation: {x: 463.3333, y: 257}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -649.0272
y: -360
width: 1298.0544
height: 720
m_MinimalGUI: 1
m_defaultScale: 0.7138889
m_LastWindowPixelSize: {x: 1390, y: 802.5}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 00000000000000000000
m_XRRenderMode: 0
m_RenderTexture: {fileID: 0}
m_showToolbar: 1
--- !u!114 &13
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Hierarchy
m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 0
y: 72.66667
width: 264.33334
height: 535
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: c498f0ff7cddf0ff8e24f1ff52b9f1ff4248f2ff60b8f2ff6cbef2ffc043f3ffa40ef4ff0261f4ff56e6f4ff5450f5ff52bff5ffc4eaf5fff4aff6fff424f8ff0adaf8ff0edaf8ff14daf8ff1cdaf8ff12e4f8ff22cef9ff8c4bfbff2cc3fdffea06feffb0b1ffffb8b1ffffa2b7ffff62b9ffff66b9ffff6cb9ffff74b9ffffdcc2ffffaceeffff42f1fffff0fafffff4ffffff9a500100
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name: NoteMain
m_OriginalName: NoteMain
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 219028
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 0
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 8}
m_SearchString:
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
m_LockTracker:
m_IsLocked: 0
m_CurrentSortingName: TransformSorting
m_WindowGUID: 4c969a2b90040154d917609493e03593
--- !u!114 &14
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -475,7 +309,7 @@ MonoBehaviour:
x: 265.33334
y: 72.66667
width: 926.6666
height: 535
height: 540.3333
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -873,9 +707,9 @@ MonoBehaviour:
m_PlayAudio: 0
m_AudioPlay: 0
m_Position:
m_Target: {x: 288.77197, y: -7.729402, z: -7.68663}
m_Target: {x: 0.4319974, y: 2.307617, z: 478.2139}
speed: 2
m_Value: {x: 0, y: 0, z: 0}
m_Value: {x: 0.4319974, y: 2.307617, z: 478.2139}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
@@ -921,13 +755,13 @@ MonoBehaviour:
m_GridAxis: 1
m_gridOpacity: 0.5
m_Rotation:
m_Target: {x: -0.06900473, y: -0.927394, z: 0.21303548, w: -0.30020672}
m_Target: {x: 0.048798885, y: 0.0022965744, z: -0.000018332017, w: 0.9989788}
speed: 2
m_Value: {x: -0.044084605, y: 0.7801827, z: -0.05533693, w: -0.62153774}
m_Value: {x: 0.048790462, y: 0.0022961781, z: -0.000018328854, w: 0.99880636}
m_Size:
m_Target: 3.7162945
m_Target: 12.029685
speed: 2
m_Value: 1.1277905
m_Value: 12.029685
m_Ortho:
m_Target: 0
speed: 2
@@ -945,14 +779,78 @@ MonoBehaviour:
m_FarClip: 1000
m_DynamicClip: 1
m_OcclusionCulling: 0
m_LastSceneViewRotation: {x: -0.039927594, y: 0.94078374, z: -0.118977636, w: -0.31543952}
m_LastSceneViewRotation: {x: -0.06900473, y: -0.927394, z: 0.21303548, w: -0.30020672}
m_LastSceneViewOrtho: 0
m_ReplacementShader: {fileID: 0}
m_ReplacementString:
m_SceneVisActive: 1
m_LastLockedObject: {fileID: 0}
m_ViewIsLockedToObject: 0
--- !u!114 &15
--- !u!114 &13
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Hierarchy
m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 0
y: 72.66667
width: 264.33334
height: 540.3333
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_SceneHierarchy:
m_TreeViewState:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: d45effff585fffff0e6affff0272ffff3ceefffffcfaffff
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
m_OriginalName:
m_EditFieldRect:
serializedVersion: 2
x: 0
y: 0
width: 0
height: 0
m_UserData: 0
m_IsWaitingForDelay: 0
m_IsRenaming: 0
m_OriginalEventType: 11
m_IsRenamingFilename: 0
m_ClientGUIView: {fileID: 8}
m_SearchString:
m_ExpandedScenes: []
m_CurrenRootInstanceID: 0
m_LockTracker:
m_IsLocked: 0
m_CurrentSortingName: TransformSorting
m_WindowGUID: 4c969a2b90040154d917609493e03593
--- !u!114 &14
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
@@ -976,7 +874,7 @@ MonoBehaviour:
x: 265.33334
y: 72.66667
width: 926.6666
height: 535
height: 540.3333
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -1059,6 +957,108 @@ MonoBehaviour:
m_CurrentEditor: 0
m_LayerEditor:
m_SelectedLayerIndex: 0
--- !u!114 &15
MonoBehaviour:
m_ObjectHideFlags: 52
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier:
m_MinSize: {x: 200, y: 200}
m_MaxSize: {x: 4000, y: 4000}
m_TitleContent:
m_Text: Game
m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000,
type: 0}
m_Tooltip:
m_Pos:
serializedVersion: 2
x: 265.33334
y: 72.66667
width: 926.6666
height: 540.3333
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
m_SupportedDataModes:
isAutomatic: 1
m_ViewDataDictionary: {fileID: 0}
m_OverlayCanvas:
m_LastAppliedPresetName: Default
m_SaveData: []
m_OverlaysVisible: 1
m_SerializedViewNames:
- UnityEditor.DeviceSimulation.SimulatorWindow
m_SerializedViewValues:
- D:\Projects\ichni Official\Library\PlayModeViewStates\fcf862737d27629438090c00190a3d53
m_PlayModeViewName: GameView
m_ShowGizmos: 0
m_TargetDisplay: 0
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
m_TargetSize: {x: 1920, y: 1080}
m_TextureFilterMode: 0
m_TextureHideFlags: 61
m_RenderIMGUI: 1
m_EnterPlayModeBehavior: 0
m_UseMipMap: 0
m_VSyncEnabled: 0
m_Gizmos: 0
m_Stats: 0
m_SelectedSizes: 03000000000000000000000006000000000000000000000000000000000000000000000000000000
m_ZoomArea:
m_HRangeLocked: 0
m_VRangeLocked: 0
hZoomLockedByDefault: 0
vZoomLockedByDefault: 0
m_HBaseRangeMin: -640
m_HBaseRangeMax: 640
m_VBaseRangeMin: -360
m_VBaseRangeMax: 360
m_HAllowExceedBaseRangeMin: 1
m_HAllowExceedBaseRangeMax: 1
m_VAllowExceedBaseRangeMin: 1
m_VAllowExceedBaseRangeMax: 1
m_ScaleWithWindow: 0
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 1
m_EnableSliderZoomHorizontal: 0
m_EnableSliderZoomVertical: 0
m_UniformScale: 1
m_UpDirection: 1
m_DrawArea:
serializedVersion: 2
x: 0
y: 21
width: 926.6666
height: 519.3333
m_Scale: {x: 0.72129625, y: 0.72129625}
m_Translation: {x: 463.3333, y: 259.66666}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -642.362
y: -360
width: 1284.724
height: 720
m_MinimalGUI: 1
m_defaultScale: 0.72129625
m_LastWindowPixelSize: {x: 1390, y: 810.5}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 00000000000000000000
m_XRRenderMode: 0
m_RenderTexture: {fileID: 0}
m_showToolbar: 1
--- !u!114 &16
MonoBehaviour:
m_ObjectHideFlags: 52
@@ -1081,9 +1081,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 0
y: 628.6667
y: 634
width: 1193
height: 242.33337
height: 237
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -1105,7 +1105,7 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/ThemeBundles/DepartureToMultiverse/Prefabs
- Assets/Dreamteck
m_Globs: []
m_OriginalText:
m_ImportLogFlags: 0
@@ -1113,16 +1113,16 @@ MonoBehaviour:
m_ViewMode: 1
m_StartGridSize: 96
m_LastFolders:
- Assets/ThemeBundles/DepartureToMultiverse/Prefabs
- Assets/Dreamteck
m_LastFoldersGridSize: 96
m_LastProjectPath: D:\Projects\ichni Official
m_LockTracker:
m_IsLocked: 0
m_FolderTreeState:
scrollPos: {x: 0, y: 240}
m_SelectedIDs: d2a90000
m_LastClickedID: 43474
m_ExpandedIDs: 000000000aa900000ca900000ea9000010a9000012a9000014a9000016a9000018a900001aa900001ca900001ea9000020a9000022a9000024a9000026a900002aa900002ca900002ea9000030a9000032a9000034a9000036a9000038a900003aa900003ca90000d2a9000000ca9a3b
scrollPos: {x: 0, y: 0}
m_SelectedIDs: a0a90000
m_LastClickedID: 43424
m_ExpandedIDs: 000000002aa900002ca900002ea9000030a9000032a9000034a9000036a9000038a900003aa900003ca900003ea9000040a9000042a9000044a9000046a9000048a900004aa900004ca900004ea9000050a9000052a9000054a9000056a9000058a900005aa900005ca900005ea9000060a9000000ca9a3b
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -1150,7 +1150,7 @@ MonoBehaviour:
scrollPos: {x: 0, y: 0}
m_SelectedIDs:
m_LastClickedID: 0
m_ExpandedIDs: 000000000aa900000ca900000ea9000010a9000012a9000014a9000016a9000018a900001aa900001ca900001ea9000020a9000022a9000024a9000026a900002aa900002ca900002ea9000030a9000032a9000034a9000036a9000038a900003aa900003ca900003ea9000042a9000000ca9a3b
m_ExpandedIDs: 000000002aa900002ca900002ea9000030a9000032a9000034a9000036a9000038a900003aa900003ca900003ea9000040a9000042a9000044a9000046a9000048a900004aa900004ca900004ea9000050a9000052a9000054a9000056a9000058a900005aa900005ca900005ea9000060a90000
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
@@ -1228,9 +1228,9 @@ MonoBehaviour:
m_Pos:
serializedVersion: 2
x: 0
y: 628.6667
y: 634
width: 1193
height: 242.33337
height: 237
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -1278,7 +1278,7 @@ MonoBehaviour:
m_OverlaysVisible: 1
m_LockTracker:
m_IsLocked: 0
m_LastSelectedObjectID: -660800
m_LastSelectedObjectID: -474676
--- !u!114 &19
MonoBehaviour:
m_ObjectHideFlags: 52
@@ -1358,8 +1358,8 @@ MonoBehaviour:
serializedVersion: 2
x: 1194
y: 72.66667
width: 511.66675
height: 798.3334
width: 511.66663
height: 798.3333
m_SerializedDataModeController:
m_DataMode: 0
m_PreferredDataMode: 0
@@ -1373,7 +1373,7 @@ MonoBehaviour:
m_ObjectsLockedBeforeSerialization: []
m_InstanceIDsLockedBeforeSerialization:
m_PreviewResizer:
m_CachedPref: 181.66656
m_CachedPref: -181.66656
m_ControlHash: -371814159
m_PrefName: Preview_InspectorPreview
m_LastInspectedObjectInstanceID: -1