diff --git a/.claude/settings.json b/.claude/settings.json
new file mode 100644
index 000000000..6a9afe285
--- /dev/null
+++ b/.claude/settings.json
@@ -0,0 +1,7 @@
+{
+ "permissions": {
+ "allow": [
+ "Bash(ls -la \"c:\\\\Users\\\\ANSL\\\\Desktop\\\\BoatAttack\\\\Assets\\\\Scripts\"\" | findstr /E \"RL Connect Environment \")"
+ ]
+ }
+}
diff --git a/.claude/settings.local.json b/.claude/settings.local.json
new file mode 100644
index 000000000..27b02601a
--- /dev/null
+++ b/.claude/settings.local.json
@@ -0,0 +1,21 @@
+{
+ "permissions": {
+ "allow": [
+ "Bash(grep:*)",
+ "Bash(gh repo view:*)",
+ "WebFetch(domain:github.com)",
+ "mcp__context7__resolve-library-id",
+ "mcp__context7__query-docs",
+ "Bash(gh api:*)",
+ "Bash(where:*)",
+ "WebFetch(domain:api.github.com)",
+ "WebFetch(domain:raw.githubusercontent.com)",
+ "mcp__sequential-thinking__sequentialthinking",
+ "WebFetch(domain:www.figma.com)",
+ "Bash(find:*)",
+ "Bash(git push:*)",
+ "Bash(git ls-tree:*)",
+ "Bash(git rm:*)"
+ ]
+ }
+}
diff --git a/.gitignore b/.gitignore
index bb7ef21f8..f3d33a6c9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,16 +1,22 @@
-/[Ll]ibrary/
-/[Tt]emp/
-/[Oo]bj/
-/[Bb]uild/
-/[Bb]uilds/
-/Assets/AssetStoreTools*
-
-# Visual Studio 2015 cache directory
-/.vs/
-
-# Autogenerated VS/MD/Consulo solution and project files
-ExportedObj/
-.consulo/
+# === Unity 무시 항목 ===
+[Ll]ibrary/
+[Tt]emp/
+[Oo]bj/
+[Bb]uild/
+[Bb]uilds/
+[Ll]ogs/
+[Uu]ser[Ss]ettings/
+MemoryCaptures/
+Recordings/
+
+# === 에셋 메타 데이터 ===
+!/[Aa]ssets/**/*.meta
+
+# === IDE & OS 캐시 ===
+.vs/
+.vscode/
+.idea/
+.gradle/
*.csproj
*.unityproj
*.sln
@@ -22,27 +28,77 @@ ExportedObj/
*.booproj
*.svd
*.pdb
+*.mdb
+*.opendb
+*.VC.db
+.DS_Store
+.DS_Store?
+._*
+Thumbs.db
+ehthumbs.db
+Desktop.ini
-# Unity3D generated meta files
-*.pidb.meta
-
-# Unity3D Generated File On Crash Reports
-sysinfo.txt
-
-# Builds
+# === 빌드 파일 ===
*.apk
+*.aab
*.unitypackage
-Assets/_Ignore
-_Ignore.meta
-.idea
-Logs
-Assets/Plugins/Editor/JetBrains
-Assets/Plugins/Editor/JetBrains.meta
-Recordings
-Packages/com.unity.*
-MemoryCaptures
-Assets/BuildReports
-SerializedBuildInfo
-SwitchIL2CPP*
+*.app
+
+# === 파이썬 & 가상환경 (Freqtrade/ML-Agents 관련) ===
+venv/
+ENV/
+env/
+bin/
+lib/
+include/
+__pycache__/
+*.py[cod]
+*$py.class
+Assets/ML-Agents/Timers/*.json
+
+# === 내비메시 데이터 (협업 시 필요하면 주석 처리하세요) ===
+**/NavMesh-*.asset
+**/NavMesh-*.asset.meta
+
+# === 커스텀 무시 (임시 이미지 등) ===
+Assets/_Ignore/
Assets/ActualImages*
-Packages/packages-lock.json
+
+# === 외부 에셋 (에셋 스토어/패키지) ===
+Assets/UMO Assets/
+Assets/**/WarFX/
+Assets/**/War FX/
+Assets/JMO Assets/
+
+# === 임시/테스트 파일 ===
+Assets/New Material*.mat
+Assets/New Material*.mat.meta
+Assets/**/스크린샷*.png
+Assets/**/스크린샷*.png.meta
+Assets/**/스크린샷*.mat
+Assets/**/스크린샷*.mat.meta
+
+# === Unity 자동 생성 (Lighting, Bake 데이터) ===
+**/LightingData.asset
+**/LightingData.asset.meta
+**/Lightmap-*.exr
+**/Lightmap-*.exr.meta
+**/Lightmap-*.png
+**/Lightmap-*.png.meta
+**/ReflectionProbe-*.exr
+**/ReflectionProbe-*.exr.meta
+**/OcclusionCullingData.asset
+**/OcclusionCullingData.asset.meta
+
+# === 기타 대용량/캐시 파일 ===
+*.exr
+*.tga
+*.psd
+*.fbx
+*.FBX
+
+# 유령 파일 무시
+nul
+
+# Roonshot 프로젝트 (별도 레포)
+Roonshot/
\ No newline at end of file
diff --git a/ADD_AIRCRAFT_CARRIER.md b/ADD_AIRCRAFT_CARRIER.md
new file mode 100644
index 000000000..fb0ffdc8b
--- /dev/null
+++ b/ADD_AIRCRAFT_CARRIER.md
@@ -0,0 +1,317 @@
+# 항공모함(모선) 추가 가이드
+
+## 🎯 목표
+씬에 큰 항공모함 같은 구조물을 추가하여 방어 대상으로 사용
+
+---
+
+## 방법 1: 프리미티브로 간단하게 만들기 (가장 빠름)
+
+### 단계:
+
+1. **빈 GameObject 생성**
+ - Hierarchy 우클릭 > Create Empty
+ - 이름: "AircraftCarrier" 또는 "MotherShip"
+
+2. **프리미티브 조합으로 만들기**:
+
+ **선체 (Hull)**:
+ - Create > 3D Object > Cube
+ - 이름: "Hull"
+ - Scale: (50, 5, 15) - 길이, 높이, 너비
+ - Position: (0, 0, 0)
+ - Material: 회색 또는 적절한 색상
+
+ **갑판 (Deck)**:
+ - Create > 3D Object > Cube
+ - 이름: "Deck"
+ - Scale: (50, 0.5, 15)
+ - Position: (0, 2.5, 0) - 선체 위
+ - Material: 어두운 회색
+
+ **상부 구조물 (Superstructure)**:
+ - Create > 3D Object > Cube
+ - 이름: "Superstructure"
+ - Scale: (8, 10, 6)
+ - Position: (15, 5, 0) - 갑판 위, 한쪽 끝
+ - Material: 회색
+
+ **비행갑판 표시**:
+ - Create > 3D Object > Plane
+ - 이름: "FlightDeck"
+ - Scale: (50, 1, 15)
+ - Position: (0, 2.75, 0)
+ - Material: 어두운 회색 또는 노란색 줄무늬
+
+3. **모든 오브젝트를 AircraftCarrier의 자식으로**:
+ - Hull, Deck, Superstructure, FlightDeck을 드래그하여 AircraftCarrier 하위로
+
+4. **위치 배치**:
+ - AircraftCarrier의 Transform 조정
+ - Position: (0, 0, 0) 또는 원하는 위치
+ - 물 위에 떠있도록 Y 위치 조정
+
+5. **Collider 추가**:
+ - AircraftCarrier에 Box Collider 추가
+ - Size: (50, 5, 15)
+ - Is Trigger: false (충돌 감지용)
+
+---
+
+## 방법 2: 보트 프리팹을 스케일 업해서 사용
+
+### 단계:
+
+1. **보트 프리팹 복사**:
+ - `Assets/Objects/boats/_BoatBase.prefab` 선택
+ - Ctrl+D (Duplicate)
+ - 이름 변경: "AircraftCarrier"
+
+2. **스케일 조정**:
+ - Transform Scale: (5, 3, 5) 또는 원하는 크기
+ - 예: (10, 5, 10) - 매우 큰 크기
+
+3. **위치 조정**:
+ - Position: (0, 0, 0) 또는 중앙
+ - 물 위에 떠있도록 Y 위치 조정
+
+4. **컴포넌트 조정**:
+ - Rigidbody의 Mass 증가 (예: 100000)
+ - Is Kinematic: true (고정된 모선)
+ - 또는 부력 시스템 비활성화
+
+5. **씬에 배치**:
+ - 프리팹을 씬으로 드래그
+
+---
+
+## 방법 3: 스크립트로 자동 생성 (권장)
+
+### MotherShipGenerator.cs 생성:
+
+```csharp
+using UnityEngine;
+
+namespace BoatAttack
+{
+ ///
+ /// 항공모함(모선)을 자동으로 생성하는 헬퍼 스크립트
+ ///
+ public class MotherShipGenerator : MonoBehaviour
+ {
+ [Header("Size Settings")]
+ public float length = 50f;
+ public float width = 15f;
+ public float height = 5f;
+
+ [Header("Position")]
+ public Vector3 position = Vector3.zero;
+
+ [Header("Materials")]
+ public Material hullMaterial;
+ public Material deckMaterial;
+
+ [ContextMenu("Generate Aircraft Carrier")]
+ public void GenerateAircraftCarrier()
+ {
+ // 부모 오브젝트 생성
+ GameObject carrier = new GameObject("AircraftCarrier");
+ carrier.transform.position = position;
+
+ // 선체
+ GameObject hull = CreateCube("Hull", new Vector3(0, 0, 0),
+ new Vector3(length, height, width), hullMaterial);
+ hull.transform.SetParent(carrier.transform);
+
+ // 갑판
+ GameObject deck = CreateCube("Deck", new Vector3(0, height/2 + 0.25f, 0),
+ new Vector3(length, 0.5f, width), deckMaterial);
+ deck.transform.SetParent(carrier.transform);
+
+ // 상부 구조물
+ GameObject superstructure = CreateCube("Superstructure",
+ new Vector3(length * 0.3f, height/2 + 5f, 0),
+ new Vector3(8f, 10f, 6f), hullMaterial);
+ superstructure.transform.SetParent(carrier.transform);
+
+ // Collider 추가
+ BoxCollider collider = carrier.AddComponent();
+ collider.size = new Vector3(length, height, width);
+ collider.center = new Vector3(0, height/2, 0);
+
+ // Rigidbody 추가 (선택적)
+ Rigidbody rb = carrier.AddComponent();
+ rb.isKinematic = true; // 고정된 모선
+ rb.mass = 100000f;
+
+ Debug.Log("항공모함 생성 완료!");
+ }
+
+ private GameObject CreateCube(string name, Vector3 position, Vector3 scale, Material mat)
+ {
+ GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
+ cube.name = name;
+ cube.transform.localPosition = position;
+ cube.transform.localScale = scale;
+
+ if (mat != null)
+ {
+ cube.GetComponent().material = mat;
+ }
+
+ return cube;
+ }
+ }
+}
+```
+
+### 사용 방법:
+
+1. **빈 GameObject 생성**
+ - 이름: "CarrierGenerator"
+
+2. **MotherShipGenerator 스크립트 추가**
+
+3. **설정 조정** (Inspector):
+ - Length: 50
+ - Width: 15
+ - Height: 5
+ - Position: (0, 0, 0)
+
+4. **생성**:
+ - GameObject 우클릭 > "Generate Aircraft Carrier"
+ - 또는 Play 모드에서 자동 생성되도록 `Start()`에 추가
+
+---
+
+## 방법 4: Unity Asset Store에서 가져오기
+
+### 단계:
+
+1. **Asset Store 열기**: Window > Asset Store
+
+2. **검색**: "Aircraft Carrier" 또는 "Warship"
+
+3. **무료 에셋 다운로드**:
+ - "Military Ship" 등 검색
+ - 무료 에셋 선택
+ - Import
+
+4. **씬에 배치**:
+ - 다운로드한 프리팹을 씬으로 드래그
+ - 크기 및 위치 조정
+
+---
+
+## 방법 5: 간단한 Low-Poly 모델 만들기
+
+### Blender 또는 다른 3D 툴 사용:
+
+1. **기본 모델링**:
+ - 긴 박스 형태의 선체
+ - 평평한 갑판
+ - 상부 구조물
+
+2. **Export**:
+ - FBX 형식으로 내보내기
+
+3. **Unity에 Import**:
+ - Assets 폴더에 드래그
+ - Material 생성 및 할당
+
+4. **Prefab 생성**:
+ - 씬에 배치 후 Prefab으로 저장
+
+---
+
+## 🎨 디테일 추가 (선택사항)
+
+### 시각적 개선:
+
+1. **Material 추가**:
+ - 회색 메탈릭 재질
+ - 갑판용 어두운 재질
+ - 노란색 줄무늬 (비행갑판)
+
+2. **조명**:
+ - 항공모함 위에 Spot Light 추가
+ - 조명 효과
+
+3. **파티클 효과**:
+ - 배기 연기
+ - 물 보트 웨이크
+
+4. **디테일 오브젝트**:
+ - 안테나 (Cylinder)
+ - 함포 (Cylinder)
+ - 항공기 (간단한 프리미티브)
+
+---
+
+## ⚙️ 기능 추가
+
+### 체력 시스템 (나중에):
+
+```csharp
+public class MotherShip : MonoBehaviour
+{
+ public float maxHealth = 1000f;
+ private float currentHealth;
+
+ void Start()
+ {
+ currentHealth = maxHealth;
+ }
+
+ public void TakeDamage(float damage)
+ {
+ currentHealth -= damage;
+ if (currentHealth <= 0)
+ {
+ DestroyShip();
+ }
+ }
+
+ private void DestroyShip()
+ {
+ // 파괴 효과
+ Destroy(gameObject);
+ }
+}
+```
+
+### 충돌 감지:
+
+- Box Collider 추가
+- OnCollisionEnter로 충돌 감지
+- 보트와의 충돌 처리
+
+---
+
+## 📋 최종 체크리스트
+
+- [ ] 항공모함 오브젝트 생성됨
+- [ ] 물 위에 올바르게 배치됨
+- [ ] Collider 추가됨
+- [ ] 크기가 적절함 (보트보다 훨씬 큼)
+- [ ] 위치가 적절함 (중앙 또는 전략적 위치)
+- [ ] Material 적용됨
+- [ ] Rigidbody 설정됨 (Kinematic 권장)
+
+---
+
+## 💡 추천 방법
+
+**빠른 프로토타입**: 방법 1 (프리미티브)
+**자동화**: 방법 3 (스크립트)
+**최종 결과물**: 방법 4 (Asset Store) 또는 방법 5 (커스텀 모델)
+
+---
+
+## 🎯 다음 단계
+
+항공모함을 추가한 후:
+1. **체력 시스템** 추가
+2. **방어 시스템** 구현
+3. **보트 스폰 포인트** 설정
+4. **ML-Agents 타겟**으로 설정
diff --git a/Assets/AddressableAssetsData/AssetGroups/Utility.asset b/Assets/AddressableAssetsData/AssetGroups/Utility.asset
index 471de8a7e..d9985a343 100644
--- a/Assets/AddressableAssetsData/AssetGroups/Utility.asset
+++ b/Assets/AddressableAssetsData/AssetGroups/Utility.asset
@@ -21,14 +21,17 @@ MonoBehaviour:
m_Address: camera
m_ReadOnly: 0
m_SerializedLabels: []
+ FlaggedDuringContentUpdateRestriction: 0
- m_GUID: 5b930c10a697b4d8c9c8084e03800523
m_Address: checkpoint
m_ReadOnly: 0
m_SerializedLabels: []
+ FlaggedDuringContentUpdateRestriction: 0
- m_GUID: dd76f393b89c7c043a07be4d99495f5d
m_Address: Assets/Objects/environment/Clouds/Shader Graphs_Clouds.mat
m_ReadOnly: 0
m_SerializedLabels: []
+ FlaggedDuringContentUpdateRestriction: 0
m_ReadOnly: 0
m_Settings: {fileID: 11400000, guid: 46fc3d082b08c4dacacae72d7016c235, type: 2}
m_SchemaSet:
diff --git a/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset b/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset
new file mode 100644
index 000000000..588fc4c9a
--- /dev/null
+++ b/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset
@@ -0,0 +1,34 @@
+%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: 7e3976da977cb49238499ea3b4c237ae, type: 3}
+ m_Name: ProfileDataSourceSettings
+ m_EditorClassIdentifier:
+ profileGroupTypes:
+ - m_GroupTypePrefix: Built-In
+ m_Variables:
+ - m_Suffix: BuildPath
+ m_Value: '[UnityEngine.AddressableAssets.Addressables.BuildPath]/[BuildTarget]'
+ - m_Suffix: LoadPath
+ m_Value: '{UnityEngine.AddressableAssets.Addressables.RuntimePath}/[BuildTarget]'
+ - m_GroupTypePrefix: Editor Hosted
+ m_Variables:
+ - m_Suffix: BuildPath
+ m_Value: ServerData/[BuildTarget]
+ - m_Suffix: LoadPath
+ m_Value: http://[PrivateIpAddress]:[HostingServicePort]
+ environments: []
+ currentEnvironment:
+ id:
+ projectId:
+ projectGenesisId:
+ name:
+ isDefault: 0
diff --git a/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset.meta b/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset.meta
new file mode 100644
index 000000000..944cd8844
--- /dev/null
+++ b/Assets/AddressableAssetsData/ProfileDataSourceSettings.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9a6e3f0cd182bd648b8913fae8323c38
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/NavMeshComponents.meta b/Assets/AddressableAssetsData/Windows.meta
similarity index 77%
rename from Assets/NavMeshComponents.meta
rename to Assets/AddressableAssetsData/Windows.meta
index c18692625..6b19096c9 100644
--- a/Assets/NavMeshComponents.meta
+++ b/Assets/AddressableAssetsData/Windows.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 7ba59ca44540c45eea584dbe9a47c28a
+guid: d936abcddcf83c343b6068cac3765144
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Assets/AddressableAssetsData/Windows/addressables_content_state.bin b/Assets/AddressableAssetsData/Windows/addressables_content_state.bin
new file mode 100644
index 000000000..0a3440636
Binary files /dev/null and b/Assets/AddressableAssetsData/Windows/addressables_content_state.bin differ
diff --git a/Assets/scenes/static_Island.unity.meta b/Assets/AddressableAssetsData/Windows/addressables_content_state.bin.meta
similarity index 74%
rename from Assets/scenes/static_Island.unity.meta
rename to Assets/AddressableAssetsData/Windows/addressables_content_state.bin.meta
index 7d68420cd..f035c6207 100644
--- a/Assets/scenes/static_Island.unity.meta
+++ b/Assets/AddressableAssetsData/Windows/addressables_content_state.bin.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 353dc5681a8164b409650e1b2f813968
+guid: 278e5963ad6d0e64980a75147e75dd8c
DefaultImporter:
externalObjects: {}
userData:
diff --git a/Assets/Audio/Music/Hiroyuki_Sawano_-_Vogel_im_Kafig_OST_Shingeki_no_Kyojin_(mp3.pm).mp3 b/Assets/Audio/Music/Hiroyuki_Sawano_-_Vogel_im_Kafig_OST_Shingeki_no_Kyojin_(mp3.pm).mp3
new file mode 100644
index 000000000..65d74fb79
Binary files /dev/null and b/Assets/Audio/Music/Hiroyuki_Sawano_-_Vogel_im_Kafig_OST_Shingeki_no_Kyojin_(mp3.pm).mp3 differ
diff --git a/Assets/Audio/Music/Hiroyuki_Sawano_-_Vogel_im_Kafig_OST_Shingeki_no_Kyojin_(mp3.pm).mp3.meta b/Assets/Audio/Music/Hiroyuki_Sawano_-_Vogel_im_Kafig_OST_Shingeki_no_Kyojin_(mp3.pm).mp3.meta
new file mode 100644
index 000000000..ed6b018d5
--- /dev/null
+++ b/Assets/Audio/Music/Hiroyuki_Sawano_-_Vogel_im_Kafig_OST_Shingeki_no_Kyojin_(mp3.pm).mp3.meta
@@ -0,0 +1,23 @@
+fileFormatVersion: 2
+guid: 888b0d97d31a414499a693638d8d818d
+AudioImporter:
+ externalObjects: {}
+ serializedVersion: 7
+ defaultSettings:
+ serializedVersion: 2
+ loadType: 2
+ sampleRateSetting: 0
+ sampleRateOverride: 44100
+ compressionFormat: 1
+ quality: 1
+ conversionMode: 0
+ preloadAudioData: 0
+ platformSettingOverrides: {}
+ forceToMono: 0
+ normalize: 1
+ loadInBackground: 0
+ ambisonic: 0
+ 3D: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Audio/Music/MainTrack.wav.meta b/Assets/Audio/Music/MainTrack.wav.meta
index 7d237d370..ac63938b3 100644
--- a/Assets/Audio/Music/MainTrack.wav.meta
+++ b/Assets/Audio/Music/MainTrack.wav.meta
@@ -2,25 +2,28 @@ fileFormatVersion: 2
guid: 643024a49360c40c0a27365c40d4d58d
AudioImporter:
externalObjects: {}
- serializedVersion: 6
+ serializedVersion: 7
defaultSettings:
+ serializedVersion: 2
loadType: 2
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
+ preloadAudioData: 1
platformSettingOverrides:
4:
+ serializedVersion: 2
loadType: 2
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 3
quality: 1
conversionMode: 0
+ preloadAudioData: 0
forceToMono: 0
normalize: 1
- preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
diff --git a/Assets/Audio/Music/You_See_Big_Girl_-_Hiroyuki_Sawano_(mp3.pm).mp3 b/Assets/Audio/Music/You_See_Big_Girl_-_Hiroyuki_Sawano_(mp3.pm).mp3
new file mode 100644
index 000000000..44f48adf1
Binary files /dev/null and b/Assets/Audio/Music/You_See_Big_Girl_-_Hiroyuki_Sawano_(mp3.pm).mp3 differ
diff --git a/Assets/Audio/Music/You_See_Big_Girl_-_Hiroyuki_Sawano_(mp3.pm).mp3.meta b/Assets/Audio/Music/You_See_Big_Girl_-_Hiroyuki_Sawano_(mp3.pm).mp3.meta
new file mode 100644
index 000000000..cbbb8c165
--- /dev/null
+++ b/Assets/Audio/Music/You_See_Big_Girl_-_Hiroyuki_Sawano_(mp3.pm).mp3.meta
@@ -0,0 +1,23 @@
+fileFormatVersion: 2
+guid: b0dea67667cee9e408dcec70a9844bd8
+AudioImporter:
+ externalObjects: {}
+ serializedVersion: 7
+ defaultSettings:
+ serializedVersion: 2
+ loadType: 0
+ sampleRateSetting: 0
+ sampleRateOverride: 44100
+ compressionFormat: 1
+ quality: 1
+ conversionMode: 0
+ preloadAudioData: 0
+ platformSettingOverrides: {}
+ forceToMono: 0
+ normalize: 1
+ loadInBackground: 0
+ ambisonic: 0
+ 3D: 1
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Data/UniversalRP/BoatDemoRenderer.asset b/Assets/Data/UniversalRP/BoatDemoRenderer.asset
index 9251fba6f..d347a9633 100644
--- a/Assets/Data/UniversalRP/BoatDemoRenderer.asset
+++ b/Assets/Data/UniversalRP/BoatDemoRenderer.asset
@@ -24,6 +24,9 @@ MonoBehaviour:
PassNames: []
overrideMaterial: {fileID: 0}
overrideMaterialPassIndex: 0
+ overrideShader: {fileID: 0}
+ overrideShaderPassIndex: 0
+ overrideMode: 1
overrideDepthState: 1
depthCompareFunction: 4
enableWrite: 0
@@ -52,15 +55,28 @@ MonoBehaviour:
m_Name: SSAO
m_EditorClassIdentifier:
m_Active: 0
- m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3}
m_Settings:
+ AOMethod: 1
Downsample: 0
+ AfterOpaque: 0
Source: 0
NormalSamples: 1
Intensity: 0.5
DirectLightingStrength: 0.25
Radius: 4.2
- SampleCount: 6
+ Samples: 2
+ BlurQuality: 0
+ Falloff: 100
+ SampleCount: -1
+ m_BlueNoise256Textures:
+ - {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3}
+ - {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3}
+ - {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3}
+ - {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3}
+ - {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3}
+ - {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3}
+ - {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3}
+ m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3}
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -73,12 +89,17 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
m_Name: BoatDemoRenderer
m_EditorClassIdentifier:
+ debugShaders:
+ debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
+ type: 3}
+ hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
m_RendererFeatures:
- {fileID: 5126615458422300752}
- {fileID: -8193634041390225171}
- {fileID: -509393295192694670}
- {fileID: 770174969183694509}
m_RendererFeatureMap: 50a049f398652547ed286347405d4a8e72e012357f45eef8ad6e17cd0d36b00a
+ m_UseNativeRenderPass: 0
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
shaders:
@@ -87,11 +108,27 @@ MonoBehaviour:
screenSpaceShadowPS: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd,
type: 3}
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
- tileDepthInfoPS: {fileID: 0}
- tileDeferredPS: {fileID: 0}
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
+ fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
+ coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
+ coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b,
+ type: 3}
+ blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
+ cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf,
+ type: 3}
+ objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486,
+ type: 3}
+ dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92,
+ type: 3}
+ terrainDetailLitPS: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144,
+ type: 3}
+ terrainDetailGrassPS: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1,
+ type: 3}
+ terrainDetailGrassBillboardPS: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90,
+ type: 3}
+ m_AssetVersion: 2
m_OpaqueLayerMask:
serializedVersion: 2
m_Bits: 2147614263
@@ -107,7 +144,10 @@ MonoBehaviour:
zFailOperation: 0
m_ShadowTransparentReceive: 1
m_RenderingMode: 0
+ m_DepthPrimingMode: 0
+ m_CopyDepthMode: 0
m_AccurateGbufferNormals: 0
+ m_IntermediateTextureMode: 1
--- !u!114 &770174969183694509
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -125,7 +165,7 @@ MonoBehaviour:
causticScale: 0.1
causticBlendDistance: 3.36
debug: 0
- causticShader: {fileID: 4800000, guid: 90939d2e4b62841d29c136c866715501, type: 3}
+ causticShader: {fileID: 0}
causticTexture: {fileID: 2800000, guid: f395b7d64f44848c6a3cba1f1173fe90, type: 3}
--- !u!114 &1203680893676135655
MonoBehaviour:
diff --git a/Assets/Data/UniversalRP/PipelineAsset_High.asset b/Assets/Data/UniversalRP/PipelineAsset_High.asset
index e7a570fac..57f30442b 100644
--- a/Assets/Data/UniversalRP/PipelineAsset_High.asset
+++ b/Assets/Data/UniversalRP/PipelineAsset_High.asset
@@ -12,8 +12,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
m_Name: PipelineAsset_High
m_EditorClassIdentifier:
- k_AssetVersion: 6
- k_AssetPreviousVersion: 5
+ k_AssetVersion: 11
+ k_AssetPreviousVersion: 11
m_RendererType: 0
m_RendererData: {fileID: 0}
m_RendererDataList:
@@ -25,8 +25,15 @@ MonoBehaviour:
m_OpaqueDownsampling: 0
m_SupportsTerrainHoles: 0
m_SupportsHDR: 1
+ m_HDRColorBufferPrecision: 0
m_MSAA: 2
m_RenderScale: 1
+ m_UpscalingFilter: 0
+ m_FsrOverrideSharpness: 0
+ m_FsrSharpness: 0.92
+ m_EnableLODCrossFade: 1
+ m_LODCrossFadeDitheringType: 1
+ m_ShEvalMode: 0
m_MainLightRenderingMode: 1
m_MainLightShadowsSupported: 1
m_MainLightShadowmapResolution: 4096
@@ -34,25 +41,75 @@ MonoBehaviour:
m_AdditionalLightsPerObjectLimit: 8
m_AdditionalLightShadowsSupported: 1
m_AdditionalLightsShadowmapResolution: 2048
+ m_AdditionalLightsShadowResolutionTierLow: 512
+ m_AdditionalLightsShadowResolutionTierMedium: 1024
+ m_AdditionalLightsShadowResolutionTierHigh: 2048
+ m_ReflectionProbeBlending: 0
+ m_ReflectionProbeBoxProjection: 0
m_ShadowDistance: 250
m_ShadowCascadeCount: 4
m_Cascade2Split: 0.20930393
m_Cascade3Split: {x: 0.1, y: 0.3}
m_Cascade4Split: {x: 0.053413056, y: 0.13206536, z: 0.42623913}
+ m_CascadeBorder: 0.1
m_ShadowDepthBias: 0.75
m_ShadowNormalBias: 0.75
+ m_AnyShadowsSupported: 1
m_SoftShadowsSupported: 1
+ m_ConservativeEnclosingSphere: 0
+ 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_EnableRenderGraph: 0
m_UseAdaptivePerformance: 1
m_ColorGradingMode: 0
m_ColorGradingLutSize: 32
+ m_UseFastSRGBLinearConversion: 0
+ m_SupportDataDrivenLensFlare: 1
m_ShadowType: 1
m_LocalShadowsSupported: 0
m_LocalShadowsAtlasResolution: 256
m_MaxPixelLights: 0
m_ShadowAtlasResolution: 256
+ m_VolumeFrameworkUpdateMode: 0
+ m_Textures:
+ blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
+ bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
+ m_PrefilteringModeMainLightShadows: 3
+ m_PrefilteringModeAdditionalLight: 3
+ m_PrefilteringModeAdditionalLightShadows: 2
+ m_PrefilterXRKeywords: 1
+ m_PrefilteringModeForwardPlus: 0
+ m_PrefilteringModeDeferredRendering: 0
+ m_PrefilteringModeScreenSpaceOcclusion: 0
+ m_PrefilterDebugKeywords: 1
+ m_PrefilterWriteRenderingLayers: 1
+ m_PrefilterHDROutput: 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_PrefilterNativeRenderPass: 1
m_ShaderVariantLogLevel: 0
m_ShadowCascades: 2
diff --git a/Assets/Data/UniversalRP/PipelineAsset_Low.asset b/Assets/Data/UniversalRP/PipelineAsset_Low.asset
index 979ce1416..ffa9d0668 100644
--- a/Assets/Data/UniversalRP/PipelineAsset_Low.asset
+++ b/Assets/Data/UniversalRP/PipelineAsset_Low.asset
@@ -12,8 +12,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
m_Name: PipelineAsset_Low
m_EditorClassIdentifier:
- k_AssetVersion: 6
- k_AssetPreviousVersion: 5
+ k_AssetVersion: 11
+ k_AssetPreviousVersion: 11
m_RendererType: 0
m_RendererData: {fileID: 0}
m_RendererDataList:
@@ -25,8 +25,15 @@ MonoBehaviour:
m_OpaqueDownsampling: 1
m_SupportsTerrainHoles: 0
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_MainLightRenderingMode: 1
m_MainLightShadowsSupported: 1
m_MainLightShadowmapResolution: 1024
@@ -34,26 +41,75 @@ MonoBehaviour:
m_AdditionalLightsPerObjectLimit: 1
m_AdditionalLightShadowsSupported: 0
m_AdditionalLightsShadowmapResolution: 512
+ m_AdditionalLightsShadowResolutionTierLow: 128
+ m_AdditionalLightsShadowResolutionTierMedium: 256
+ m_AdditionalLightsShadowResolutionTierHigh: 512
+ m_ReflectionProbeBlending: 0
+ m_ReflectionProbeBoxProjection: 0
m_ShadowDistance: 150
m_ShadowCascadeCount: 1
m_Cascade2Split: 0.20930393
m_Cascade3Split: {x: 0.1, y: 0.3}
m_Cascade4Split: {x: 0.053413056, y: 0.13206536, z: 0.42623913}
+ m_CascadeBorder: 0.1
m_ShadowDepthBias: 0.75
m_ShadowNormalBias: 0.75
+ m_AnyShadowsSupported: 1
m_SoftShadowsSupported: 1
+ m_ConservativeEnclosingSphere: 0
+ 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_EnableRenderGraph: 0
m_UseAdaptivePerformance: 1
m_ColorGradingMode: 0
m_ColorGradingLutSize: 16
+ m_UseFastSRGBLinearConversion: 0
+ m_SupportDataDrivenLensFlare: 1
m_ShadowType: 1
m_LocalShadowsSupported: 0
m_LocalShadowsAtlasResolution: 256
m_MaxPixelLights: 0
m_ShadowAtlasResolution: 256
- m_ShaderVariantLogLevel: 0
m_VolumeFrameworkUpdateMode: 0
+ m_Textures:
+ blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
+ bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
+ 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_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_PrefilterNativeRenderPass: 1
+ m_ShaderVariantLogLevel: 0
m_ShadowCascades: 0
diff --git a/Assets/Data/UniversalRP/PipelineAsset_Medium.asset b/Assets/Data/UniversalRP/PipelineAsset_Medium.asset
index 884c6f4eb..76726cf7c 100644
--- a/Assets/Data/UniversalRP/PipelineAsset_Medium.asset
+++ b/Assets/Data/UniversalRP/PipelineAsset_Medium.asset
@@ -12,8 +12,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3}
m_Name: PipelineAsset_Medium
m_EditorClassIdentifier:
- k_AssetVersion: 6
- k_AssetPreviousVersion: 5
+ k_AssetVersion: 11
+ k_AssetPreviousVersion: 11
m_RendererType: 0
m_RendererData: {fileID: 0}
m_RendererDataList:
@@ -25,8 +25,15 @@ MonoBehaviour:
m_OpaqueDownsampling: 1
m_SupportsTerrainHoles: 0
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_MainLightRenderingMode: 1
m_MainLightShadowsSupported: 1
m_MainLightShadowmapResolution: 2048
@@ -34,26 +41,75 @@ MonoBehaviour:
m_AdditionalLightsPerObjectLimit: 8
m_AdditionalLightShadowsSupported: 1
m_AdditionalLightsShadowmapResolution: 1024
+ m_AdditionalLightsShadowResolutionTierLow: 256
+ m_AdditionalLightsShadowResolutionTierMedium: 512
+ m_AdditionalLightsShadowResolutionTierHigh: 1024
+ m_ReflectionProbeBlending: 0
+ m_ReflectionProbeBoxProjection: 0
m_ShadowDistance: 200
m_ShadowCascadeCount: 2
m_Cascade2Split: 0.20930393
m_Cascade3Split: {x: 0.1, y: 0.3}
m_Cascade4Split: {x: 0.053413056, y: 0.13206536, z: 0.42623913}
+ m_CascadeBorder: 0.1
m_ShadowDepthBias: 0.75
m_ShadowNormalBias: 0.75
+ m_AnyShadowsSupported: 1
m_SoftShadowsSupported: 1
+ m_ConservativeEnclosingSphere: 0
+ 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_EnableRenderGraph: 0
m_UseAdaptivePerformance: 1
m_ColorGradingMode: 0
m_ColorGradingLutSize: 16
+ m_UseFastSRGBLinearConversion: 0
+ m_SupportDataDrivenLensFlare: 1
m_ShadowType: 1
m_LocalShadowsSupported: 0
m_LocalShadowsAtlasResolution: 256
m_MaxPixelLights: 0
m_ShadowAtlasResolution: 256
- m_ShaderVariantLogLevel: 0
m_VolumeFrameworkUpdateMode: 0
+ m_Textures:
+ blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3}
+ bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3}
+ m_PrefilteringModeMainLightShadows: 3
+ m_PrefilteringModeAdditionalLight: 3
+ m_PrefilteringModeAdditionalLightShadows: 2
+ m_PrefilterXRKeywords: 1
+ m_PrefilteringModeForwardPlus: 0
+ m_PrefilteringModeDeferredRendering: 0
+ m_PrefilteringModeScreenSpaceOcclusion: 0
+ m_PrefilterDebugKeywords: 1
+ m_PrefilterWriteRenderingLayers: 1
+ m_PrefilterHDROutput: 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_PrefilterNativeRenderPass: 1
+ m_ShaderVariantLogLevel: 0
m_ShadowCascades: 1
diff --git a/Assets/Data/UniversalRP/PlanarReflectionRenderer.asset b/Assets/Data/UniversalRP/PlanarReflectionRenderer.asset
index 7de9e13a5..335d0d412 100644
--- a/Assets/Data/UniversalRP/PlanarReflectionRenderer.asset
+++ b/Assets/Data/UniversalRP/PlanarReflectionRenderer.asset
@@ -12,9 +12,14 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3}
m_Name: PlanarReflectionRenderer
m_EditorClassIdentifier:
+ debugShaders:
+ debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7,
+ type: 3}
+ hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3}
m_RendererFeatures:
- {fileID: 8871527528365487580}
m_RendererFeatureMap: dcf5529f48ff1d7b
+ m_UseNativeRenderPass: 0
postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2}
xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2}
shaders:
@@ -23,11 +28,27 @@ MonoBehaviour:
screenSpaceShadowPS: {fileID: 4800000, guid: 0f854b35a0cf61a429bd5dcfea30eddd,
type: 3}
samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3}
- tileDepthInfoPS: {fileID: 0}
- tileDeferredPS: {fileID: 0}
stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3}
fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3}
+ fallbackLoadingPS: {fileID: 4800000, guid: 7f888aff2ac86494babad1c2c5daeee2, type: 3}
materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3}
+ coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3}
+ coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b,
+ type: 3}
+ blitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3}
+ cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf,
+ type: 3}
+ objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486,
+ type: 3}
+ dataDrivenLensFlare: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92,
+ type: 3}
+ terrainDetailLitPS: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144,
+ type: 3}
+ terrainDetailGrassPS: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1,
+ type: 3}
+ terrainDetailGrassBillboardPS: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90,
+ type: 3}
+ m_AssetVersion: 2
m_OpaqueLayerMask:
serializedVersion: 2
m_Bits: 2147613751
@@ -43,7 +64,10 @@ MonoBehaviour:
zFailOperation: 0
m_ShadowTransparentReceive: 1
m_RenderingMode: 0
+ m_DepthPrimingMode: 0
+ m_CopyDepthMode: 0
m_AccurateGbufferNormals: 0
+ m_IntermediateTextureMode: 1
--- !u!114 &8871527528365487580
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -68,6 +92,9 @@ MonoBehaviour:
PassNames: []
overrideMaterial: {fileID: 0}
overrideMaterialPassIndex: 0
+ overrideShader: {fileID: 0}
+ overrideShaderPassIndex: 0
+ overrideMode: 1
overrideDepthState: 1
depthCompareFunction: 4
enableWrite: 0
diff --git a/Assets/Data/WaterSurfaceData.asset b/Assets/Data/WaterSurfaceData.asset
index 62480e037..5180329d0 100644
--- a/Assets/Data/WaterSurfaceData.asset
+++ b/Assets/Data/WaterSurfaceData.asset
@@ -12,22 +12,22 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: b17284ebf5e80436eb6089f8c7459dab, type: 3}
m_Name: WaterSurfaceData
m_EditorClassIdentifier:
- _waterMaxVisibility: 9
+ _waterMaxVisibility: 4.5
_absorptionRamp:
serializedVersion: 2
- key0: {r: 1, g: 1, b: 1, a: 1}
- key1: {r: 0.8117647, g: 1, b: 1, a: 1}
- key2: {r: 0.13510147, g: 0.8679245, b: 0.8679245, a: 0}
- key3: {r: 0.021626905, g: 0.49048996, b: 0.509434, a: 0}
- key4: {r: 0, g: 0.275, b: 0.44, a: 0}
- key5: {r: 0, g: 0, b: 0, a: 0}
+ key0: {r: 0.13510147, g: 0.8679245, b: 0.8679245, a: 1}
+ key1: {r: 0.021626905, g: 0.49048996, b: 0.509434, a: 1}
+ key2: {r: 0.05304379, g: 0.06483533, b: 0.0754717, a: 0}
+ key3: {r: 0, g: 0.275, b: 0.44, a: 0}
+ key4: {r: 0.0034180656, g: 0.2614573, b: 0.4165103, a: 0}
+ key5: {r: 0.10346207, g: 0.22408374, b: 0.8773585, a: 0}
key6: {r: 0, g: 0, b: 0, a: 0}
key7: {r: 0, g: 0, b: 0, a: 0}
- ctime0: 0
- ctime1: 488
- ctime2: 2338
- ctime3: 16925
- ctime4: 34547
+ ctime0: 2338
+ ctime1: 2891
+ ctime2: 12914
+ ctime3: 34547
+ ctime4: 47802
ctime5: 65535
ctime6: 0
ctime7: 0
@@ -40,6 +40,7 @@ MonoBehaviour:
atime6: 0
atime7: 0
m_Mode: 0
+ m_ColorSpace: 0
m_NumColorKeys: 6
m_NumAlphaKeys: 2
_scatterRamp:
@@ -69,6 +70,7 @@ MonoBehaviour:
atime6: 0
atime7: 0
m_Mode: 0
+ m_ColorSpace: -1
m_NumColorKeys: 3
m_NumAlphaKeys: 2
_waves:
diff --git a/Assets/Defence.onnx b/Assets/Defence.onnx
new file mode 100644
index 000000000..b9e2c7413
Binary files /dev/null and b/Assets/Defence.onnx differ
diff --git a/Assets/Defence.onnx.meta b/Assets/Defence.onnx.meta
new file mode 100644
index 000000000..d2845a6b2
--- /dev/null
+++ b/Assets/Defence.onnx.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: 46ee9b7d83da37442a78d18c5fb8dc3b
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
+ optimizeModel: 1
+ forceArbitraryBatchSize: 1
+ treatErrorsAsWarnings: 0
+ importMode: 1
+ weightsTypeMode: 0
+ activationTypeMode: 0
diff --git a/Assets/Fonts/LICENSE.txt b/Assets/Fonts/LICENSE.txt
index 75b52484e..d64569567 100644
--- a/Assets/Fonts/LICENSE.txt
+++ b/Assets/Fonts/LICENSE.txt
@@ -1,202 +1,202 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/Assets/JMO Assets.meta b/Assets/JMO Assets.meta
new file mode 100644
index 000000000..10478c36f
--- /dev/null
+++ b/Assets/JMO Assets.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6a13d96f6d7eba443be96d96d37c27ca
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Levels.meta b/Assets/Levels.meta
new file mode 100644
index 000000000..2490da638
--- /dev/null
+++ b/Assets/Levels.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 13ccb4e02f35b0645baf1044810af2f4
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Levels/Level 01.asset b/Assets/Levels/Level 01.asset
new file mode 100644
index 000000000..007eb84bc
--- /dev/null
+++ b/Assets/Levels/Level 01.asset
@@ -0,0 +1,16 @@
+%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: d0e5997dc40a2dc47afc7b9a41a9a862, type: 3}
+ m_Name: Level 01
+ m_EditorClassIdentifier:
+ StartupScenes:
+ - GameLevel
diff --git a/Assets/Levels/Level 01.asset.meta b/Assets/Levels/Level 01.asset.meta
new file mode 100644
index 000000000..8fe91182f
--- /dev/null
+++ b/Assets/Levels/Level 01.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9f2f4106fb707f94b8ba444221854f92
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Levels/MainMenu.asset b/Assets/Levels/MainMenu.asset
new file mode 100644
index 000000000..797bdc8db
--- /dev/null
+++ b/Assets/Levels/MainMenu.asset
@@ -0,0 +1,16 @@
+%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: d0e5997dc40a2dc47afc7b9a41a9a862, type: 3}
+ m_Name: MainMenu
+ m_EditorClassIdentifier:
+ StartupScenes:
+ - MainMenu
diff --git a/Assets/Levels/MainMenu.asset.meta b/Assets/Levels/MainMenu.asset.meta
new file mode 100644
index 000000000..513ed8478
--- /dev/null
+++ b/Assets/Levels/MainMenu.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d99561144ab5c0345b420674ec7d0228
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 11400000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ML-Agents.meta b/Assets/ML-Agents.meta
new file mode 100644
index 000000000..a1702d278
--- /dev/null
+++ b/Assets/ML-Agents.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a6d97c37337c8294db42ecb76ed7e654
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ML-Agents/CurriculumLearningPlan.md b/Assets/ML-Agents/CurriculumLearningPlan.md
new file mode 100644
index 000000000..2c9d3e698
--- /dev/null
+++ b/Assets/ML-Agents/CurriculumLearningPlan.md
@@ -0,0 +1,291 @@
+# MA-PPO 방어 선박 커리큘럼 학습 계획
+
+## 개요
+
+두 대의 방어 선박이 협력하여 적군 선박을 포획하는 시스템을 **3단계 커리큘럼 학습**으로 구현한다.
+각 단계는 이전 단계의 모델을 `--initialize-from`으로 불러와 전이 학습을 수행한다.
+
+---
+
+## Stage 1: 대형 유지 (Formation Keeping)
+
+### 목표
+- 두 선박이 **나란히 이동**
+- **일정 거리 유지** (이격 거리 준수)
+- 기본적인 협동 기동 학습
+
+### 활성화할 보상
+
+| 보상 항목 | 값 | 설명 |
+|----------|-----|------|
+| 헤딩 동기화 | `+0.0002` | 두 선박의 방향이 일치할 때 |
+| 속도 동기화 | `+0.0002` | 두 선박의 속도가 일치할 때 |
+| 간격 유지 | `+0.0002` | 최적 거리(50m) 유지 시 |
+| 그물 장력 | `+0.0005` | 그물 길이 90~95% 유지 시 |
+| 속도 보상 | `+0.0003` | 빠를수록 높은 보상 |
+
+### 비활성화할 보상
+
+| 보상 항목 | 값 | 이유 |
+|----------|-----|------|
+| 포획 보상 | `0` | Stage 2에서 활성화 |
+| 수직 차단 보상 | `0` | Stage 3에서 활성화 |
+| 추적 이득 보상 | `0` | Stage 3에서 활성화 |
+
+### 페널티
+
+| 페널티 항목 | 값 | 설명 |
+|------------|-----|------|
+| 아군 거리 초과 | `-2.0` | 거리 > maxAllyDistance 시 에피소드 종료 |
+| 대형 붕괴 | `-0.05` | 거리 > 100m 또는 헤딩 > 90° |
+| 시간 패널티 | `-0.001` | 매 스텝 |
+| 아군 충돌 | `-1.0` | 아군끼리 충돌 시 |
+
+### 에피소드 종료 조건
+- 아군 간 거리 초과 (maxAllyDistance)
+- 아군 충돌
+- 최대 스텝 도달
+
+### 환경 설정
+- 적군 선박: **비활성화** 또는 0대
+- 모선: 비활성화 (충돌 판정 제외)
+
+### 학습 명령어
+```bash
+mlagents-learn config/Defense_Stage1.yaml --run-id=Defense_Stage1_Formation
+```
+
+### 성공 기준
+- 평균 에피소드 길이가 최대 스텝에 근접
+- 두 선박의 헤딩 차이가 지속적으로 15° 이내
+- 거리 유지율 90% 이상
+
+---
+
+## Stage 2: 포획 보상 학습 (Capture Reward)
+
+### 목표
+- Stage 1의 대형 유지 능력 보존
+- **적군 포획 시 보상** 학습
+- **빠른 포획 = 높은 보상** 개념 학습
+
+### 추가 활성화할 보상
+
+| 보상 항목 | 값 | 설명 |
+|----------|-----|------|
+| 포획 성공 | `+1.0` | 적군이 Web에 충돌 시 |
+| 포획 위치 보너스 | `+0.3` (최대) | 그물 중심에서 포획 시 |
+| 모선 방어 성공 | `+0.5` | 에피소드 종료 시 모선 무사 |
+
+### 추가 페널티
+
+| 페널티 항목 | 값 | 설명 |
+|------------|-----|------|
+| 모선 충돌 | `-1.75` | 적군이 모선에 충돌 시 |
+| 경계선 침범 | `-0.1` | 2km/1km 경계 초과 시 |
+
+### 에피소드 종료 조건
+- Stage 1 조건 모두 포함
+- 총 충돌 횟수 ≥ 3 (Web + MotherShip 합산)
+- 모선 충돌 (게임 오버)
+
+### 환경 설정
+- 적군 선박: **1~2대** (단순한 경로)
+- 모선: 활성화
+- 적군 속도: 느리게 설정
+
+### 학습 명령어
+```bash
+mlagents-learn config/Defense_Stage2.yaml \
+--run-id=Defense_Stage2_Capture \
+--initialize-from=Defense_Stage1_Formation
+```
+
+### 성공 기준
+- 포획 성공률 > 50%
+- 평균 포획 시간 감소 추세
+- 대형 유지율 80% 이상 (Stage 1 능력 보존)
+
+---
+
+## Stage 3: 전술 기동 (Tactical Maneuvering)
+
+### 목표
+- Stage 1 + Stage 2 능력 보존
+- **적극적인 추적 및 차단** 학습
+- **수직 차단 기동** 최적화
+- 다수 적군 대응
+
+### 추가 활성화할 보상
+
+| 보상 항목 | 값 | 설명 |
+|----------|-----|------|
+| 수직 차단 | `+0.0005` | 그물-적 각도 ≈ 90° |
+| 추적 이득 | `+0.0002` | 적-그물 거리 감소 시 |
+
+### 환경 설정
+- 적군 선박: **3~5대**
+- 적군 속도: 정상 또는 빠르게
+- 적군 경로: 다양화 (랜덤 요소 추가)
+
+### 학습 명령어
+```bash
+mlagents-learn config/Defense_Stage3.yaml \
+--run-id=Defense_Stage3_Tactical \
+--initialize-from=Defense_Stage2_Capture
+```
+
+### 성공 기준
+- 다수 적군 포획 성공률 > 70%
+- 모선 생존율 > 90%
+- 평균 포획 시간 최소화
+
+---
+
+## YAML 설정 파일 구조
+
+### config/Defense_Stage1.yaml
+```yaml
+behaviors:
+ DefenseAgent:
+ trainer_type: ppo
+ hyperparameters:
+ batch_size: 1024
+ buffer_size: 10240
+ learning_rate: 3.0e-4
+ beta: 5.0e-3
+ epsilon: 0.2
+ lambd: 0.95
+ num_epoch: 3
+ learning_rate_schedule: linear
+ network_settings:
+ normalize: true
+ hidden_units: 256
+ num_layers: 2
+ reward_signals:
+ extrinsic:
+ gamma: 0.99
+ strength: 1.0
+ max_steps: 1000000
+ time_horizon: 64
+ summary_freq: 10000
+```
+
+### config/Defense_Stage2.yaml
+```yaml
+# Stage 1과 동일하되, max_steps 증가
+behaviors:
+ DefenseAgent:
+ # ... (Stage 1과 동일)
+ max_steps: 2000000
+```
+
+### config/Defense_Stage3.yaml
+```yaml
+# Stage 2와 동일하되, max_steps 증가 및 하이퍼파라미터 미세 조정
+behaviors:
+ DefenseAgent:
+ # ... (Stage 2와 동일)
+ max_steps: 3000000
+ hyperparameters:
+ learning_rate: 1.0e-4 # 감소 (미세 조정)
+```
+
+---
+
+## 코드 수정 체크리스트
+
+### Stage 1 준비
+- [x] DefenseEnvController에 `currentStage` 변수 추가 ✅
+- [x] Stage별 보상 활성화/비활성화 로직 구현 ✅
+- [x] 적군 선박 비활성화 옵션 추가 ✅
+- [ ] Stage 1 전용 YAML 파일 생성
+
+### Stage 2 준비
+- [x] 적군 선박 1~2대 활성화 (`stage2EnemyCount` 설정) ✅
+- [x] 포획 보상 활성화 (`IsCaptureRewardEnabled()`) ✅
+- [x] 모선 충돌 페널티 활성화 (`IsMotherShipPenaltyEnabled()`) ✅
+
+### Stage 3 준비
+- [x] 적군 선박 3~5대 활성화 (`stage3EnemyCount` 설정) ✅
+- [x] 수직 차단/추적 이득 보상 활성화 (`IsTacticalRewardEnabled()`) ✅
+- [ ] 적군 경로 다양화
+
+---
+
+## 구현된 Inspector 설정
+
+### DefenseEnvController
+```
+[Training Stage]
+├── Current Stage: Stage1_Formation / Stage2_Capture / Stage3_Tactical
+├── Disable Enemies In Stage1: true (Stage1에서 적군 비활성화)
+├── Stage1 Enemy Count: 0
+├── Stage2 Enemy Count: 2
+└── Stage3 Enemy Count: 5
+```
+
+### DefenseRewardCalculator
+```
+[Training Stage]
+└── Current Stage: (DefenseEnvController에서 자동 동기화)
+```
+
+### Stage별 보상 활성화 요약
+
+| 보상/페널티 | Stage1 | Stage2 | Stage3 |
+|------------|--------|--------|--------|
+| 헤딩 동기화 | ✅ | ✅ | ✅ |
+| 속도 동기화 | ✅ | ✅ | ✅ |
+| 간격 유지 | ✅ | ✅ | ✅ |
+| 그물 장력 | ✅ | ✅ | ✅ |
+| 속도 보상 | ✅ | ✅ | ✅ |
+| 대형 붕괴 페널티 | ✅ | ✅ | ✅ |
+| 시간 페널티 | ✅ | ✅ | ✅ |
+| 아군 거리 초과 | ✅ | ✅ | ✅ |
+| **포획 보상** | ❌ | ✅ | ✅ |
+| **모선 충돌 페널티** | ❌ | ✅ | ✅ |
+| **수직 차단 보상** | ❌ | ❌ | ✅ |
+| **추적 이득 보상** | ❌ | ❌ | ✅ |
+
+---
+
+## 폴더 구조
+
+```
+BoatAttack/
+├── config/
+│ ├── Defense_Stage1.yaml
+│ ├── Defense_Stage2.yaml
+│ └── Defense_Stage3.yaml
+├── results/
+│ ├── Defense_Stage1_Formation/
+│ ├── Defense_Stage2_Capture/
+│ └── Defense_Stage3_Tactical/
+└── Assets/
+ └── ML-Agents/
+ ├── CurriculumLearningPlan.md (이 파일)
+ └── Models/
+ ├── Defense_Stage1.onnx
+ ├── Defense_Stage2.onnx
+ └── Defense_Stage3.onnx
+```
+
+---
+
+## 참고 명령어
+
+### TensorBoard 모니터링
+```bash
+tensorboard --logdir=results
+```
+
+### 학습 재개
+```bash
+mlagents-learn config/Defense_Stage1.yaml --run-id=Defense_Stage1_Formation --resume
+```
+
+### 추론 모드 (학습된 모델 테스트)
+```bash
+mlagents-learn config/Defense_Stage1.yaml --run-id=Defense_Stage1_Formation --inference
+```
diff --git a/Assets/ML-Agents/CurriculumLearningPlan.md.meta b/Assets/ML-Agents/CurriculumLearningPlan.md.meta
new file mode 100644
index 000000000..db607ceb1
--- /dev/null
+++ b/Assets/ML-Agents/CurriculumLearningPlan.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e72cdc74fc9f5c349aecce163086d90c
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ML-Agents/Examples.meta b/Assets/ML-Agents/Examples.meta
new file mode 100644
index 000000000..041ae8564
--- /dev/null
+++ b/Assets/ML-Agents/Examples.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 99c5937b96118604fb65b043f15d0664
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ML-Agents/Examples/PushBlockWithInput.meta b/Assets/ML-Agents/Examples/PushBlockWithInput.meta
new file mode 100644
index 000000000..9b27a0b20
--- /dev/null
+++ b/Assets/ML-Agents/Examples/PushBlockWithInput.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 90bce63c30713a64b8158953612cc9ef
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts.meta b/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts.meta
new file mode 100644
index 000000000..a719995c5
--- /dev/null
+++ b/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: ec9d59a8e8fcac34c8bdfbc9029dbaef
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts/PushBlockActions.cs b/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts/PushBlockActions.cs
new file mode 100644
index 000000000..235128b96
--- /dev/null
+++ b/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts/PushBlockActions.cs
@@ -0,0 +1,490 @@
+//------------------------------------------------------------------------------
+//
+// This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
+// version 1.14.0
+// from Assets/ml-agents-release_20/Project/Assets/ML-Agents/Examples/PushBlockWithInput/PushBlockActions.inputactions
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine.InputSystem;
+using UnityEngine.InputSystem.Utilities;
+
+///
+/// Provides programmatic access to , , and instances defined in asset "Assets/ml-agents-release_20/Project/Assets/ML-Agents/Examples/PushBlockWithInput/PushBlockActions.inputactions".
+///
+///
+/// This class is source generated and any manual edits will be discarded if the associated asset is reimported or modified.
+///
+///
+///
+/// using namespace UnityEngine;
+/// using UnityEngine.InputSystem;
+///
+/// // Example of using an InputActionMap named "Player" from a UnityEngine.MonoBehaviour implementing callback interface.
+/// public class Example : MonoBehaviour, MyActions.IPlayerActions
+/// {
+/// private MyActions_Actions m_Actions; // Source code representation of asset.
+/// private MyActions_Actions.PlayerActions m_Player; // Source code representation of action map.
+///
+/// void Awake()
+/// {
+/// m_Actions = new MyActions_Actions(); // Create asset object.
+/// m_Player = m_Actions.Player; // Extract action map object.
+/// m_Player.AddCallbacks(this); // Register callback interface IPlayerActions.
+/// }
+///
+/// void OnDestroy()
+/// {
+/// m_Actions.Dispose(); // Destroy asset object.
+/// }
+///
+/// void OnEnable()
+/// {
+/// m_Player.Enable(); // Enable all actions within map.
+/// }
+///
+/// void OnDisable()
+/// {
+/// m_Player.Disable(); // Disable all actions within map.
+/// }
+///
+/// #region Interface implementation of MyActions.IPlayerActions
+///
+/// // Invoked when "Move" action is either started, performed or canceled.
+/// public void OnMove(InputAction.CallbackContext context)
+/// {
+/// Debug.Log($"OnMove: {context.ReadValue<Vector2>()}");
+/// }
+///
+/// // Invoked when "Attack" action is either started, performed or canceled.
+/// public void OnAttack(InputAction.CallbackContext context)
+/// {
+/// Debug.Log($"OnAttack: {context.ReadValue<float>()}");
+/// }
+///
+/// #endregion
+/// }
+///
+///
+public partial class @PushBlockActions: IInputActionCollection2, IDisposable
+{
+ ///
+ /// Provides access to the underlying asset instance.
+ ///
+ public InputActionAsset asset { get; }
+
+ ///
+ /// Constructs a new instance.
+ ///
+ public @PushBlockActions()
+ {
+ asset = InputActionAsset.FromJson(@"{
+ ""name"": ""PushBlockActions"",
+ ""maps"": [
+ {
+ ""name"": ""Movement"",
+ ""id"": ""03a2e5d4-ae81-47f1-a575-0779fb7da538"",
+ ""actions"": [
+ {
+ ""name"": ""movement"",
+ ""type"": ""Value"",
+ ""id"": ""5f47cbc6-de46-4d33-93e2-2b1af4f5996d"",
+ ""expectedControlType"": ""Vector2"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": true
+ },
+ {
+ ""name"": ""jump"",
+ ""type"": ""Button"",
+ ""id"": ""ca5eb833-5dfb-4b7c-880d-6118bd5d1378"",
+ ""expectedControlType"": ""Button"",
+ ""processors"": """",
+ ""interactions"": """",
+ ""initialStateCheck"": false
+ }
+ ],
+ ""bindings"": [
+ {
+ ""name"": ""gamepad_move"",
+ ""id"": ""477500ef-6d32-4b84-b9f8-158f18bcb906"",
+ ""path"": ""2DVector"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""movement"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""up"",
+ ""id"": ""6d2537b8-2266-4a50-8575-fb0fe310daa5"",
+ ""path"": ""/dpad/up"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard"",
+ ""action"": ""movement"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""down"",
+ ""id"": ""50584c83-beb6-4e90-a453-a635c03a761e"",
+ ""path"": ""/dpad/down"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard"",
+ ""action"": ""movement"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""left"",
+ ""id"": ""44408b8f-27e7-4c6d-b078-7536ba020d1a"",
+ ""path"": ""/dpad/left"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard"",
+ ""action"": ""movement"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""right"",
+ ""id"": ""f5681423-d3e3-41a5-b85e-0a7642c774aa"",
+ ""path"": ""/dpad/right"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard"",
+ ""action"": ""movement"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""keyboard_move"",
+ ""id"": ""6bcba4bf-5ce0-4005-9e6a-0de2487211b0"",
+ ""path"": ""2DVector"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": """",
+ ""action"": ""movement"",
+ ""isComposite"": true,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": ""up"",
+ ""id"": ""63da699e-b354-4e63-b0f8-26fb92abea41"",
+ ""path"": ""/w"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard"",
+ ""action"": ""movement"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""down"",
+ ""id"": ""39409748-9002-4aff-9a09-cdc05b9708ad"",
+ ""path"": ""/s"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard"",
+ ""action"": ""movement"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""left"",
+ ""id"": ""0afe45fc-dc45-4310-9c73-7dc3c503addf"",
+ ""path"": ""/a"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard"",
+ ""action"": ""movement"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": ""right"",
+ ""id"": ""69fe0335-9e0c-495d-a90d-4b0fcbfd2b34"",
+ ""path"": ""/d"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard"",
+ ""action"": ""movement"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": true
+ },
+ {
+ ""name"": """",
+ ""id"": ""ab696218-63cd-4eb8-9fe1-48a68e32e92f"",
+ ""path"": ""/space"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard"",
+ ""action"": ""jump"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ },
+ {
+ ""name"": """",
+ ""id"": ""7adcb138-5175-4cc4-addc-d2b02cb5f0de"",
+ ""path"": ""/buttonSouth"",
+ ""interactions"": """",
+ ""processors"": """",
+ ""groups"": ""Keyboard"",
+ ""action"": ""jump"",
+ ""isComposite"": false,
+ ""isPartOfComposite"": false
+ }
+ ]
+ }
+ ],
+ ""controlSchemes"": [
+ {
+ ""name"": ""Keyboard"",
+ ""bindingGroup"": ""Keyboard"",
+ ""devices"": [
+ {
+ ""devicePath"": """",
+ ""isOptional"": true,
+ ""isOR"": false
+ },
+ {
+ ""devicePath"": """",
+ ""isOptional"": true,
+ ""isOR"": false
+ }
+ ]
+ }
+ ]
+}");
+ // Movement
+ m_Movement = asset.FindActionMap("Movement", throwIfNotFound: true);
+ m_Movement_movement = m_Movement.FindAction("movement", throwIfNotFound: true);
+ m_Movement_jump = m_Movement.FindAction("jump", throwIfNotFound: true);
+ }
+
+ ~@PushBlockActions()
+ {
+ UnityEngine.Debug.Assert(!m_Movement.enabled, "This will cause a leak and performance issues, PushBlockActions.Movement.Disable() has not been called.");
+ }
+
+ ///
+ /// Destroys this asset and all associated instances.
+ ///
+ public void Dispose()
+ {
+ UnityEngine.Object.Destroy(asset);
+ }
+
+ ///
+ public InputBinding? bindingMask
+ {
+ get => asset.bindingMask;
+ set => asset.bindingMask = value;
+ }
+
+ ///
+ public ReadOnlyArray? devices
+ {
+ get => asset.devices;
+ set => asset.devices = value;
+ }
+
+ ///
+ public ReadOnlyArray controlSchemes => asset.controlSchemes;
+
+ ///
+ public bool Contains(InputAction action)
+ {
+ return asset.Contains(action);
+ }
+
+ ///
+ public IEnumerator GetEnumerator()
+ {
+ return asset.GetEnumerator();
+ }
+
+ ///
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ ///
+ public void Enable()
+ {
+ asset.Enable();
+ }
+
+ ///
+ public void Disable()
+ {
+ asset.Disable();
+ }
+
+ ///
+ public IEnumerable bindings => asset.bindings;
+
+ ///
+ public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
+ {
+ return asset.FindAction(actionNameOrId, throwIfNotFound);
+ }
+
+ ///
+ public int FindBinding(InputBinding bindingMask, out InputAction action)
+ {
+ return asset.FindBinding(bindingMask, out action);
+ }
+
+ // Movement
+ private readonly InputActionMap m_Movement;
+ private List m_MovementActionsCallbackInterfaces = new List();
+ private readonly InputAction m_Movement_movement;
+ private readonly InputAction m_Movement_jump;
+ ///
+ /// Provides access to input actions defined in input action map "Movement".
+ ///
+ public struct MovementActions
+ {
+ private @PushBlockActions m_Wrapper;
+
+ ///
+ /// Construct a new instance of the input action map wrapper class.
+ ///
+ public MovementActions(@PushBlockActions wrapper) { m_Wrapper = wrapper; }
+ ///
+ /// Provides access to the underlying input action "Movement/movement".
+ ///
+ public InputAction @movement => m_Wrapper.m_Movement_movement;
+ ///
+ /// Provides access to the underlying input action "Movement/jump".
+ ///
+ public InputAction @jump => m_Wrapper.m_Movement_jump;
+ ///
+ /// Provides access to the underlying input action map instance.
+ ///
+ public InputActionMap Get() { return m_Wrapper.m_Movement; }
+ ///
+ public void Enable() { Get().Enable(); }
+ ///
+ public void Disable() { Get().Disable(); }
+ ///
+ public bool enabled => Get().enabled;
+ ///
+ /// Implicitly converts an to an instance.
+ ///
+ public static implicit operator InputActionMap(MovementActions set) { return set.Get(); }
+ ///
+ /// Adds , and callbacks provided via on all input actions contained in this map.
+ ///
+ /// Callback instance.
+ ///
+ /// If is null or have already been added this method does nothing.
+ ///
+ ///
+ public void AddCallbacks(IMovementActions instance)
+ {
+ if (instance == null || m_Wrapper.m_MovementActionsCallbackInterfaces.Contains(instance)) return;
+ m_Wrapper.m_MovementActionsCallbackInterfaces.Add(instance);
+ @movement.started += instance.OnMovement;
+ @movement.performed += instance.OnMovement;
+ @movement.canceled += instance.OnMovement;
+ @jump.started += instance.OnJump;
+ @jump.performed += instance.OnJump;
+ @jump.canceled += instance.OnJump;
+ }
+
+ ///
+ /// Removes , and callbacks provided via on all input actions contained in this map.
+ ///
+ ///
+ /// Calling this method when have not previously been registered has no side-effects.
+ ///
+ ///
+ private void UnregisterCallbacks(IMovementActions instance)
+ {
+ @movement.started -= instance.OnMovement;
+ @movement.performed -= instance.OnMovement;
+ @movement.canceled -= instance.OnMovement;
+ @jump.started -= instance.OnJump;
+ @jump.performed -= instance.OnJump;
+ @jump.canceled -= instance.OnJump;
+ }
+
+ ///
+ /// Unregisters and unregisters all input action callbacks via .
+ ///
+ ///
+ public void RemoveCallbacks(IMovementActions instance)
+ {
+ if (m_Wrapper.m_MovementActionsCallbackInterfaces.Remove(instance))
+ UnregisterCallbacks(instance);
+ }
+
+ ///
+ /// Replaces all existing callback instances and previously registered input action callbacks associated with them with callbacks provided via .
+ ///
+ ///
+ /// If is null, calling this method will only unregister all existing callbacks but not register any new callbacks.
+ ///
+ ///
+ ///
+ ///
+ public void SetCallbacks(IMovementActions instance)
+ {
+ foreach (var item in m_Wrapper.m_MovementActionsCallbackInterfaces)
+ UnregisterCallbacks(item);
+ m_Wrapper.m_MovementActionsCallbackInterfaces.Clear();
+ AddCallbacks(instance);
+ }
+ }
+ ///
+ /// Provides a new instance referencing this action map.
+ ///
+ public MovementActions @Movement => new MovementActions(this);
+ private int m_KeyboardSchemeIndex = -1;
+ ///
+ /// Provides access to the input control scheme.
+ ///
+ ///
+ public InputControlScheme KeyboardScheme
+ {
+ get
+ {
+ if (m_KeyboardSchemeIndex == -1) m_KeyboardSchemeIndex = asset.FindControlSchemeIndex("Keyboard");
+ return asset.controlSchemes[m_KeyboardSchemeIndex];
+ }
+ }
+ ///
+ /// Interface to implement callback methods for all input action callbacks associated with input actions defined by "Movement" which allows adding and removing callbacks.
+ ///
+ ///
+ ///
+ public interface IMovementActions
+ {
+ ///
+ /// Method invoked when associated input action "movement" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnMovement(InputAction.CallbackContext context);
+ ///
+ /// Method invoked when associated input action "jump" is either , or .
+ ///
+ ///
+ ///
+ ///
+ void OnJump(InputAction.CallbackContext context);
+ }
+}
diff --git a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs.meta b/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts/PushBlockActions.cs.meta
old mode 100755
new mode 100644
similarity index 83%
rename from Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs.meta
rename to Assets/ML-Agents/Examples/PushBlockWithInput/Scripts/PushBlockActions.cs.meta
index d6567a83c..b7f0ff680
--- a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs.meta
+++ b/Assets/ML-Agents/Examples/PushBlockWithInput/Scripts/PushBlockActions.cs.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 178d8366aa1616849b91b66285c51454
+guid: 2b219711278410843a082c7e435732ef
MonoImporter:
externalObjects: {}
serializedVersion: 2
diff --git a/Assets/ML-Agents/Timers.meta b/Assets/ML-Agents/Timers.meta
new file mode 100644
index 000000000..bb3e36e74
--- /dev/null
+++ b/Assets/ML-Agents/Timers.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3a3ecd9b10f40324494558a002ea5c47
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ML-Agents/Timers/ROONSHOOT_timers.json.meta b/Assets/ML-Agents/Timers/ROONSHOOT_timers.json.meta
new file mode 100644
index 000000000..be546929d
--- /dev/null
+++ b/Assets/ML-Agents/Timers/ROONSHOOT_timers.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: bf5dba342de6d5d499af8b89b73f489c
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ML-Agents/Timers/demo_Island_timers.json.meta b/Assets/ML-Agents/Timers/demo_Island_timers.json.meta
new file mode 100644
index 000000000..21cdedd55
--- /dev/null
+++ b/Assets/ML-Agents/Timers/demo_Island_timers.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b6ae0b390aaec934996c85bb42820feb
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ML-Agents/Timers/level_Island_timers.json.meta b/Assets/ML-Agents/Timers/level_Island_timers.json.meta
new file mode 100644
index 000000000..0301a91f8
--- /dev/null
+++ b/Assets/ML-Agents/Timers/level_Island_timers.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2ca3aece4d4df7743b54864afa0782c3
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/ML-Agents/Timers/main_menu_timers.json.meta b/Assets/ML-Agents/Timers/main_menu_timers.json.meta
new file mode 100644
index 000000000..5bf0a006a
--- /dev/null
+++ b/Assets/ML-Agents/Timers/main_menu_timers.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 13979c47f83b12d4c940717edbcad9be
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/BlackoutBackface.mat b/Assets/Materials/BlackoutBackface.mat
index 14bf1d6b0..46b572d92 100644
--- a/Assets/Materials/BlackoutBackface.mat
+++ b/Assets/Materials/BlackoutBackface.mat
@@ -2,14 +2,18 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: BlackoutBackface
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_ShaderKeywords: _ENVIRONMENTREFLECTIONS_OFF
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ENVIRONMENTREFLECTIONS_OFF
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -17,6 +21,7 @@ Material:
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -28,6 +33,18 @@ Material:
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}
@@ -44,29 +61,55 @@ Material:
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: 0
- _GlossMapScale: 0
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
+ - _Parallax: 0.005
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
+ - _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
@@ -88,4 +131,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 4
+ version: 7
diff --git a/Assets/Materials/Blocker.mat b/Assets/Materials/Blocker.mat
index 77211a043..6ac7c5bb2 100644
--- a/Assets/Materials/Blocker.mat
+++ b/Assets/Materials/Blocker.mat
@@ -15,14 +15,19 @@ MonoBehaviour:
version: 1
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Blocker
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
- m_ShaderKeywords: _GLOSSINESS_FROM_BASE_ALPHA _SPECULAR_COLOR
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _GLOSSINESS_FROM_BASE_ALPHA
+ - _SPECULAR_COLOR
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -30,6 +35,7 @@ Material:
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -77,14 +83,30 @@ Material:
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
- _Cull: 2
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
+ - _DstBlendAlpha: 0
- _GlossMapScale: 1
- _Glossiness: 0.5
- _GlossinessSource: 0
@@ -102,13 +124,14 @@ Material:
- _SpecSource: 0
- _SpecularHighlights: 0
- _SrcBlend: 1
+ - _SrcBlendAlpha: 1
- _Surface: 0
- _UVSec: 0
- _WorkflowMode: 0
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0, g: 0, b: 0, a: 0.5}
- - _Color: {r: 0, g: 0, b: 0, a: 1}
+ - _Color: {r: 0, g: 0, b: 0, a: 0.5}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.1999999, g: 0.1999999, b: 0.1999999, a: 1}
m_BuildTextureStacks: []
@@ -124,4 +147,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 4
+ version: 7
diff --git a/Assets/Materials/BushTest.mat b/Assets/Materials/BushTest.mat
index 9a6b19026..5aa848a10 100644
--- a/Assets/Materials/BushTest.mat
+++ b/Assets/Materials/BushTest.mat
@@ -15,14 +15,20 @@ MonoBehaviour:
version: 1
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: BushTest
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
- m_ShaderKeywords: _ALPHATEST_ON _NORMALMAP _SPECULAR_COLOR
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHATEST_ON
+ - _NORMALMAP
+ - _SPECULAR_COLOR
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
@@ -30,6 +36,7 @@ Material:
stringTagMap:
RenderType: TransparentCutout
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -101,15 +108,31 @@ Material:
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: 1
+ - _AlphaToMask: 1
- _Blend: 0
+ - _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _CorrectNormals: 0
- _Cull: 0
- _Cutoff: 0.8
- _DetailNormalMapScale: 1
- _DstBlend: 0
+ - _DstBlendAlpha: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossinessSource: 1
@@ -127,6 +150,7 @@ Material:
- _SpecSource: 0
- _SpecularHighlights: 0
- _SrcBlend: 1
+ - _SrcBlendAlpha: 1
- _Surface: 0
- _UVSec: 0
- _WorkflowMode: 1
@@ -149,4 +173,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 4
+ version: 7
diff --git a/Assets/Materials/Checkpoint.mat b/Assets/Materials/Checkpoint.mat
index 403ba053a..42a24973d 100644
--- a/Assets/Materials/Checkpoint.mat
+++ b/Assets/Materials/Checkpoint.mat
@@ -1,8 +1,21 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-3359640960281692547
+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: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -10,16 +23,36 @@ Material:
m_Name: Checkpoint
m_Shader: {fileID: -6465566751694194690, guid: 2acbf7e74813d47868cad8387461befd,
type: 3}
- m_ShaderKeywords:
+ 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:
- - SHADOWCASTER
+ disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
- m_TexEnvs: []
- m_Floats: []
- m_Colors: []
+ m_TexEnvs:
+ - 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:
+ - _QueueControl: 0
+ - _QueueOffset: 0
+ m_Colors:
+ - _Color: {r: 0, g: 0.582, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Materials/Seaweed.mat b/Assets/Materials/Seaweed.mat
index 5aced47f0..4c8fdee2c 100644
--- a/Assets/Materials/Seaweed.mat
+++ b/Assets/Materials/Seaweed.mat
@@ -2,14 +2,18 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Seaweed
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
- m_ShaderKeywords: _ALPHATEST_ON
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHATEST_ON
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
@@ -17,6 +21,7 @@ Material:
stringTagMap:
RenderType: TransparentCutout
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -48,13 +53,29 @@ Material:
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: 1
+ - _AlphaToMask: 1
- _Blend: 0
+ - _BlendModePreserveSpecular: 1
- _BumpScale: 1
- _Cull: 0
- _Cutoff: 0.5
- _DstBlend: 0
+ - _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
@@ -71,12 +92,13 @@ Material:
- _SpecSource: 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: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999993, g: 0.19999993, b: 0.19999993, a: 0.5}
m_BuildTextureStacks: []
@@ -92,4 +114,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 4
+ version: 7
diff --git a/Assets/Materials/Shiny_Black_Gradient.mat b/Assets/Materials/Shiny_Black_Gradient.mat
new file mode 100644
index 000000000..208395e05
--- /dev/null
+++ b/Assets/Materials/Shiny_Black_Gradient.mat
@@ -0,0 +1,133 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-9208654333811798125
+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: Shiny_Black_Gradient
+ m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 6
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap:
+ RenderType: Opaque
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BaseMap:
+ m_Texture: {fileID: 2800000, guid: 8306deba45efc104b9297b5946521949, 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: 8306deba45efc104b9297b5946521949, 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: 1
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.122641504, g: 0.09313812, b: 0.09313812, a: 1}
+ - _Color: {r: 0.12264148, g: 0.09313808, b: 0.09313808, 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: []
diff --git a/Assets/Materials/Shiny_Black_Gradient.mat.meta b/Assets/Materials/Shiny_Black_Gradient.mat.meta
new file mode 100644
index 000000000..763b30536
--- /dev/null
+++ b/Assets/Materials/Shiny_Black_Gradient.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 60009cd09dedcdb42a57ac5af9f6a6df
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Materials/Splash.mat b/Assets/Materials/Splash.mat
index 7a83c76df..544065c07 100644
--- a/Assets/Materials/Splash.mat
+++ b/Assets/Materials/Splash.mat
@@ -12,26 +12,34 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 4
+ version: 7
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Splash
m_Shader: {fileID: 4800000, guid: 8d2bb70cbf9db8d4da26e15b26e74248, type: 3}
- m_ShaderKeywords: _ALPHAPREMULTIPLY_ON _ALPHATEST_ON
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _ALPHAPREMULTIPLY_ON
+ - _ALPHATEST_ON
+ - _SURFACE_TYPE_TRANSPARENT
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
- m_DoubleSidedGI: 0
- m_CustomRenderQueue: 3050
+ m_DoubleSidedGI: 1
+ m_CustomRenderQueue: 3000
stringTagMap:
RenderType: Transparent
disabledShaderPasses:
- ALWAYS
- SHADOWCASTER
+ - DepthOnly
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -79,9 +87,24 @@ Material:
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: 1
- - _Blend: 1
+ - _AlphaToMask: 0
+ - _Blend: 0
+ - _BlendModePreserveSpecular: 1
- _BlendOp: 0
- _BumpScale: 1
- _CameraFadingEnabled: 0
@@ -96,6 +119,7 @@ Material:
- _DistortionStrength: 1
- _DistortionStrengthScaled: 0.1
- _DstBlend: 10
+ - _DstBlendAlpha: 10
- _EmissionEnabled: 0
- _FlipbookBlending: 0
- _FlipbookMode: 0
@@ -121,6 +145,7 @@ Material:
- _SpecSource: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
+ - _SrcBlendAlpha: 1
- _Surface: 1
- _UVSec: 0
- _WorkflowMode: 1
@@ -129,7 +154,7 @@ Material:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _BaseColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0}
- _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0}
- - _Color: {r: 3.6368854, g: 3.6368854, b: 3.6368854, a: 1}
+ - _Color: {r: 1, g: 1, b: 1, a: 1}
- _ColorAddSubDiff: {r: 1, g: 0, b: 0, a: 0}
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}
- _SoftParticleFadeParams: {r: 0, g: 10, b: 0, a: 0}
diff --git a/Assets/Materials/StudioLight.mat b/Assets/Materials/StudioLight.mat
index 55532ce70..58cab22c1 100644
--- a/Assets/Materials/StudioLight.mat
+++ b/Assets/Materials/StudioLight.mat
@@ -12,17 +12,21 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 4
+ version: 7
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: StudioLight
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_ShaderKeywords: _EMISSION
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _EMISSION
+ m_InvalidKeywords: []
m_LightmapFlags: 2
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -30,6 +34,7 @@ Material:
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -89,9 +94,12 @@ Material:
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
@@ -100,6 +108,7 @@ Material:
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
+ - _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
@@ -113,12 +122,13 @@ Material:
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
+ - _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1}
- - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+ - _Color: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1}
- _EmissionColor: {r: 1.4369788, g: 1.8075757, b: 2.3056736, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
diff --git a/Assets/Materials/StudioLight_Bright.mat b/Assets/Materials/StudioLight_Bright.mat
index 43f5115dd..2856c34ec 100644
--- a/Assets/Materials/StudioLight_Bright.mat
+++ b/Assets/Materials/StudioLight_Bright.mat
@@ -12,17 +12,21 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 4
+ version: 7
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: StudioLight_Bright
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_ShaderKeywords: _EMISSION
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _EMISSION
+ m_InvalidKeywords: []
m_LightmapFlags: 2
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -30,6 +34,7 @@ Material:
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -89,9 +94,12 @@ Material:
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
@@ -100,6 +108,7 @@ Material:
- _DetailAlbedoMapScale: 1
- _DetailNormalMapScale: 1
- _DstBlend: 0
+ - _DstBlendAlpha: 0
- _EnvironmentReflections: 1
- _GlossMapScale: 0
- _Glossiness: 0
@@ -113,6 +122,7 @@ Material:
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
+ - _SrcBlendAlpha: 1
- _Surface: 0
- _WorkflowMode: 1
- _ZWrite: 1
diff --git a/Assets/Materials/Terrain.mat b/Assets/Materials/Terrain.mat
index 20c532b99..110f5b0e2 100644
--- a/Assets/Materials/Terrain.mat
+++ b/Assets/Materials/Terrain.mat
@@ -12,23 +12,29 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 4
+ version: 7
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Terrain
m_Shader: {fileID: 4800000, guid: 69c1f799e772cb6438f56c23efccb782, type: 3}
- m_ShaderKeywords:
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _TERRAIN_BLEND_HEIGHT
+ - _TERRAIN_INSTANCED_PERPIXEL_NORMAL
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 2500
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -116,6 +122,7 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- _AlphaClip: 0
- _Blend: 0
@@ -123,7 +130,7 @@ Material:
- _Cull: 2
- _Cutoff: 0.5
- _DstBlend: 0
- - _EnableHeightBlend: 0
+ - _EnableHeightBlend: 1
- _EnableInstancedPerPixelNormal: 1
- _EnvironmentReflections: 1
- _GlossMapScale: 0
diff --git a/Assets/Model.meta b/Assets/Model.meta
new file mode 100644
index 000000000..9db8c4291
--- /dev/null
+++ b/Assets/Model.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4d1000cff02ce604cb0ccd2bbf7d20f7
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Model/Defence 1.onnx b/Assets/Model/Defence 1.onnx
new file mode 100644
index 000000000..c0e8cd127
Binary files /dev/null and b/Assets/Model/Defence 1.onnx differ
diff --git a/Assets/Model/Defence 1.onnx.meta b/Assets/Model/Defence 1.onnx.meta
new file mode 100644
index 000000000..a46f8088e
--- /dev/null
+++ b/Assets/Model/Defence 1.onnx.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: 30e41c972d1bab844be1750ade1b1479
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
+ optimizeModel: 1
+ forceArbitraryBatchSize: 1
+ treatErrorsAsWarnings: 0
+ importMode: 1
+ weightsTypeMode: 0
+ activationTypeMode: 0
diff --git a/Assets/Model/Defence 2.onnx b/Assets/Model/Defence 2.onnx
new file mode 100644
index 000000000..af634571f
Binary files /dev/null and b/Assets/Model/Defence 2.onnx differ
diff --git a/Assets/Model/Defence 2.onnx.meta b/Assets/Model/Defence 2.onnx.meta
new file mode 100644
index 000000000..10a03e1f6
--- /dev/null
+++ b/Assets/Model/Defence 2.onnx.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: aa6159e3ceabedd489047f475bf37a09
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
+ optimizeModel: 1
+ forceArbitraryBatchSize: 1
+ treatErrorsAsWarnings: 0
+ importMode: 1
+ weightsTypeMode: 0
+ activationTypeMode: 0
diff --git a/Assets/Model/Defence-3854588.onnx b/Assets/Model/Defence-3854588.onnx
new file mode 100644
index 000000000..d7c50b449
Binary files /dev/null and b/Assets/Model/Defence-3854588.onnx differ
diff --git a/Assets/Model/Defence-3854588.onnx.meta b/Assets/Model/Defence-3854588.onnx.meta
new file mode 100644
index 000000000..fd866e8ba
--- /dev/null
+++ b/Assets/Model/Defence-3854588.onnx.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: f8a3d74d403eb9c49be7fac1fd4080b7
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
+ optimizeModel: 1
+ forceArbitraryBatchSize: 1
+ treatErrorsAsWarnings: 0
+ importMode: 1
+ weightsTypeMode: 0
+ activationTypeMode: 0
diff --git a/Assets/Model/Defence-5499994.onnx b/Assets/Model/Defence-5499994.onnx
new file mode 100644
index 000000000..8c597e8fc
Binary files /dev/null and b/Assets/Model/Defence-5499994.onnx differ
diff --git a/Assets/Model/Defence-5499994.onnx.meta b/Assets/Model/Defence-5499994.onnx.meta
new file mode 100644
index 000000000..4f082d84e
--- /dev/null
+++ b/Assets/Model/Defence-5499994.onnx.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: ad248a0b8d8b4304c84e5855636d0373
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
+ optimizeModel: 1
+ forceArbitraryBatchSize: 1
+ treatErrorsAsWarnings: 0
+ importMode: 1
+ weightsTypeMode: 0
+ activationTypeMode: 0
diff --git a/Assets/Model/Defence-5999996.onnx b/Assets/Model/Defence-5999996.onnx
new file mode 100644
index 000000000..11d4a45c0
Binary files /dev/null and b/Assets/Model/Defence-5999996.onnx differ
diff --git a/Assets/Model/Defence-5999996.onnx.meta b/Assets/Model/Defence-5999996.onnx.meta
new file mode 100644
index 000000000..145666dd2
--- /dev/null
+++ b/Assets/Model/Defence-5999996.onnx.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: 7cd9c994e01a12a4882646e01da0f61b
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
+ optimizeModel: 1
+ forceArbitraryBatchSize: 1
+ treatErrorsAsWarnings: 0
+ importMode: 1
+ weightsTypeMode: 0
+ activationTypeMode: 0
diff --git a/Assets/Model/Defence.onnx b/Assets/Model/Defence.onnx
new file mode 100644
index 000000000..f56cf71b4
Binary files /dev/null and b/Assets/Model/Defence.onnx differ
diff --git a/Assets/Model/Defence.onnx.meta b/Assets/Model/Defence.onnx.meta
new file mode 100644
index 000000000..b3f4571d5
--- /dev/null
+++ b/Assets/Model/Defence.onnx.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: c8af781d8c13ec64baebab9cc3b9a478
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
+ optimizeModel: 1
+ forceArbitraryBatchSize: 1
+ treatErrorsAsWarnings: 0
+ importMode: 1
+ weightsTypeMode: 0
+ activationTypeMode: 0
diff --git a/Assets/NavMeshComponents/Editor.meta b/Assets/NavMeshComponents/Editor.meta
deleted file mode 100755
index 9ca8ba655..000000000
--- a/Assets/NavMeshComponents/Editor.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: 63b588f3892bb4b5eb73ad3d2791e05c
-folderAsset: yes
-timeCreated: 1477656493
-licenseType: Pro
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs b/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs
deleted file mode 100755
index 64107b9f2..000000000
--- a/Assets/NavMeshComponents/Editor/NavMeshAssetManager.cs
+++ /dev/null
@@ -1,325 +0,0 @@
-using System.Collections.Generic;
-using System.IO;
-using UnityEditor.Experimental.SceneManagement;
-using UnityEditor.SceneManagement;
-using UnityEngine.AI;
-using UnityEngine;
-
-namespace UnityEditor.AI
-{
- public class NavMeshAssetManager : ScriptableSingleton
- {
- internal struct AsyncBakeOperation
- {
- public NavMeshSurface surface;
- public NavMeshData bakeData;
- public AsyncOperation bakeOperation;
- }
-
- List m_BakeOperations = new List();
- internal List GetBakeOperations() { return m_BakeOperations; }
-
- struct SavedPrefabNavMeshData
- {
- public NavMeshSurface surface;
- public NavMeshData navMeshData;
- }
-
- List m_PrefabNavMeshDataAssets = new List();
-
- static string GetAndEnsureTargetPath(NavMeshSurface surface)
- {
- // Create directory for the asset if it does not exist yet.
- var activeScenePath = surface.gameObject.scene.path;
-
- var targetPath = "Assets";
- if (!string.IsNullOrEmpty(activeScenePath))
- {
- targetPath = Path.Combine(Path.GetDirectoryName(activeScenePath), Path.GetFileNameWithoutExtension(activeScenePath));
- }
- else
- {
- var prefabStage = PrefabStageUtility.GetPrefabStage(surface.gameObject);
- var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(surface.gameObject);
- if (isPartOfPrefab && !string.IsNullOrEmpty(prefabStage.assetPath))
- {
- var prefabDirectoryName = Path.GetDirectoryName(prefabStage.assetPath);
- if (!string.IsNullOrEmpty(prefabDirectoryName))
- targetPath = prefabDirectoryName;
- }
- }
- if (!Directory.Exists(targetPath))
- Directory.CreateDirectory(targetPath);
- return targetPath;
- }
-
- static void CreateNavMeshAsset(NavMeshSurface surface)
- {
- var targetPath = GetAndEnsureTargetPath(surface);
-
- var combinedAssetPath = Path.Combine(targetPath, "NavMesh-" + surface.name + ".asset");
- combinedAssetPath = AssetDatabase.GenerateUniqueAssetPath(combinedAssetPath);
- AssetDatabase.CreateAsset(surface.navMeshData, combinedAssetPath);
- }
-
- NavMeshData GetNavMeshAssetToDelete(NavMeshSurface navSurface)
- {
- if (PrefabUtility.IsPartOfPrefabInstance(navSurface) && !PrefabUtility.IsPartOfModelPrefab(navSurface))
- {
- // Don't allow deleting the asset belonging to the prefab parent
- var parentSurface = PrefabUtility.GetCorrespondingObjectFromSource(navSurface) as NavMeshSurface;
- if (parentSurface && navSurface.navMeshData == parentSurface.navMeshData)
- return null;
- }
-
- // Do not delete the NavMeshData asset referenced from a prefab until the prefab is saved
- var prefabStage = PrefabStageUtility.GetPrefabStage(navSurface.gameObject);
- var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(navSurface.gameObject);
- if (isPartOfPrefab && IsCurrentPrefabNavMeshDataStored(navSurface))
- return null;
-
- return navSurface.navMeshData;
- }
-
- void ClearSurface(NavMeshSurface navSurface)
- {
- var hasNavMeshData = navSurface.navMeshData != null;
- StoreNavMeshDataIfInPrefab(navSurface);
-
- var assetToDelete = GetNavMeshAssetToDelete(navSurface);
- navSurface.RemoveData();
-
- if (hasNavMeshData)
- {
- SetNavMeshData(navSurface, null);
- EditorSceneManager.MarkSceneDirty(navSurface.gameObject.scene);
- }
-
- if (assetToDelete)
- AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(assetToDelete));
- }
-
- public void StartBakingSurfaces(UnityEngine.Object[] surfaces)
- {
- // Remove first to avoid double registration of the callback
- EditorApplication.update -= UpdateAsyncBuildOperations;
- EditorApplication.update += UpdateAsyncBuildOperations;
-
- foreach (NavMeshSurface surf in surfaces)
- {
- StoreNavMeshDataIfInPrefab(surf);
-
- var oper = new AsyncBakeOperation();
-
- oper.bakeData = InitializeBakeData(surf);
- oper.bakeOperation = surf.UpdateNavMesh(oper.bakeData);
- oper.surface = surf;
-
- m_BakeOperations.Add(oper);
- }
- }
-
- static NavMeshData InitializeBakeData(NavMeshSurface surface)
- {
- var emptySources = new List();
- var emptyBounds = new Bounds();
- return UnityEngine.AI.NavMeshBuilder.BuildNavMeshData(surface.GetBuildSettings(), emptySources, emptyBounds
- , surface.transform.position, surface.transform.rotation);
- }
-
- void UpdateAsyncBuildOperations()
- {
- foreach (var oper in m_BakeOperations)
- {
- if (oper.surface == null || oper.bakeOperation == null)
- continue;
-
- if (oper.bakeOperation.isDone)
- {
- var surface = oper.surface;
- var delete = GetNavMeshAssetToDelete(surface);
- if (delete != null)
- AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(delete));
-
- surface.RemoveData();
- SetNavMeshData(surface, oper.bakeData);
-
- if (surface.isActiveAndEnabled)
- surface.AddData();
- CreateNavMeshAsset(surface);
- EditorSceneManager.MarkSceneDirty(surface.gameObject.scene);
- }
- }
- m_BakeOperations.RemoveAll(o => o.bakeOperation == null || o.bakeOperation.isDone);
- if (m_BakeOperations.Count == 0)
- EditorApplication.update -= UpdateAsyncBuildOperations;
- }
-
- public bool IsSurfaceBaking(NavMeshSurface surface)
- {
- if (surface == null)
- return false;
-
- foreach (var oper in m_BakeOperations)
- {
- if (oper.surface == null || oper.bakeOperation == null)
- continue;
-
- if (oper.surface == surface)
- return true;
- }
-
- return false;
- }
-
- public void ClearSurfaces(UnityEngine.Object[] surfaces)
- {
- foreach (NavMeshSurface s in surfaces)
- ClearSurface(s);
- }
-
- static void SetNavMeshData(NavMeshSurface navSurface, NavMeshData navMeshData)
- {
- var so = new SerializedObject(navSurface);
- var navMeshDataProperty = so.FindProperty("m_NavMeshData");
- navMeshDataProperty.objectReferenceValue = navMeshData;
- so.ApplyModifiedPropertiesWithoutUndo();
- }
-
- void StoreNavMeshDataIfInPrefab(NavMeshSurface surfaceToStore)
- {
- var prefabStage = PrefabStageUtility.GetPrefabStage(surfaceToStore.gameObject);
- var isPartOfPrefab = prefabStage != null && prefabStage.IsPartOfPrefabContents(surfaceToStore.gameObject);
- if (!isPartOfPrefab)
- return;
-
- // check if data has already been stored for this surface
- foreach (var storedAssetInfo in m_PrefabNavMeshDataAssets)
- if (storedAssetInfo.surface == surfaceToStore)
- return;
-
- if (m_PrefabNavMeshDataAssets.Count == 0)
- {
- PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces;
- PrefabStage.prefabSaving += DeleteStoredNavMeshDataAssetsForOwnedSurfaces;
-
- PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges;
- PrefabStage.prefabStageClosing += ForgetUnsavedNavMeshDataChanges;
- }
-
- var isDataOwner = true;
- if (PrefabUtility.IsPartOfPrefabInstance(surfaceToStore) && !PrefabUtility.IsPartOfModelPrefab(surfaceToStore))
- {
- var basePrefabSurface = PrefabUtility.GetCorrespondingObjectFromSource(surfaceToStore) as NavMeshSurface;
- isDataOwner = basePrefabSurface == null || surfaceToStore.navMeshData != basePrefabSurface.navMeshData;
- }
- m_PrefabNavMeshDataAssets.Add(new SavedPrefabNavMeshData { surface = surfaceToStore, navMeshData = isDataOwner ? surfaceToStore.navMeshData : null });
- }
-
- bool IsCurrentPrefabNavMeshDataStored(NavMeshSurface surface)
- {
- if (surface == null)
- return false;
-
- foreach (var storedAssetInfo in m_PrefabNavMeshDataAssets)
- {
- if (storedAssetInfo.surface == surface)
- return storedAssetInfo.navMeshData == surface.navMeshData;
- }
-
- return false;
- }
-
- void DeleteStoredNavMeshDataAssetsForOwnedSurfaces(GameObject gameObjectInPrefab)
- {
- // Debug.LogFormat("DeleteStoredNavMeshDataAsset() when saving prefab {0}", gameObjectInPrefab.name);
-
- var surfaces = gameObjectInPrefab.GetComponentsInChildren(true);
- foreach (var surface in surfaces)
- DeleteStoredPrefabNavMeshDataAsset(surface);
- }
-
- void DeleteStoredPrefabNavMeshDataAsset(NavMeshSurface surface)
- {
- for (var i = m_PrefabNavMeshDataAssets.Count - 1; i >= 0; i--)
- {
- var storedAssetInfo = m_PrefabNavMeshDataAssets[i];
- if (storedAssetInfo.surface == surface)
- {
- var storedNavMeshData = storedAssetInfo.navMeshData;
- if (storedNavMeshData != null && storedNavMeshData != surface.navMeshData)
- {
- var assetPath = AssetDatabase.GetAssetPath(storedNavMeshData);
- AssetDatabase.DeleteAsset(assetPath);
- }
-
- m_PrefabNavMeshDataAssets.RemoveAt(i);
- break;
- }
- }
-
- if (m_PrefabNavMeshDataAssets.Count == 0)
- {
- PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces;
- PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges;
- }
- }
-
- void ForgetUnsavedNavMeshDataChanges(PrefabStage prefabStage)
- {
- // Debug.Log("On prefab closing - forget about this object's surfaces and stop caring about prefab saving");
-
- if (prefabStage == null)
- return;
-
- var allSurfacesInPrefab = prefabStage.prefabContentsRoot.GetComponentsInChildren(true);
- NavMeshSurface surfaceInPrefab = null;
- var index = 0;
- do
- {
- if (allSurfacesInPrefab.Length > 0)
- surfaceInPrefab = allSurfacesInPrefab[index];
-
- for (var i = m_PrefabNavMeshDataAssets.Count - 1; i >= 0; i--)
- {
- var storedPrefabInfo = m_PrefabNavMeshDataAssets[i];
- if (storedPrefabInfo.surface == null)
- {
- // Debug.LogFormat("A surface from the prefab got deleted after it has baked a new NavMesh but it hasn't saved it. Now the unsaved asset gets deleted. ({0})", storedPrefabInfo.navMeshData);
-
- // surface got deleted, thus delete its initial NavMeshData asset
- if (storedPrefabInfo.navMeshData != null)
- {
- var assetPath = AssetDatabase.GetAssetPath(storedPrefabInfo.navMeshData);
- AssetDatabase.DeleteAsset(assetPath);
- }
-
- m_PrefabNavMeshDataAssets.RemoveAt(i);
- }
- else if (surfaceInPrefab != null && storedPrefabInfo.surface == surfaceInPrefab)
- {
- //Debug.LogFormat("The surface {0} from the prefab was storing the original navmesh data and now will be forgotten", surfaceInPrefab);
-
- var baseSurface = PrefabUtility.GetCorrespondingObjectFromSource(surfaceInPrefab) as NavMeshSurface;
- if (baseSurface == null || surfaceInPrefab.navMeshData != baseSurface.navMeshData)
- {
- var assetPath = AssetDatabase.GetAssetPath(surfaceInPrefab.navMeshData);
- AssetDatabase.DeleteAsset(assetPath);
-
- //Debug.LogFormat("The surface {0} from the prefab has baked new NavMeshData but did not save this change so the asset has been now deleted. ({1})",
- // surfaceInPrefab, assetPath);
- }
-
- m_PrefabNavMeshDataAssets.RemoveAt(i);
- }
- }
- } while (++index < allSurfacesInPrefab.Length);
-
- if (m_PrefabNavMeshDataAssets.Count == 0)
- {
- PrefabStage.prefabSaving -= DeleteStoredNavMeshDataAssetsForOwnedSurfaces;
- PrefabStage.prefabStageClosing -= ForgetUnsavedNavMeshDataChanges;
- }
- }
- }
-}
diff --git a/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef b/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef
deleted file mode 100755
index 3c9827e71..000000000
--- a/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "name": "NavMeshComponentsEditor",
- "references": [
- "NavMeshComponents"
- ],
- "optionalUnityReferences": [],
- "includePlatforms": [
- "Editor"
- ],
- "excludePlatforms": [],
- "allowUnsafeCode": false,
- "overrideReferences": false,
- "precompiledReferences": [],
- "autoReferenced": true,
- "defineConstraints": []
-}
\ No newline at end of file
diff --git a/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef.meta b/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef.meta
deleted file mode 100755
index 75ca4c260..000000000
--- a/Assets/NavMeshComponents/Editor/NavMeshComponentsEditor.asmdef.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 86c9d8e67265f41469be06142c397d17
-AssemblyDefinitionImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/NavMeshComponents/Editor/NavMeshComponentsGUIUtility.cs b/Assets/NavMeshComponents/Editor/NavMeshComponentsGUIUtility.cs
deleted file mode 100755
index 0d3a676b6..000000000
--- a/Assets/NavMeshComponents/Editor/NavMeshComponentsGUIUtility.cs
+++ /dev/null
@@ -1,258 +0,0 @@
-using UnityEngine;
-using UnityEngine.AI;
-
-namespace UnityEditor.AI
-{
- public static class NavMeshComponentsGUIUtility
- {
- public static void AreaPopup(string labelName, SerializedProperty areaProperty)
- {
- var areaIndex = -1;
- var areaNames = GameObjectUtility.GetNavMeshAreaNames();
- for (var i = 0; i < areaNames.Length; i++)
- {
- var areaValue = GameObjectUtility.GetNavMeshAreaFromName(areaNames[i]);
- if (areaValue == areaProperty.intValue)
- areaIndex = i;
- }
- ArrayUtility.Add(ref areaNames, "");
- ArrayUtility.Add(ref areaNames, "Open Area Settings...");
-
- var rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight);
- EditorGUI.BeginProperty(rect, GUIContent.none, areaProperty);
-
- EditorGUI.BeginChangeCheck();
- areaIndex = EditorGUI.Popup(rect, labelName, areaIndex, areaNames);
-
- if (EditorGUI.EndChangeCheck())
- {
- if (areaIndex >= 0 && areaIndex < areaNames.Length - 2)
- areaProperty.intValue = GameObjectUtility.GetNavMeshAreaFromName(areaNames[areaIndex]);
- else if (areaIndex == areaNames.Length - 1)
- NavMeshEditorHelpers.OpenAreaSettings();
- }
-
- EditorGUI.EndProperty();
- }
-
- public static void AgentTypePopup(string labelName, SerializedProperty agentTypeID)
- {
- var index = -1;
- var count = NavMesh.GetSettingsCount();
- var agentTypeNames = new string[count + 2];
- for (var i = 0; i < count; i++)
- {
- var id = NavMesh.GetSettingsByIndex(i).agentTypeID;
- var name = NavMesh.GetSettingsNameFromID(id);
- agentTypeNames[i] = name;
- if (id == agentTypeID.intValue)
- index = i;
- }
- agentTypeNames[count] = "";
- agentTypeNames[count + 1] = "Open Agent Settings...";
-
- bool validAgentType = index != -1;
- if (!validAgentType)
- {
- EditorGUILayout.HelpBox("Agent Type invalid.", MessageType.Warning);
- }
-
- var rect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight);
- EditorGUI.BeginProperty(rect, GUIContent.none, agentTypeID);
-
- EditorGUI.BeginChangeCheck();
- index = EditorGUI.Popup(rect, labelName, index, agentTypeNames);
- if (EditorGUI.EndChangeCheck())
- {
- if (index >= 0 && index < count)
- {
- var id = NavMesh.GetSettingsByIndex(index).agentTypeID;
- agentTypeID.intValue = id;
- }
- else if (index == count + 1)
- {
- NavMeshEditorHelpers.OpenAgentSettings(-1);
- }
- }
-
- EditorGUI.EndProperty();
- }
-
- // Agent mask is a set (internally array/list) of agentTypeIDs.
- // It is used to describe which agents modifiers apply to.
- // There is a special case of "None" which is an empty array.
- // There is a special case of "All" which is an array of length 1, and value of -1.
- public static void AgentMaskPopup(string labelName, SerializedProperty agentMask)
- {
- // Contents of the dropdown box.
- string popupContent = "";
-
- if (agentMask.hasMultipleDifferentValues)
- popupContent = "\u2014";
- else
- popupContent = GetAgentMaskLabelName(agentMask);
-
- var content = new GUIContent(popupContent);
- var popupRect = GUILayoutUtility.GetRect(content, EditorStyles.popup);
-
- EditorGUI.BeginProperty(popupRect, GUIContent.none, agentMask);
- popupRect = EditorGUI.PrefixLabel(popupRect, 0, new GUIContent(labelName));
- bool pressed = GUI.Button(popupRect, content, EditorStyles.popup);
-
- if (pressed)
- {
- var show = !agentMask.hasMultipleDifferentValues;
- var showNone = show && agentMask.arraySize == 0;
- var showAll = show && IsAll(agentMask);
-
- var menu = new GenericMenu();
- menu.AddItem(new GUIContent("None"), showNone, SetAgentMaskNone, agentMask);
- menu.AddItem(new GUIContent("All"), showAll, SetAgentMaskAll, agentMask);
- menu.AddSeparator("");
-
- var count = NavMesh.GetSettingsCount();
- for (var i = 0; i < count; i++)
- {
- var id = NavMesh.GetSettingsByIndex(i).agentTypeID;
- var sname = NavMesh.GetSettingsNameFromID(id);
-
- var showSelected = show && AgentMaskHasSelectedAgentTypeID(agentMask, id);
- var userData = new object[] { agentMask, id, !showSelected };
- menu.AddItem(new GUIContent(sname), showSelected, ToggleAgentMaskItem, userData);
- }
-
- menu.DropDown(popupRect);
- }
-
- EditorGUI.EndProperty();
- }
-
- public static GameObject CreateAndSelectGameObject(string suggestedName, GameObject parent)
- {
- var parentTransform = parent != null ? parent.transform : null;
- var uniqueName = GameObjectUtility.GetUniqueNameForSibling(parentTransform, suggestedName);
- var child = new GameObject(uniqueName);
-
- Undo.RegisterCreatedObjectUndo(child, "Create " + uniqueName);
- if (parentTransform != null)
- Undo.SetTransformParent(child.transform, parentTransform, "Parent " + uniqueName);
-
- Selection.activeGameObject = child;
-
- return child;
- }
-
- static bool IsAll(SerializedProperty agentMask)
- {
- return agentMask.arraySize == 1 && agentMask.GetArrayElementAtIndex(0).intValue == -1;
- }
-
- static void ToggleAgentMaskItem(object userData)
- {
- var args = (object[])userData;
- var agentMask = (SerializedProperty)args[0];
- var agentTypeID = (int)args[1];
- var value = (bool)args[2];
-
- ToggleAgentMaskItem(agentMask, agentTypeID, value);
- }
-
- static void ToggleAgentMaskItem(SerializedProperty agentMask, int agentTypeID, bool value)
- {
- if (agentMask.hasMultipleDifferentValues)
- {
- agentMask.ClearArray();
- agentMask.serializedObject.ApplyModifiedProperties();
- }
-
- // Find which index this agent type is in the agentMask array.
- int idx = -1;
- for (var j = 0; j < agentMask.arraySize; j++)
- {
- var elem = agentMask.GetArrayElementAtIndex(j);
- if (elem.intValue == agentTypeID)
- idx = j;
- }
-
- // Handle "All" special case.
- if (IsAll(agentMask))
- {
- agentMask.DeleteArrayElementAtIndex(0);
- }
-
- // Toggle value.
- if (value)
- {
- if (idx == -1)
- {
- agentMask.InsertArrayElementAtIndex(agentMask.arraySize);
- agentMask.GetArrayElementAtIndex(agentMask.arraySize - 1).intValue = agentTypeID;
- }
- }
- else
- {
- if (idx != -1)
- {
- agentMask.DeleteArrayElementAtIndex(idx);
- }
- }
-
- agentMask.serializedObject.ApplyModifiedProperties();
- }
-
- static void SetAgentMaskNone(object data)
- {
- var agentMask = (SerializedProperty)data;
- agentMask.ClearArray();
- agentMask.serializedObject.ApplyModifiedProperties();
- }
-
- static void SetAgentMaskAll(object data)
- {
- var agentMask = (SerializedProperty)data;
- agentMask.ClearArray();
- agentMask.InsertArrayElementAtIndex(0);
- agentMask.GetArrayElementAtIndex(0).intValue = -1;
- agentMask.serializedObject.ApplyModifiedProperties();
- }
-
- static string GetAgentMaskLabelName(SerializedProperty agentMask)
- {
- if (agentMask.arraySize == 0)
- return "None";
-
- if (IsAll(agentMask))
- return "All";
-
- if (agentMask.arraySize <= 3)
- {
- var labelName = "";
- for (var j = 0; j < agentMask.arraySize; j++)
- {
- var elem = agentMask.GetArrayElementAtIndex(j);
- var settingsName = NavMesh.GetSettingsNameFromID(elem.intValue);
- if (string.IsNullOrEmpty(settingsName))
- continue;
-
- if (labelName.Length > 0)
- labelName += ", ";
- labelName += settingsName;
- }
- return labelName;
- }
-
- return "Mixed...";
- }
-
- static bool AgentMaskHasSelectedAgentTypeID(SerializedProperty agentMask, int agentTypeID)
- {
- for (var j = 0; j < agentMask.arraySize; j++)
- {
- var elem = agentMask.GetArrayElementAtIndex(j);
- if (elem.intValue == agentTypeID)
- return true;
- }
- return false;
- }
- }
-}
diff --git a/Assets/NavMeshComponents/Editor/NavMeshLinkEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshLinkEditor.cs
deleted file mode 100755
index cc4941b53..000000000
--- a/Assets/NavMeshComponents/Editor/NavMeshLinkEditor.cs
+++ /dev/null
@@ -1,279 +0,0 @@
-using UnityEngine;
-using UnityEngine.AI;
-
-namespace UnityEditor.AI
-{
- [CanEditMultipleObjects]
- [CustomEditor(typeof(NavMeshLink))]
- class NavMeshLinkEditor : Editor
- {
- SerializedProperty m_AgentTypeID;
- SerializedProperty m_Area;
- SerializedProperty m_CostModifier;
- SerializedProperty m_AutoUpdatePosition;
- SerializedProperty m_Bidirectional;
- SerializedProperty m_EndPoint;
- SerializedProperty m_StartPoint;
- SerializedProperty m_Width;
-
- static int s_SelectedID;
- static int s_SelectedPoint = -1;
-
- static Color s_HandleColor = new Color(255f, 167f, 39f, 210f) / 255;
- static Color s_HandleColorDisabled = new Color(255f * 0.75f, 167f * 0.75f, 39f * 0.75f, 100f) / 255;
-
- void OnEnable()
- {
- m_AgentTypeID = serializedObject.FindProperty("m_AgentTypeID");
- m_Area = serializedObject.FindProperty("m_Area");
- m_CostModifier = serializedObject.FindProperty("m_CostModifier");
- m_AutoUpdatePosition = serializedObject.FindProperty("m_AutoUpdatePosition");
- m_Bidirectional = serializedObject.FindProperty("m_Bidirectional");
- m_EndPoint = serializedObject.FindProperty("m_EndPoint");
- m_StartPoint = serializedObject.FindProperty("m_StartPoint");
- m_Width = serializedObject.FindProperty("m_Width");
-
- s_SelectedID = 0;
- s_SelectedPoint = -1;
-
- NavMeshVisualizationSettings.showNavigation++;
- }
-
- void OnDisable()
- {
- NavMeshVisualizationSettings.showNavigation--;
- }
-
- static Matrix4x4 UnscaledLocalToWorldMatrix(Transform t)
- {
- return Matrix4x4.TRS(t.position, t.rotation, Vector3.one);
- }
-
- void AlignTransformToEndPoints(NavMeshLink navLink)
- {
- var mat = UnscaledLocalToWorldMatrix(navLink.transform);
-
- var worldStartPt = mat.MultiplyPoint(navLink.startPoint);
- var worldEndPt = mat.MultiplyPoint(navLink.endPoint);
-
- var forward = worldEndPt - worldStartPt;
- var up = navLink.transform.up;
-
- // Flatten
- forward -= Vector3.Dot(up, forward) * up;
-
- var transform = navLink.transform;
- transform.rotation = Quaternion.LookRotation(forward, up);
- transform.position = (worldEndPt + worldStartPt) * 0.5f;
- transform.localScale = Vector3.one;
-
- navLink.startPoint = transform.InverseTransformPoint(worldStartPt);
- navLink.endPoint = transform.InverseTransformPoint(worldEndPt);
- }
-
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
-
- NavMeshComponentsGUIUtility.AgentTypePopup("Agent Type", m_AgentTypeID);
- EditorGUILayout.Space();
-
- EditorGUILayout.PropertyField(m_StartPoint);
- EditorGUILayout.PropertyField(m_EndPoint);
-
- GUILayout.BeginHorizontal();
- GUILayout.Space(EditorGUIUtility.labelWidth);
- if (GUILayout.Button("Swap"))
- {
- foreach (NavMeshLink navLink in targets)
- {
- var tmp = navLink.startPoint;
- navLink.startPoint = navLink.endPoint;
- navLink.endPoint = tmp;
- }
- SceneView.RepaintAll();
- }
- if (GUILayout.Button("Align Transform"))
- {
- foreach (NavMeshLink navLink in targets)
- {
- Undo.RecordObject(navLink.transform, "Align Transform to End Points");
- Undo.RecordObject(navLink, "Align Transform to End Points");
- AlignTransformToEndPoints(navLink);
- }
- SceneView.RepaintAll();
- }
- GUILayout.EndHorizontal();
- EditorGUILayout.Space();
-
- EditorGUILayout.PropertyField(m_Width);
- EditorGUILayout.PropertyField(m_CostModifier);
- EditorGUILayout.PropertyField(m_AutoUpdatePosition);
- EditorGUILayout.PropertyField(m_Bidirectional);
-
- NavMeshComponentsGUIUtility.AreaPopup("Area Type", m_Area);
-
- serializedObject.ApplyModifiedProperties();
-
- EditorGUILayout.Space();
- }
-
- static Vector3 CalcLinkRight(NavMeshLink navLink)
- {
- var dir = navLink.endPoint - navLink.startPoint;
- return (new Vector3(-dir.z, 0.0f, dir.x)).normalized;
- }
-
- static void DrawLink(NavMeshLink navLink)
- {
- var right = CalcLinkRight(navLink);
- var rad = navLink.width * 0.5f;
-
- Gizmos.DrawLine(navLink.startPoint - right * rad, navLink.startPoint + right * rad);
- Gizmos.DrawLine(navLink.endPoint - right * rad, navLink.endPoint + right * rad);
- Gizmos.DrawLine(navLink.startPoint - right * rad, navLink.endPoint - right * rad);
- Gizmos.DrawLine(navLink.startPoint + right * rad, navLink.endPoint + right * rad);
- }
-
- [DrawGizmo(GizmoType.Selected | GizmoType.Active | GizmoType.Pickable)]
- static void RenderBoxGizmo(NavMeshLink navLink, GizmoType gizmoType)
- {
- if (!EditorApplication.isPlaying)
- navLink.UpdateLink();
-
- var color = s_HandleColor;
- if (!navLink.enabled)
- color = s_HandleColorDisabled;
-
- var oldColor = Gizmos.color;
- var oldMatrix = Gizmos.matrix;
-
- Gizmos.matrix = UnscaledLocalToWorldMatrix(navLink.transform);
-
- Gizmos.color = color;
- DrawLink(navLink);
-
- Gizmos.matrix = oldMatrix;
- Gizmos.color = oldColor;
-
- Gizmos.DrawIcon(navLink.transform.position, "NavMeshLink Icon", true);
- }
-
- [DrawGizmo(GizmoType.NotInSelectionHierarchy | GizmoType.Pickable)]
- static void RenderBoxGizmoNotSelected(NavMeshLink navLink, GizmoType gizmoType)
- {
- if (NavMeshVisualizationSettings.showNavigation > 0)
- {
- var color = s_HandleColor;
- if (!navLink.enabled)
- color = s_HandleColorDisabled;
-
- var oldColor = Gizmos.color;
- var oldMatrix = Gizmos.matrix;
-
- Gizmos.matrix = UnscaledLocalToWorldMatrix(navLink.transform);
-
- Gizmos.color = color;
- DrawLink(navLink);
-
- Gizmos.matrix = oldMatrix;
- Gizmos.color = oldColor;
- }
-
- Gizmos.DrawIcon(navLink.transform.position, "NavMeshLink Icon", true);
- }
-
- public void OnSceneGUI()
- {
- var navLink = (NavMeshLink)target;
- if (!navLink.enabled)
- return;
-
- var mat = UnscaledLocalToWorldMatrix(navLink.transform);
-
- var startPt = mat.MultiplyPoint(navLink.startPoint);
- var endPt = mat.MultiplyPoint(navLink.endPoint);
- var midPt = Vector3.Lerp(startPt, endPt, 0.35f);
- var startSize = HandleUtility.GetHandleSize(startPt);
- var endSize = HandleUtility.GetHandleSize(endPt);
- var midSize = HandleUtility.GetHandleSize(midPt);
-
- var zup = Quaternion.FromToRotation(Vector3.forward, Vector3.up);
- var right = mat.MultiplyVector(CalcLinkRight(navLink));
-
- var oldColor = Handles.color;
- Handles.color = s_HandleColor;
-
- Vector3 pos;
-
- if (navLink.GetInstanceID() == s_SelectedID && s_SelectedPoint == 0)
- {
- EditorGUI.BeginChangeCheck();
- Handles.CubeHandleCap(0, startPt, zup, 0.1f * startSize, Event.current.type);
- pos = Handles.PositionHandle(startPt, navLink.transform.rotation);
- if (EditorGUI.EndChangeCheck())
- {
- Undo.RecordObject(navLink, "Move link point");
- navLink.startPoint = mat.inverse.MultiplyPoint(pos);
- }
- }
- else
- {
- if (Handles.Button(startPt, zup, 0.1f * startSize, 0.1f * startSize, Handles.CubeHandleCap))
- {
- s_SelectedPoint = 0;
- s_SelectedID = navLink.GetInstanceID();
- }
- }
-
- if (navLink.GetInstanceID() == s_SelectedID && s_SelectedPoint == 1)
- {
- EditorGUI.BeginChangeCheck();
- Handles.CubeHandleCap(0, endPt, zup, 0.1f * startSize, Event.current.type);
- pos = Handles.PositionHandle(endPt, navLink.transform.rotation);
- if (EditorGUI.EndChangeCheck())
- {
- Undo.RecordObject(navLink, "Move link point");
- navLink.endPoint = mat.inverse.MultiplyPoint(pos);
- }
- }
- else
- {
- if (Handles.Button(endPt, zup, 0.1f * endSize, 0.1f * endSize, Handles.CubeHandleCap))
- {
- s_SelectedPoint = 1;
- s_SelectedID = navLink.GetInstanceID();
- }
- }
-
- EditorGUI.BeginChangeCheck();
- pos = Handles.Slider(midPt + right * navLink.width * 0.5f, right, midSize * 0.03f, Handles.DotHandleCap, 0);
- if (EditorGUI.EndChangeCheck())
- {
- Undo.RecordObject(navLink, "Adjust link width");
- navLink.width = Mathf.Max(0.0f, 2.0f * Vector3.Dot(right, (pos - midPt)));
- }
-
- EditorGUI.BeginChangeCheck();
- pos = Handles.Slider(midPt - right * navLink.width * 0.5f, -right, midSize * 0.03f, Handles.DotHandleCap, 0);
- if (EditorGUI.EndChangeCheck())
- {
- Undo.RecordObject(navLink, "Adjust link width");
- navLink.width = Mathf.Max(0.0f, 2.0f * Vector3.Dot(-right, (pos - midPt)));
- }
-
- Handles.color = oldColor;
- }
-
- [MenuItem("GameObject/AI/NavMesh Link", false, 2002)]
- static public void CreateNavMeshLink(MenuCommand menuCommand)
- {
- var parent = menuCommand.context as GameObject;
- GameObject go = NavMeshComponentsGUIUtility.CreateAndSelectGameObject("NavMesh Link", parent);
- go.AddComponent();
- var view = SceneView.lastActiveSceneView;
- if (view != null)
- view.MoveToView(go.transform);
- }
- }
-}
diff --git a/Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs
deleted file mode 100755
index a2c636ca5..000000000
--- a/Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using UnityEngine.AI;
-
-namespace UnityEditor.AI
-{
- [CanEditMultipleObjects]
- [CustomEditor(typeof(NavMeshModifier))]
- class NavMeshModifierEditor : Editor
- {
- SerializedProperty m_AffectedAgents;
- SerializedProperty m_Area;
- SerializedProperty m_IgnoreFromBuild;
- SerializedProperty m_OverrideArea;
-
- void OnEnable()
- {
- m_AffectedAgents = serializedObject.FindProperty("m_AffectedAgents");
- m_Area = serializedObject.FindProperty("m_Area");
- m_IgnoreFromBuild = serializedObject.FindProperty("m_IgnoreFromBuild");
- m_OverrideArea = serializedObject.FindProperty("m_OverrideArea");
-
- NavMeshVisualizationSettings.showNavigation++;
- }
-
- void OnDisable()
- {
- NavMeshVisualizationSettings.showNavigation--;
- }
-
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
-
- EditorGUILayout.PropertyField(m_IgnoreFromBuild);
-
- EditorGUILayout.PropertyField(m_OverrideArea);
- if (m_OverrideArea.boolValue)
- {
- EditorGUI.indentLevel++;
- NavMeshComponentsGUIUtility.AreaPopup("Area Type", m_Area);
- EditorGUI.indentLevel--;
- }
-
- NavMeshComponentsGUIUtility.AgentMaskPopup("Affected Agents", m_AffectedAgents);
- EditorGUILayout.Space();
-
- serializedObject.ApplyModifiedProperties();
- }
- }
-}
diff --git a/Assets/NavMeshComponents/Editor/NavMeshModifierVolumeEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshModifierVolumeEditor.cs
deleted file mode 100755
index c8f1778fc..000000000
--- a/Assets/NavMeshComponents/Editor/NavMeshModifierVolumeEditor.cs
+++ /dev/null
@@ -1,146 +0,0 @@
-using UnityEditor.IMGUI.Controls;
-using UnityEditorInternal;
-using UnityEngine.AI;
-using UnityEngine;
-
-namespace UnityEditor.AI
-{
- [CanEditMultipleObjects]
- [CustomEditor(typeof(NavMeshModifierVolume))]
- class NavMeshModifierVolumeEditor : Editor
- {
- SerializedProperty m_AffectedAgents;
- SerializedProperty m_Area;
- SerializedProperty m_Center;
- SerializedProperty m_Size;
-
- static Color s_HandleColor = new Color(187f, 138f, 240f, 210f) / 255;
- static Color s_HandleColorDisabled = new Color(187f * 0.75f, 138f * 0.75f, 240f * 0.75f, 100f) / 255;
-
- BoxBoundsHandle m_BoundsHandle = new BoxBoundsHandle();
-
- bool editingCollider
- {
- get { return EditMode.editMode == EditMode.SceneViewEditMode.Collider && EditMode.IsOwner(this); }
- }
-
- void OnEnable()
- {
- m_AffectedAgents = serializedObject.FindProperty("m_AffectedAgents");
- m_Area = serializedObject.FindProperty("m_Area");
- m_Center = serializedObject.FindProperty("m_Center");
- m_Size = serializedObject.FindProperty("m_Size");
-
- NavMeshVisualizationSettings.showNavigation++;
- }
-
- void OnDisable()
- {
- NavMeshVisualizationSettings.showNavigation--;
- }
-
- Bounds GetBounds()
- {
- var navModifier = (NavMeshModifierVolume)target;
- return new Bounds(navModifier.transform.position, navModifier.size);
- }
-
- public override void OnInspectorGUI()
- {
- serializedObject.Update();
-
- EditMode.DoEditModeInspectorModeButton(EditMode.SceneViewEditMode.Collider, "Edit Volume",
- EditorGUIUtility.IconContent("EditCollider"), GetBounds, this);
-
- EditorGUILayout.PropertyField(m_Size);
- EditorGUILayout.PropertyField(m_Center);
-
- NavMeshComponentsGUIUtility.AreaPopup("Area Type", m_Area);
- NavMeshComponentsGUIUtility.AgentMaskPopup("Affected Agents", m_AffectedAgents);
- EditorGUILayout.Space();
-
- serializedObject.ApplyModifiedProperties();
- }
-
- [DrawGizmo(GizmoType.Selected | GizmoType.Active)]
- static void RenderBoxGizmo(NavMeshModifierVolume navModifier, GizmoType gizmoType)
- {
- var color = navModifier.enabled ? s_HandleColor : s_HandleColorDisabled;
- var colorTrans = new Color(color.r * 0.75f, color.g * 0.75f, color.b * 0.75f, color.a * 0.15f);
-
- var oldColor = Gizmos.color;
- var oldMatrix = Gizmos.matrix;
-
- Gizmos.matrix = navModifier.transform.localToWorldMatrix;
-
- Gizmos.color = colorTrans;
- Gizmos.DrawCube(navModifier.center, navModifier.size);
-
- Gizmos.color = color;
- Gizmos.DrawWireCube(navModifier.center, navModifier.size);
-
- Gizmos.matrix = oldMatrix;
- Gizmos.color = oldColor;
-
- Gizmos.DrawIcon(navModifier.transform.position, "NavMeshModifierVolume Icon", true);
- }
-
- [DrawGizmo(GizmoType.NotInSelectionHierarchy | GizmoType.Pickable)]
- static void RenderBoxGizmoNotSelected(NavMeshModifierVolume navModifier, GizmoType gizmoType)
- {
- if (NavMeshVisualizationSettings.showNavigation > 0)
- {
- var color = navModifier.enabled ? s_HandleColor : s_HandleColorDisabled;
- var oldColor = Gizmos.color;
- var oldMatrix = Gizmos.matrix;
-
- Gizmos.matrix = navModifier.transform.localToWorldMatrix;
-
- Gizmos.color = color;
- Gizmos.DrawWireCube(navModifier.center, navModifier.size);
-
- Gizmos.matrix = oldMatrix;
- Gizmos.color = oldColor;
- }
-
- Gizmos.DrawIcon(navModifier.transform.position, "NavMeshModifierVolume Icon", true);
- }
-
- void OnSceneGUI()
- {
- if (!editingCollider)
- return;
-
- var vol = (NavMeshModifierVolume)target;
- var color = vol.enabled ? s_HandleColor : s_HandleColorDisabled;
- using (new Handles.DrawingScope(color, vol.transform.localToWorldMatrix))
- {
- m_BoundsHandle.center = vol.center;
- m_BoundsHandle.size = vol.size;
-
- EditorGUI.BeginChangeCheck();
- m_BoundsHandle.DrawHandle();
- if (EditorGUI.EndChangeCheck())
- {
- Undo.RecordObject(vol, "Modified NavMesh Modifier Volume");
- Vector3 center = m_BoundsHandle.center;
- Vector3 size = m_BoundsHandle.size;
- vol.center = center;
- vol.size = size;
- EditorUtility.SetDirty(target);
- }
- }
- }
-
- [MenuItem("GameObject/AI/NavMesh Modifier Volume", false, 2001)]
- static public void CreateNavMeshModifierVolume(MenuCommand menuCommand)
- {
- var parent = menuCommand.context as GameObject;
- var go = NavMeshComponentsGUIUtility.CreateAndSelectGameObject("NavMesh Modifier Volume", parent);
- go.AddComponent();
- var view = SceneView.lastActiveSceneView;
- if (view != null)
- view.MoveToView(go.transform);
- }
- }
-}
diff --git a/Assets/NavMeshComponents/Editor/NavMeshModifierVolumeEditor.cs.meta b/Assets/NavMeshComponents/Editor/NavMeshModifierVolumeEditor.cs.meta
deleted file mode 100755
index f974eb478..000000000
--- a/Assets/NavMeshComponents/Editor/NavMeshModifierVolumeEditor.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: c0f3bef2a67ae4e139538afec3e59b03
-timeCreated: 1477036743
-licenseType: Pro
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs b/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs
deleted file mode 100755
index c9f006890..000000000
--- a/Assets/NavMeshComponents/Editor/NavMeshSurfaceEditor.cs
+++ /dev/null
@@ -1,400 +0,0 @@
-#define NAVMESHCOMPONENTS_SHOW_NAVMESHDATA_REF
-
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using UnityEditor.Experimental.SceneManagement;
-using UnityEditor.IMGUI.Controls;
-using UnityEditor.SceneManagement;
-using UnityEditorInternal;
-using UnityEngine.AI;
-using UnityEngine;
-
-namespace UnityEditor.AI
-{
- [CanEditMultipleObjects]
- [CustomEditor(typeof(NavMeshSurface))]
- class NavMeshSurfaceEditor : Editor
- {
- SerializedProperty m_AgentTypeID;
- SerializedProperty m_BuildHeightMesh;
- SerializedProperty m_Center;
- SerializedProperty m_CollectObjects;
- SerializedProperty m_DefaultArea;
- SerializedProperty m_LayerMask;
- SerializedProperty m_OverrideTileSize;
- SerializedProperty m_OverrideVoxelSize;
- SerializedProperty m_Size;
- SerializedProperty m_TileSize;
- SerializedProperty m_UseGeometry;
- SerializedProperty m_VoxelSize;
-
-#if NAVMESHCOMPONENTS_SHOW_NAVMESHDATA_REF
- SerializedProperty m_NavMeshData;
-#endif
- class Styles
- {
- public readonly GUIContent m_LayerMask = new GUIContent("Include Layers");
-
- public readonly GUIContent m_ShowInputGeom = new GUIContent("Show Input Geom");
- public readonly GUIContent m_ShowVoxels = new GUIContent("Show Voxels");
- public readonly GUIContent m_ShowRegions = new GUIContent("Show Regions");
- public readonly GUIContent m_ShowRawContours = new GUIContent("Show Raw Contours");
- public readonly GUIContent m_ShowContours = new GUIContent("Show Contours");
- public readonly GUIContent m_ShowPolyMesh = new GUIContent("Show Poly Mesh");
- public readonly GUIContent m_ShowPolyMeshDetail = new GUIContent("Show Poly Mesh Detail");
- }
-
- static Styles s_Styles;
-
- static bool s_ShowDebugOptions;
-
- static Color s_HandleColor = new Color(127f, 214f, 244f, 100f) / 255;
- static Color s_HandleColorSelected = new Color(127f, 214f, 244f, 210f) / 255;
- static Color s_HandleColorDisabled = new Color(127f * 0.75f, 214f * 0.75f, 244f * 0.75f, 100f) / 255;
-
- BoxBoundsHandle m_BoundsHandle = new BoxBoundsHandle();
-
- bool editingCollider
- {
- get { return EditMode.editMode == EditMode.SceneViewEditMode.Collider && EditMode.IsOwner(this); }
- }
-
- void OnEnable()
- {
- m_AgentTypeID = serializedObject.FindProperty("m_AgentTypeID");
- m_BuildHeightMesh = serializedObject.FindProperty("m_BuildHeightMesh");
- m_Center = serializedObject.FindProperty("m_Center");
- m_CollectObjects = serializedObject.FindProperty("m_CollectObjects");
- m_DefaultArea = serializedObject.FindProperty("m_DefaultArea");
- m_LayerMask = serializedObject.FindProperty("m_LayerMask");
- m_OverrideTileSize = serializedObject.FindProperty("m_OverrideTileSize");
- m_OverrideVoxelSize = serializedObject.FindProperty("m_OverrideVoxelSize");
- m_Size = serializedObject.FindProperty("m_Size");
- m_TileSize = serializedObject.FindProperty("m_TileSize");
- m_UseGeometry = serializedObject.FindProperty("m_UseGeometry");
- m_VoxelSize = serializedObject.FindProperty("m_VoxelSize");
-
-#if NAVMESHCOMPONENTS_SHOW_NAVMESHDATA_REF
- m_NavMeshData = serializedObject.FindProperty("m_NavMeshData");
-#endif
- NavMeshVisualizationSettings.showNavigation++;
- }
-
- void OnDisable()
- {
- NavMeshVisualizationSettings.showNavigation--;
- }
-
- Bounds GetBounds()
- {
- var navSurface = (NavMeshSurface)target;
- return new Bounds(navSurface.transform.position, navSurface.size);
- }
-
- public override void OnInspectorGUI()
- {
- if (s_Styles == null)
- s_Styles = new Styles();
-
- serializedObject.Update();
-
- var bs = NavMesh.GetSettingsByID(m_AgentTypeID.intValue);
-
- if (bs.agentTypeID != -1)
- {
- // Draw image
- const float diagramHeight = 80.0f;
- Rect agentDiagramRect = EditorGUILayout.GetControlRect(false, diagramHeight);
- NavMeshEditorHelpers.DrawAgentDiagram(agentDiagramRect, bs.agentRadius, bs.agentHeight, bs.agentClimb, bs.agentSlope);
- }
- NavMeshComponentsGUIUtility.AgentTypePopup("Agent Type", m_AgentTypeID);
-
- EditorGUILayout.Space();
-
- EditorGUILayout.PropertyField(m_CollectObjects);
- if ((CollectObjects)m_CollectObjects.enumValueIndex == CollectObjects.Volume)
- {
- EditorGUI.indentLevel++;
-
- EditMode.DoEditModeInspectorModeButton(EditMode.SceneViewEditMode.Collider, "Edit Volume",
- EditorGUIUtility.IconContent("EditCollider"), GetBounds, this);
- EditorGUILayout.PropertyField(m_Size);
- EditorGUILayout.PropertyField(m_Center);
-
- EditorGUI.indentLevel--;
- }
- else
- {
- if (editingCollider)
- EditMode.QuitEditMode();
- }
-
- EditorGUILayout.PropertyField(m_LayerMask, s_Styles.m_LayerMask);
- EditorGUILayout.PropertyField(m_UseGeometry);
-
- EditorGUILayout.Space();
-
- m_OverrideVoxelSize.isExpanded = EditorGUILayout.Foldout(m_OverrideVoxelSize.isExpanded, "Advanced");
- if (m_OverrideVoxelSize.isExpanded)
- {
- EditorGUI.indentLevel++;
-
- NavMeshComponentsGUIUtility.AreaPopup("Default Area", m_DefaultArea);
-
- // Override voxel size.
- EditorGUILayout.PropertyField(m_OverrideVoxelSize);
-
- using (new EditorGUI.DisabledScope(!m_OverrideVoxelSize.boolValue || m_OverrideVoxelSize.hasMultipleDifferentValues))
- {
- EditorGUI.indentLevel++;
-
- EditorGUILayout.PropertyField(m_VoxelSize);
-
- if (!m_OverrideVoxelSize.hasMultipleDifferentValues)
- {
- if (!m_AgentTypeID.hasMultipleDifferentValues)
- {
- float voxelsPerRadius = m_VoxelSize.floatValue > 0.0f ? (bs.agentRadius / m_VoxelSize.floatValue) : 0.0f;
- EditorGUILayout.LabelField(" ", voxelsPerRadius.ToString("0.00") + " voxels per agent radius", EditorStyles.miniLabel);
- }
- if (m_OverrideVoxelSize.boolValue)
- EditorGUILayout.HelpBox("Voxel size controls how accurately the navigation mesh is generated from the level geometry. A good voxel size is 2-4 voxels per agent radius. Making voxel size smaller will increase build time.", MessageType.None);
- }
- EditorGUI.indentLevel--;
- }
-
- // Override tile size
- EditorGUILayout.PropertyField(m_OverrideTileSize);
-
- using (new EditorGUI.DisabledScope(!m_OverrideTileSize.boolValue || m_OverrideTileSize.hasMultipleDifferentValues))
- {
- EditorGUI.indentLevel++;
-
- EditorGUILayout.PropertyField(m_TileSize);
-
- if (!m_TileSize.hasMultipleDifferentValues && !m_VoxelSize.hasMultipleDifferentValues)
- {
- float tileWorldSize = m_TileSize.intValue * m_VoxelSize.floatValue;
- EditorGUILayout.LabelField(" ", tileWorldSize.ToString("0.00") + " world units", EditorStyles.miniLabel);
- }
-
- if (!m_OverrideTileSize.hasMultipleDifferentValues)
- {
- if (m_OverrideTileSize.boolValue)
- EditorGUILayout.HelpBox("Tile size controls the how local the changes to the world are (rebuild or carve). Small tile size allows more local changes, while potentially generating more data overall.", MessageType.None);
- }
- EditorGUI.indentLevel--;
- }
-
-
- // Height mesh
- using (new EditorGUI.DisabledScope(true))
- {
- EditorGUILayout.PropertyField(m_BuildHeightMesh);
- }
-
- EditorGUILayout.Space();
- EditorGUI.indentLevel--;
- }
-
- EditorGUILayout.Space();
-
- serializedObject.ApplyModifiedProperties();
-
- var hadError = false;
- var multipleTargets = targets.Length > 1;
- foreach (NavMeshSurface navSurface in targets)
- {
- var settings = navSurface.GetBuildSettings();
- // Calculating bounds is potentially expensive when unbounded - so here we just use the center/size.
- // It means the validation is not checking vertical voxel limit correctly when the surface is set to something else than "in volume".
- var bounds = new Bounds(Vector3.zero, Vector3.zero);
- if (navSurface.collectObjects == CollectObjects.Volume)
- {
- bounds = new Bounds(navSurface.center, navSurface.size);
- }
-
- var errors = settings.ValidationReport(bounds);
- if (errors.Length > 0)
- {
- if (multipleTargets)
- EditorGUILayout.LabelField(navSurface.name);
- foreach (var err in errors)
- {
- EditorGUILayout.HelpBox(err, MessageType.Warning);
- }
- GUILayout.BeginHorizontal();
- GUILayout.Space(EditorGUIUtility.labelWidth);
- if (GUILayout.Button("Open Agent Settings...", EditorStyles.miniButton))
- NavMeshEditorHelpers.OpenAgentSettings(navSurface.agentTypeID);
- GUILayout.EndHorizontal();
- hadError = true;
- }
- }
-
- if (hadError)
- EditorGUILayout.Space();
-
-#if NAVMESHCOMPONENTS_SHOW_NAVMESHDATA_REF
- var nmdRect = EditorGUILayout.GetControlRect(true, EditorGUIUtility.singleLineHeight);
-
- EditorGUI.BeginProperty(nmdRect, GUIContent.none, m_NavMeshData);
- var rectLabel = EditorGUI.PrefixLabel(nmdRect, GUIUtility.GetControlID(FocusType.Passive), new GUIContent(m_NavMeshData.displayName));
- EditorGUI.EndProperty();
-
- using (new EditorGUI.DisabledScope(true))
- {
- EditorGUI.BeginProperty(nmdRect, GUIContent.none, m_NavMeshData);
- EditorGUI.ObjectField(rectLabel, m_NavMeshData, GUIContent.none);
- EditorGUI.EndProperty();
- }
-#endif
- using (new EditorGUI.DisabledScope(Application.isPlaying || m_AgentTypeID.intValue == -1))
- {
- GUILayout.BeginHorizontal();
- GUILayout.Space(EditorGUIUtility.labelWidth);
- if (GUILayout.Button("Clear"))
- {
- NavMeshAssetManager.instance.ClearSurfaces(targets);
- SceneView.RepaintAll();
- }
-
- if (GUILayout.Button("Bake"))
- {
- NavMeshAssetManager.instance.StartBakingSurfaces(targets);
- }
-
- GUILayout.EndHorizontal();
- }
-
- // Show progress for the selected targets
- var bakeOperations = NavMeshAssetManager.instance.GetBakeOperations();
- for (int i = bakeOperations.Count - 1; i >= 0; --i)
- {
- if (!targets.Contains(bakeOperations[i].surface))
- continue;
-
- var oper = bakeOperations[i].bakeOperation;
- if (oper == null)
- continue;
-
- var p = oper.progress;
- if (oper.isDone)
- {
- SceneView.RepaintAll();
- continue;
- }
-
- GUILayout.BeginHorizontal();
-
- if (GUILayout.Button("Cancel", EditorStyles.miniButton))
- {
- var bakeData = bakeOperations[i].bakeData;
- UnityEngine.AI.NavMeshBuilder.Cancel(bakeData);
- bakeOperations.RemoveAt(i);
- }
-
- EditorGUI.ProgressBar(EditorGUILayout.GetControlRect(), p, "Baking: " + (int)(100 * p) + "%");
- if (p <= 1)
- Repaint();
-
- GUILayout.EndHorizontal();
- }
- }
-
- [DrawGizmo(GizmoType.Selected | GizmoType.Active | GizmoType.Pickable)]
- static void RenderBoxGizmoSelected(NavMeshSurface navSurface, GizmoType gizmoType)
- {
- RenderBoxGizmo(navSurface, gizmoType, true);
- }
-
- [DrawGizmo(GizmoType.NotInSelectionHierarchy | GizmoType.Pickable)]
- static void RenderBoxGizmoNotSelected(NavMeshSurface navSurface, GizmoType gizmoType)
- {
- if (NavMeshVisualizationSettings.showNavigation > 0)
- RenderBoxGizmo(navSurface, gizmoType, false);
- else
- Gizmos.DrawIcon(navSurface.transform.position, "NavMeshSurface Icon", true);
- }
-
- static void RenderBoxGizmo(NavMeshSurface navSurface, GizmoType gizmoType, bool selected)
- {
- var color = selected ? s_HandleColorSelected : s_HandleColor;
- if (!navSurface.enabled)
- color = s_HandleColorDisabled;
-
- var oldColor = Gizmos.color;
- var oldMatrix = Gizmos.matrix;
-
- // Use the unscaled matrix for the NavMeshSurface
- var localToWorld = Matrix4x4.TRS(navSurface.transform.position, navSurface.transform.rotation, Vector3.one);
- Gizmos.matrix = localToWorld;
-
- if (navSurface.collectObjects == CollectObjects.Volume)
- {
- Gizmos.color = color;
- Gizmos.DrawWireCube(navSurface.center, navSurface.size);
-
- if (selected && navSurface.enabled)
- {
- var colorTrans = new Color(color.r * 0.75f, color.g * 0.75f, color.b * 0.75f, color.a * 0.15f);
- Gizmos.color = colorTrans;
- Gizmos.DrawCube(navSurface.center, navSurface.size);
- }
- }
- else
- {
- if (navSurface.navMeshData != null)
- {
- var bounds = navSurface.navMeshData.sourceBounds;
- Gizmos.color = Color.grey;
- Gizmos.DrawWireCube(bounds.center, bounds.size);
- }
- }
-
- Gizmos.matrix = oldMatrix;
- Gizmos.color = oldColor;
-
- Gizmos.DrawIcon(navSurface.transform.position, "NavMeshSurface Icon", true);
- }
-
- void OnSceneGUI()
- {
- if (!editingCollider)
- return;
-
- var navSurface = (NavMeshSurface)target;
- var color = navSurface.enabled ? s_HandleColor : s_HandleColorDisabled;
- var localToWorld = Matrix4x4.TRS(navSurface.transform.position, navSurface.transform.rotation, Vector3.one);
- using (new Handles.DrawingScope(color, localToWorld))
- {
- m_BoundsHandle.center = navSurface.center;
- m_BoundsHandle.size = navSurface.size;
-
- EditorGUI.BeginChangeCheck();
- m_BoundsHandle.DrawHandle();
- if (EditorGUI.EndChangeCheck())
- {
- Undo.RecordObject(navSurface, "Modified NavMesh Surface");
- Vector3 center = m_BoundsHandle.center;
- Vector3 size = m_BoundsHandle.size;
- navSurface.center = center;
- navSurface.size = size;
- EditorUtility.SetDirty(target);
- }
- }
- }
-
- [MenuItem("GameObject/AI/NavMesh Surface", false, 2000)]
- public static void CreateNavMeshSurface(MenuCommand menuCommand)
- {
- var parent = menuCommand.context as GameObject;
- var go = NavMeshComponentsGUIUtility.CreateAndSelectGameObject("NavMesh Surface", parent);
- go.AddComponent();
- var view = SceneView.lastActiveSceneView;
- if (view != null)
- view.MoveToView(go.transform);
- }
- }
-}
diff --git a/Assets/NavMeshComponents/Scripts.meta b/Assets/NavMeshComponents/Scripts.meta
deleted file mode 100755
index 1397beca8..000000000
--- a/Assets/NavMeshComponents/Scripts.meta
+++ /dev/null
@@ -1,9 +0,0 @@
-fileFormatVersion: 2
-guid: ce67aa87f613246dda63a54a59c6399e
-folderAsset: yes
-timeCreated: 1477656493
-licenseType: Pro
-DefaultImporter:
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef b/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef
deleted file mode 100755
index a54b5c28d..000000000
--- a/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "name": "NavMeshComponents",
- "references": [],
- "optionalUnityReferences": [],
- "includePlatforms": [],
- "excludePlatforms": [],
- "allowUnsafeCode": false,
- "overrideReferences": false,
- "precompiledReferences": [],
- "autoReferenced": true,
- "defineConstraints": []
-}
\ No newline at end of file
diff --git a/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef.meta b/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef.meta
deleted file mode 100755
index 5a7b65ce9..000000000
--- a/Assets/NavMeshComponents/Scripts/NavMeshComponents.asmdef.meta
+++ /dev/null
@@ -1,7 +0,0 @@
-fileFormatVersion: 2
-guid: 8c4dd21966739024fbd72155091d199e
-AssemblyDefinitionImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/NavMeshComponents/Scripts/NavMeshLink.cs b/Assets/NavMeshComponents/Scripts/NavMeshLink.cs
deleted file mode 100755
index 6a9210331..000000000
--- a/Assets/NavMeshComponents/Scripts/NavMeshLink.cs
+++ /dev/null
@@ -1,172 +0,0 @@
-using System.Collections.Generic;
-
-namespace UnityEngine.AI
-{
- [ExecuteInEditMode]
- [DefaultExecutionOrder(-101)]
- [AddComponentMenu("Navigation/NavMeshLink", 33)]
- [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")]
- public class NavMeshLink : MonoBehaviour
- {
- [SerializeField]
- int m_AgentTypeID;
- public int agentTypeID { get { return m_AgentTypeID; } set { m_AgentTypeID = value; UpdateLink(); } }
-
- [SerializeField]
- Vector3 m_StartPoint = new Vector3(0.0f, 0.0f, -2.5f);
- public Vector3 startPoint { get { return m_StartPoint; } set { m_StartPoint = value; UpdateLink(); } }
-
- [SerializeField]
- Vector3 m_EndPoint = new Vector3(0.0f, 0.0f, 2.5f);
- public Vector3 endPoint { get { return m_EndPoint; } set { m_EndPoint = value; UpdateLink(); } }
-
- [SerializeField]
- float m_Width;
- public float width { get { return m_Width; } set { m_Width = value; UpdateLink(); } }
-
- [SerializeField]
- int m_CostModifier = -1;
- public int costModifier { get { return m_CostModifier; } set { m_CostModifier = value; UpdateLink(); } }
-
- [SerializeField]
- bool m_Bidirectional = true;
- public bool bidirectional { get { return m_Bidirectional; } set { m_Bidirectional = value; UpdateLink(); } }
-
- [SerializeField]
- bool m_AutoUpdatePosition;
- public bool autoUpdate { get { return m_AutoUpdatePosition; } set { SetAutoUpdate(value); } }
-
- [SerializeField]
- int m_Area;
- public int area { get { return m_Area; } set { m_Area = value; UpdateLink(); } }
-
- NavMeshLinkInstance m_LinkInstance = new NavMeshLinkInstance();
-
- Vector3 m_LastPosition = Vector3.zero;
- Quaternion m_LastRotation = Quaternion.identity;
-
- static readonly List s_Tracked = new List();
-
- void OnEnable()
- {
- AddLink();
- if (m_AutoUpdatePosition && m_LinkInstance.valid)
- AddTracking(this);
- }
-
- void OnDisable()
- {
- RemoveTracking(this);
- m_LinkInstance.Remove();
- }
-
- public void UpdateLink()
- {
- m_LinkInstance.Remove();
- AddLink();
- }
-
- static void AddTracking(NavMeshLink link)
- {
-#if UNITY_EDITOR
- if (s_Tracked.Contains(link))
- {
- Debug.LogError("Link is already tracked: " + link);
- return;
- }
-#endif
-
- if (s_Tracked.Count == 0)
- NavMesh.onPreUpdate += UpdateTrackedInstances;
-
- s_Tracked.Add(link);
- }
-
- static void RemoveTracking(NavMeshLink link)
- {
- s_Tracked.Remove(link);
-
- if (s_Tracked.Count == 0)
- NavMesh.onPreUpdate -= UpdateTrackedInstances;
- }
-
- void SetAutoUpdate(bool value)
- {
- if (m_AutoUpdatePosition == value)
- return;
- m_AutoUpdatePosition = value;
- if (value)
- AddTracking(this);
- else
- RemoveTracking(this);
- }
-
- void AddLink()
- {
-#if UNITY_EDITOR
- if (m_LinkInstance.valid)
- {
- Debug.LogError("Link is already added: " + this);
- return;
- }
-#endif
-
- var link = new NavMeshLinkData();
- link.startPosition = m_StartPoint;
- link.endPosition = m_EndPoint;
- link.width = m_Width;
- link.costModifier = m_CostModifier;
- link.bidirectional = m_Bidirectional;
- link.area = m_Area;
- link.agentTypeID = m_AgentTypeID;
- m_LinkInstance = NavMesh.AddLink(link, transform.position, transform.rotation);
- if (m_LinkInstance.valid)
- m_LinkInstance.owner = this;
-
- m_LastPosition = transform.position;
- m_LastRotation = transform.rotation;
- }
-
- bool HasTransformChanged()
- {
- if (m_LastPosition != transform.position) return true;
- if (m_LastRotation != transform.rotation) return true;
- return false;
- }
-
- void OnDidApplyAnimationProperties()
- {
- UpdateLink();
- }
-
- static void UpdateTrackedInstances()
- {
- foreach (var instance in s_Tracked)
- {
- if (instance.HasTransformChanged())
- instance.UpdateLink();
- }
- }
-
-#if UNITY_EDITOR
- void OnValidate()
- {
- m_Width = Mathf.Max(0.0f, m_Width);
-
- if (!m_LinkInstance.valid)
- return;
-
- UpdateLink();
-
- if (!m_AutoUpdatePosition)
- {
- RemoveTracking(this);
- }
- else if (!s_Tracked.Contains(this))
- {
- AddTracking(this);
- }
- }
-#endif
- }
-}
diff --git a/Assets/NavMeshComponents/Scripts/NavMeshLink.cs.meta b/Assets/NavMeshComponents/Scripts/NavMeshLink.cs.meta
deleted file mode 100755
index 241e536e7..000000000
--- a/Assets/NavMeshComponents/Scripts/NavMeshLink.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 6eeb5dc026fdf4b488bc7ae0138ab719
-timeCreated: 1477924439
-licenseType: Pro
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {fileID: 2800000, guid: 92f4afa3e25264f5b964937ccea49ff2, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/NavMeshComponents/Scripts/NavMeshModifier.cs b/Assets/NavMeshComponents/Scripts/NavMeshModifier.cs
deleted file mode 100755
index f32e80c77..000000000
--- a/Assets/NavMeshComponents/Scripts/NavMeshModifier.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System.Collections.Generic;
-
-namespace UnityEngine.AI
-{
- [ExecuteInEditMode]
- [AddComponentMenu("Navigation/NavMeshModifier", 32)]
- [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")]
- public class NavMeshModifier : MonoBehaviour
- {
- [SerializeField]
- bool m_OverrideArea;
- public bool overrideArea { get { return m_OverrideArea; } set { m_OverrideArea = value; } }
-
- [SerializeField]
- int m_Area;
- public int area { get { return m_Area; } set { m_Area = value; } }
-
- [SerializeField]
- bool m_IgnoreFromBuild;
- public bool ignoreFromBuild { get { return m_IgnoreFromBuild; } set { m_IgnoreFromBuild = value; } }
-
- // List of agent types the modifier is applied for.
- // Special values: empty == None, m_AffectedAgents[0] =-1 == All.
- [SerializeField]
- List m_AffectedAgents = new List(new int[] { -1 }); // Default value is All
-
- static readonly List s_NavMeshModifiers = new List();
-
- public static List activeModifiers
- {
- get { return s_NavMeshModifiers; }
- }
-
- void OnEnable()
- {
- if (!s_NavMeshModifiers.Contains(this))
- s_NavMeshModifiers.Add(this);
- }
-
- void OnDisable()
- {
- s_NavMeshModifiers.Remove(this);
- }
-
- public bool AffectsAgentType(int agentTypeID)
- {
- if (m_AffectedAgents.Count == 0)
- return false;
- if (m_AffectedAgents[0] == -1)
- return true;
- return m_AffectedAgents.IndexOf(agentTypeID) != -1;
- }
- }
-}
diff --git a/Assets/NavMeshComponents/Scripts/NavMeshModifier.cs.meta b/Assets/NavMeshComponents/Scripts/NavMeshModifier.cs.meta
deleted file mode 100755
index 43e5dfe92..000000000
--- a/Assets/NavMeshComponents/Scripts/NavMeshModifier.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 1e3fdca004f2d45fe8abbed571a8abd5
-timeCreated: 1477924411
-licenseType: Pro
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {fileID: 2800000, guid: cc7b9475dbddf4f9088d327d6e10ab77, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/NavMeshComponents/Scripts/NavMeshModifierVolume.cs b/Assets/NavMeshComponents/Scripts/NavMeshModifierVolume.cs
deleted file mode 100755
index faa7e6301..000000000
--- a/Assets/NavMeshComponents/Scripts/NavMeshModifierVolume.cs
+++ /dev/null
@@ -1,54 +0,0 @@
-using System.Collections.Generic;
-
-namespace UnityEngine.AI
-{
- [ExecuteInEditMode]
- [AddComponentMenu("Navigation/NavMeshModifierVolume", 31)]
- [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")]
- public class NavMeshModifierVolume : MonoBehaviour
- {
- [SerializeField]
- Vector3 m_Size = new Vector3(4.0f, 3.0f, 4.0f);
- public Vector3 size { get { return m_Size; } set { m_Size = value; } }
-
- [SerializeField]
- Vector3 m_Center = new Vector3(0, 1.0f, 0);
- public Vector3 center { get { return m_Center; } set { m_Center = value; } }
-
- [SerializeField]
- int m_Area;
- public int area { get { return m_Area; } set { m_Area = value; } }
-
- // List of agent types the modifier is applied for.
- // Special values: empty == None, m_AffectedAgents[0] =-1 == All.
- [SerializeField]
- List m_AffectedAgents = new List(new int[] { -1 }); // Default value is All
-
- static readonly List s_NavMeshModifiers = new List();
-
- public static List activeModifiers
- {
- get { return s_NavMeshModifiers; }
- }
-
- void OnEnable()
- {
- if (!s_NavMeshModifiers.Contains(this))
- s_NavMeshModifiers.Add(this);
- }
-
- void OnDisable()
- {
- s_NavMeshModifiers.Remove(this);
- }
-
- public bool AffectsAgentType(int agentTypeID)
- {
- if (m_AffectedAgents.Count == 0)
- return false;
- if (m_AffectedAgents[0] == -1)
- return true;
- return m_AffectedAgents.IndexOf(agentTypeID) != -1;
- }
- }
-}
diff --git a/Assets/NavMeshComponents/Scripts/NavMeshModifierVolume.cs.meta b/Assets/NavMeshComponents/Scripts/NavMeshModifierVolume.cs.meta
deleted file mode 100755
index 337dbe2e3..000000000
--- a/Assets/NavMeshComponents/Scripts/NavMeshModifierVolume.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 35e95dc5ff2b64380880dd7ac5922847
-timeCreated: 1477924430
-licenseType: Pro
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {fileID: 2800000, guid: cc7b9475dbddf4f9088d327d6e10ab77, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs b/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs
deleted file mode 100755
index 9fd7dab43..000000000
--- a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs
+++ /dev/null
@@ -1,486 +0,0 @@
-using System.Collections.Generic;
-#if UNITY_EDITOR
-using UnityEditor;
-using UnityEditor.SceneManagement;
-#endif
-
-namespace UnityEngine.AI
-{
- public enum CollectObjects
- {
- All = 0,
- Volume = 1,
- Children = 2,
- }
-
- [ExecuteAlways]
- [DefaultExecutionOrder(-102)]
- [AddComponentMenu("Navigation/NavMeshSurface", 30)]
- [HelpURL("https://github.com/Unity-Technologies/NavMeshComponents#documentation-draft")]
- public class NavMeshSurface : MonoBehaviour
- {
- [SerializeField]
- int m_AgentTypeID;
- public int agentTypeID { get { return m_AgentTypeID; } set { m_AgentTypeID = value; } }
-
- [SerializeField]
- CollectObjects m_CollectObjects = CollectObjects.All;
- public CollectObjects collectObjects { get { return m_CollectObjects; } set { m_CollectObjects = value; } }
-
- [SerializeField]
- Vector3 m_Size = new Vector3(10.0f, 10.0f, 10.0f);
- public Vector3 size { get { return m_Size; } set { m_Size = value; } }
-
- [SerializeField]
- Vector3 m_Center = new Vector3(0, 2.0f, 0);
- public Vector3 center { get { return m_Center; } set { m_Center = value; } }
-
- [SerializeField]
- LayerMask m_LayerMask = ~0;
- public LayerMask layerMask { get { return m_LayerMask; } set { m_LayerMask = value; } }
-
- [SerializeField]
- NavMeshCollectGeometry m_UseGeometry = NavMeshCollectGeometry.RenderMeshes;
- public NavMeshCollectGeometry useGeometry { get { return m_UseGeometry; } set { m_UseGeometry = value; } }
-
- [SerializeField]
- int m_DefaultArea;
- public int defaultArea { get { return m_DefaultArea; } set { m_DefaultArea = value; } }
-
- [SerializeField]
- bool m_IgnoreNavMeshAgent = true;
- public bool ignoreNavMeshAgent { get { return m_IgnoreNavMeshAgent; } set { m_IgnoreNavMeshAgent = value; } }
-
- [SerializeField]
- bool m_IgnoreNavMeshObstacle = true;
- public bool ignoreNavMeshObstacle { get { return m_IgnoreNavMeshObstacle; } set { m_IgnoreNavMeshObstacle = value; } }
-
- [SerializeField]
- bool m_OverrideTileSize;
- public bool overrideTileSize { get { return m_OverrideTileSize; } set { m_OverrideTileSize = value; } }
- [SerializeField]
- int m_TileSize = 256;
- public int tileSize { get { return m_TileSize; } set { m_TileSize = value; } }
- [SerializeField]
- bool m_OverrideVoxelSize;
- public bool overrideVoxelSize { get { return m_OverrideVoxelSize; } set { m_OverrideVoxelSize = value; } }
- [SerializeField]
- float m_VoxelSize;
- public float voxelSize { get { return m_VoxelSize; } set { m_VoxelSize = value; } }
-
- // Currently not supported advanced options
- [SerializeField]
- bool m_BuildHeightMesh;
- public bool buildHeightMesh { get { return m_BuildHeightMesh; } set { m_BuildHeightMesh = value; } }
-
- // Reference to whole scene navmesh data asset.
- [UnityEngine.Serialization.FormerlySerializedAs("m_BakedNavMeshData")]
- [SerializeField]
- NavMeshData m_NavMeshData;
- public NavMeshData navMeshData { get { return m_NavMeshData; } set { m_NavMeshData = value; } }
-
- // Do not serialize - runtime only state.
- NavMeshDataInstance m_NavMeshDataInstance;
- Vector3 m_LastPosition = Vector3.zero;
- Quaternion m_LastRotation = Quaternion.identity;
-
- static readonly List s_NavMeshSurfaces = new List();
-
- public static List activeSurfaces
- {
- get { return s_NavMeshSurfaces; }
- }
-
- void OnEnable()
- {
- Register(this);
- AddData();
- }
-
- void OnDisable()
- {
- RemoveData();
- Unregister(this);
- }
-
- public void AddData()
- {
-#if UNITY_EDITOR
- var isInPreviewScene = EditorSceneManager.IsPreviewSceneObject(this);
- var isPrefab = isInPreviewScene || EditorUtility.IsPersistent(this);
- if (isPrefab)
- {
- //Debug.LogFormat("NavMeshData from {0}.{1} will not be added to the NavMesh world because the gameObject is a prefab.",
- // gameObject.name, name);
- return;
- }
-#endif
- if (m_NavMeshDataInstance.valid)
- return;
-
- if (m_NavMeshData != null)
- {
- m_NavMeshDataInstance = NavMesh.AddNavMeshData(m_NavMeshData, transform.position, transform.rotation);
- m_NavMeshDataInstance.owner = this;
- }
-
- m_LastPosition = transform.position;
- m_LastRotation = transform.rotation;
- }
-
- public void RemoveData()
- {
- m_NavMeshDataInstance.Remove();
- m_NavMeshDataInstance = new NavMeshDataInstance();
- }
-
- public NavMeshBuildSettings GetBuildSettings()
- {
- var buildSettings = NavMesh.GetSettingsByID(m_AgentTypeID);
- if (buildSettings.agentTypeID == -1)
- {
- Debug.LogWarning("No build settings for agent type ID " + agentTypeID, this);
- buildSettings.agentTypeID = m_AgentTypeID;
- }
-
- if (overrideTileSize)
- {
- buildSettings.overrideTileSize = true;
- buildSettings.tileSize = tileSize;
- }
- if (overrideVoxelSize)
- {
- buildSettings.overrideVoxelSize = true;
- buildSettings.voxelSize = voxelSize;
- }
- return buildSettings;
- }
-
- public void BuildNavMesh()
- {
- var sources = CollectSources();
-
- // Use unscaled bounds - this differs in behaviour from e.g. collider components.
- // But is similar to reflection probe - and since navmesh data has no scaling support - it is the right choice here.
- var sourcesBounds = new Bounds(m_Center, Abs(m_Size));
- if (m_CollectObjects == CollectObjects.All || m_CollectObjects == CollectObjects.Children)
- {
- sourcesBounds = CalculateWorldBounds(sources);
- }
-
- var data = NavMeshBuilder.BuildNavMeshData(GetBuildSettings(),
- sources, sourcesBounds, transform.position, transform.rotation);
-
- if (data != null)
- {
- data.name = gameObject.name;
- RemoveData();
- m_NavMeshData = data;
- if (isActiveAndEnabled)
- AddData();
- }
- }
-
- public AsyncOperation UpdateNavMesh(NavMeshData data)
- {
- var sources = CollectSources();
-
- // Use unscaled bounds - this differs in behaviour from e.g. collider components.
- // But is similar to reflection probe - and since navmesh data has no scaling support - it is the right choice here.
- var sourcesBounds = new Bounds(m_Center, Abs(m_Size));
- if (m_CollectObjects == CollectObjects.All || m_CollectObjects == CollectObjects.Children)
- sourcesBounds = CalculateWorldBounds(sources);
-
- return NavMeshBuilder.UpdateNavMeshDataAsync(data, GetBuildSettings(), sources, sourcesBounds);
- }
-
- static void Register(NavMeshSurface surface)
- {
-#if UNITY_EDITOR
- var isInPreviewScene = EditorSceneManager.IsPreviewSceneObject(surface);
- var isPrefab = isInPreviewScene || EditorUtility.IsPersistent(surface);
- if (isPrefab)
- {
- //Debug.LogFormat("NavMeshData from {0}.{1} will not be added to the NavMesh world because the gameObject is a prefab.",
- // surface.gameObject.name, surface.name);
- return;
- }
-#endif
- if (s_NavMeshSurfaces.Count == 0)
- NavMesh.onPreUpdate += UpdateActive;
-
- if (!s_NavMeshSurfaces.Contains(surface))
- s_NavMeshSurfaces.Add(surface);
- }
-
- static void Unregister(NavMeshSurface surface)
- {
- s_NavMeshSurfaces.Remove(surface);
-
- if (s_NavMeshSurfaces.Count == 0)
- NavMesh.onPreUpdate -= UpdateActive;
- }
-
- static void UpdateActive()
- {
- for (var i = 0; i < s_NavMeshSurfaces.Count; ++i)
- s_NavMeshSurfaces[i].UpdateDataIfTransformChanged();
- }
-
- void AppendModifierVolumes(ref List sources)
- {
-#if UNITY_EDITOR
- var myStage = StageUtility.GetStageHandle(gameObject);
- if (!myStage.IsValid())
- return;
-#endif
- // Modifiers
- List modifiers;
- if (m_CollectObjects == CollectObjects.Children)
- {
- modifiers = new List(GetComponentsInChildren());
- modifiers.RemoveAll(x => !x.isActiveAndEnabled);
- }
- else
- {
- modifiers = NavMeshModifierVolume.activeModifiers;
- }
-
- foreach (var m in modifiers)
- {
- if ((m_LayerMask & (1 << m.gameObject.layer)) == 0)
- continue;
- if (!m.AffectsAgentType(m_AgentTypeID))
- continue;
-#if UNITY_EDITOR
- if (!myStage.Contains(m.gameObject))
- continue;
-#endif
- var mcenter = m.transform.TransformPoint(m.center);
- var scale = m.transform.lossyScale;
- var msize = new Vector3(m.size.x * Mathf.Abs(scale.x), m.size.y * Mathf.Abs(scale.y), m.size.z * Mathf.Abs(scale.z));
-
- var src = new NavMeshBuildSource();
- src.shape = NavMeshBuildSourceShape.ModifierBox;
- src.transform = Matrix4x4.TRS(mcenter, m.transform.rotation, Vector3.one);
- src.size = msize;
- src.area = m.area;
- sources.Add(src);
- }
- }
-
- List CollectSources()
- {
- var sources = new List();
- var markups = new List();
-
- List modifiers;
- if (m_CollectObjects == CollectObjects.Children)
- {
- modifiers = new List(GetComponentsInChildren());
- modifiers.RemoveAll(x => !x.isActiveAndEnabled);
- }
- else
- {
- modifiers = NavMeshModifier.activeModifiers;
- }
-
- foreach (var m in modifiers)
- {
- if ((m_LayerMask & (1 << m.gameObject.layer)) == 0)
- continue;
- if (!m.AffectsAgentType(m_AgentTypeID))
- continue;
- var markup = new NavMeshBuildMarkup();
- markup.root = m.transform;
- markup.overrideArea = m.overrideArea;
- markup.area = m.area;
- markup.ignoreFromBuild = m.ignoreFromBuild;
- markups.Add(markup);
- }
-
-#if UNITY_EDITOR
- if (!EditorApplication.isPlaying)
- {
- if (m_CollectObjects == CollectObjects.All)
- {
- UnityEditor.AI.NavMeshBuilder.CollectSourcesInStage(
- null, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, gameObject.scene, sources);
- }
- else if (m_CollectObjects == CollectObjects.Children)
- {
- UnityEditor.AI.NavMeshBuilder.CollectSourcesInStage(
- transform, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, gameObject.scene, sources);
- }
- else if (m_CollectObjects == CollectObjects.Volume)
- {
- Matrix4x4 localToWorld = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one);
- var worldBounds = GetWorldBounds(localToWorld, new Bounds(m_Center, m_Size));
-
- UnityEditor.AI.NavMeshBuilder.CollectSourcesInStage(
- worldBounds, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, gameObject.scene, sources);
- }
- }
- else
-#endif
- {
- if (m_CollectObjects == CollectObjects.All)
- {
- NavMeshBuilder.CollectSources(null, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources);
- }
- else if (m_CollectObjects == CollectObjects.Children)
- {
- NavMeshBuilder.CollectSources(transform, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources);
- }
- else if (m_CollectObjects == CollectObjects.Volume)
- {
- Matrix4x4 localToWorld = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one);
- var worldBounds = GetWorldBounds(localToWorld, new Bounds(m_Center, m_Size));
- NavMeshBuilder.CollectSources(worldBounds, m_LayerMask, m_UseGeometry, m_DefaultArea, markups, sources);
- }
- }
-
- if (m_IgnoreNavMeshAgent)
- sources.RemoveAll((x) => (x.component != null && x.component.gameObject.GetComponent() != null));
-
- if (m_IgnoreNavMeshObstacle)
- sources.RemoveAll((x) => (x.component != null && x.component.gameObject.GetComponent() != null));
-
- AppendModifierVolumes(ref sources);
-
- return sources;
- }
-
- static Vector3 Abs(Vector3 v)
- {
- return new Vector3(Mathf.Abs(v.x), Mathf.Abs(v.y), Mathf.Abs(v.z));
- }
-
- static Bounds GetWorldBounds(Matrix4x4 mat, Bounds bounds)
- {
- var absAxisX = Abs(mat.MultiplyVector(Vector3.right));
- var absAxisY = Abs(mat.MultiplyVector(Vector3.up));
- var absAxisZ = Abs(mat.MultiplyVector(Vector3.forward));
- var worldPosition = mat.MultiplyPoint(bounds.center);
- var worldSize = absAxisX * bounds.size.x + absAxisY * bounds.size.y + absAxisZ * bounds.size.z;
- return new Bounds(worldPosition, worldSize);
- }
-
- Bounds CalculateWorldBounds(List sources)
- {
- // Use the unscaled matrix for the NavMeshSurface
- Matrix4x4 worldToLocal = Matrix4x4.TRS(transform.position, transform.rotation, Vector3.one);
- worldToLocal = worldToLocal.inverse;
-
- var result = new Bounds();
- foreach (var src in sources)
- {
- switch (src.shape)
- {
- case NavMeshBuildSourceShape.Mesh:
- {
- var m = src.sourceObject as Mesh;
- result.Encapsulate(GetWorldBounds(worldToLocal * src.transform, m.bounds));
- break;
- }
- case NavMeshBuildSourceShape.Terrain:
- {
- // Terrain pivot is lower/left corner - shift bounds accordingly
- var t = src.sourceObject as TerrainData;
- result.Encapsulate(GetWorldBounds(worldToLocal * src.transform, new Bounds(0.5f * t.size, t.size)));
- break;
- }
- case NavMeshBuildSourceShape.Box:
- case NavMeshBuildSourceShape.Sphere:
- case NavMeshBuildSourceShape.Capsule:
- case NavMeshBuildSourceShape.ModifierBox:
- result.Encapsulate(GetWorldBounds(worldToLocal * src.transform, new Bounds(Vector3.zero, src.size)));
- break;
- }
- }
- // Inflate the bounds a bit to avoid clipping co-planar sources
- result.Expand(0.1f);
- return result;
- }
-
- bool HasTransformChanged()
- {
- if (m_LastPosition != transform.position) return true;
- if (m_LastRotation != transform.rotation) return true;
- return false;
- }
-
- void UpdateDataIfTransformChanged()
- {
- if (HasTransformChanged())
- {
- RemoveData();
- AddData();
- }
- }
-
-#if UNITY_EDITOR
- bool UnshareNavMeshAsset()
- {
- // Nothing to unshare
- if (m_NavMeshData == null)
- return false;
-
- // Prefab parent owns the asset reference
- var isInPreviewScene = EditorSceneManager.IsPreviewSceneObject(this);
- var isPersistentObject = EditorUtility.IsPersistent(this);
- if (isInPreviewScene || isPersistentObject)
- return false;
-
- // An instance can share asset reference only with its prefab parent
- var prefab = UnityEditor.PrefabUtility.GetCorrespondingObjectFromSource(this) as NavMeshSurface;
- if (prefab != null && prefab.navMeshData == navMeshData)
- return false;
-
- // Don't allow referencing an asset that's assigned to another surface
- for (var i = 0; i < s_NavMeshSurfaces.Count; ++i)
- {
- var surface = s_NavMeshSurfaces[i];
- if (surface != this && surface.m_NavMeshData == m_NavMeshData)
- return true;
- }
-
- // Asset is not referenced by known surfaces
- return false;
- }
-
- void OnValidate()
- {
- if (UnshareNavMeshAsset())
- {
- Debug.LogWarning("Duplicating NavMeshSurface does not duplicate the referenced navmesh data", this);
- m_NavMeshData = null;
- }
-
- var settings = NavMesh.GetSettingsByID(m_AgentTypeID);
- if (settings.agentTypeID != -1)
- {
- // When unchecking the override control, revert to automatic value.
- const float kMinVoxelSize = 0.01f;
- if (!m_OverrideVoxelSize)
- m_VoxelSize = settings.agentRadius / 3.0f;
- if (m_VoxelSize < kMinVoxelSize)
- m_VoxelSize = kMinVoxelSize;
-
- // When unchecking the override control, revert to default value.
- const int kMinTileSize = 16;
- const int kMaxTileSize = 1024;
- const int kDefaultTileSize = 256;
-
- if (!m_OverrideTileSize)
- m_TileSize = kDefaultTileSize;
- // Make sure tilesize is in sane range.
- if (m_TileSize < kMinTileSize)
- m_TileSize = kMinTileSize;
- if (m_TileSize > kMaxTileSize)
- m_TileSize = kMaxTileSize;
- }
- }
-#endif
- }
-}
diff --git a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs.meta b/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs.meta
deleted file mode 100755
index fa559a0dd..000000000
--- a/Assets/NavMeshComponents/Scripts/NavMeshSurface.cs.meta
+++ /dev/null
@@ -1,12 +0,0 @@
-fileFormatVersion: 2
-guid: 7a5ac11cc976e418e8d13136b07e1f52
-timeCreated: 1477658803
-licenseType: Pro
-MonoImporter:
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {fileID: 2800000, guid: e4f97225bcfb64760a1c81f460837f01, type: 3}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Navy Pack.meta b/Assets/Navy Pack.meta
new file mode 100644
index 000000000..0345ce903
--- /dev/null
+++ b/Assets/Navy Pack.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: cd392e3523b42ac4da2bebedb86454d5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials.meta b/Assets/Navy Pack/Materials.meta
new file mode 100644
index 000000000..3e96d9372
--- /dev/null
+++ b/Assets/Navy Pack/Materials.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4aec6dc17ec811347a2be35b932365be
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/awacs.meta b/Assets/Navy Pack/Materials/awacs.meta
new file mode 100644
index 000000000..8dea6624c
--- /dev/null
+++ b/Assets/Navy Pack/Materials/awacs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d6b212d76f4c3cf40a7067486ad2e7e9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/awacs/awacs_airframe.mat b/Assets/Navy Pack/Materials/awacs/awacs_airframe.mat
new file mode 100644
index 000000000..9c5aef5f7
--- /dev/null
+++ b/Assets/Navy Pack/Materials/awacs/awacs_airframe.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4007093500107290514
+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: awacs_airframe
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 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: []
diff --git a/Assets/scenes/Testing/3Dskybox/skyboxTest/LightingData.asset.meta b/Assets/Navy Pack/Materials/awacs/awacs_airframe.mat.meta
similarity index 78%
rename from Assets/scenes/Testing/3Dskybox/skyboxTest/LightingData.asset.meta
rename to Assets/Navy Pack/Materials/awacs/awacs_airframe.mat.meta
index 13b614002..9315a0543 100644
--- a/Assets/scenes/Testing/3Dskybox/skyboxTest/LightingData.asset.meta
+++ b/Assets/Navy Pack/Materials/awacs/awacs_airframe.mat.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: bc36c1bcfe4f60d45a60f208fab76e84
+guid: 9f7e168a301c25e4285968a6d9a472eb
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
diff --git a/Assets/Navy Pack/Materials/awacs/awacs_cockpit.mat b/Assets/Navy Pack/Materials/awacs/awacs_cockpit.mat
new file mode 100644
index 000000000..2dc095835
--- /dev/null
+++ b/Assets/Navy Pack/Materials/awacs/awacs_cockpit.mat
@@ -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: awacs_cockpit
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.33725488, g: 0.33725488, b: 0.33725488, a: 1}
+ - _Color: {r: 0.33725485, g: 0.33725485, b: 0.33725485, 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: []
+--- !u!114 &7104994485625085128
+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
diff --git a/Assets/scenes/Testing/Water/LightingData.asset.meta b/Assets/Navy Pack/Materials/awacs/awacs_cockpit.mat.meta
similarity index 78%
rename from Assets/scenes/Testing/Water/LightingData.asset.meta
rename to Assets/Navy Pack/Materials/awacs/awacs_cockpit.mat.meta
index 2c423d531..997cff7c9 100644
--- a/Assets/scenes/Testing/Water/LightingData.asset.meta
+++ b/Assets/Navy Pack/Materials/awacs/awacs_cockpit.mat.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 97907b317c0444227b578041e4a13cb8
+guid: 6c3dd88c862e2624babbc678cf63b02a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
diff --git a/Assets/Navy Pack/Materials/awacs/awacs_dome.mat b/Assets/Navy Pack/Materials/awacs/awacs_dome.mat
new file mode 100644
index 000000000..f4367f364
--- /dev/null
+++ b/Assets/Navy Pack/Materials/awacs/awacs_dome.mat
@@ -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: awacs_dome
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.117647074, g: 0.117647074, b: 0.117647074, a: 1}
+ - _Color: {r: 0.117647044, g: 0.117647044, b: 0.117647044, 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: []
+--- !u!114 &8552862229697224421
+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
diff --git a/Assets/scenes/_levels/level_Island/OcclusionCullingData.asset.meta b/Assets/Navy Pack/Materials/awacs/awacs_dome.mat.meta
similarity index 78%
rename from Assets/scenes/_levels/level_Island/OcclusionCullingData.asset.meta
rename to Assets/Navy Pack/Materials/awacs/awacs_dome.mat.meta
index 0871113fa..92b4593e7 100644
--- a/Assets/scenes/_levels/level_Island/OcclusionCullingData.asset.meta
+++ b/Assets/Navy Pack/Materials/awacs/awacs_dome.mat.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 6b1eeea183ddc40e9872d9967dc856c0
+guid: f2154c6211e7e7e4198a9cebdbea24c5
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
diff --git a/Assets/Navy Pack/Materials/awacs/awacs_engine.mat b/Assets/Navy Pack/Materials/awacs/awacs_engine.mat
new file mode 100644
index 000000000..6fabad4bf
--- /dev/null
+++ b/Assets/Navy Pack/Materials/awacs/awacs_engine.mat
@@ -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: awacs_engine
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.22745097, g: 0.22745097, b: 0.22745097, a: 1}
+ - _Color: {r: 0.22745094, g: 0.22745094, b: 0.22745094, 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: []
+--- !u!114 &4178727626497747906
+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
diff --git a/Assets/Objects/Levels/Island/NavMesh-NavMesh.asset.meta b/Assets/Navy Pack/Materials/awacs/awacs_engine.mat.meta
similarity index 78%
rename from Assets/Objects/Levels/Island/NavMesh-NavMesh.asset.meta
rename to Assets/Navy Pack/Materials/awacs/awacs_engine.mat.meta
index fec575ab4..a9d0c42cb 100644
--- a/Assets/Objects/Levels/Island/NavMesh-NavMesh.asset.meta
+++ b/Assets/Navy Pack/Materials/awacs/awacs_engine.mat.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: f95aec1be3501404baa37d1fad8e4509
+guid: e98ba889e895a1b4f9e3697e73f2c553
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 0
diff --git a/Assets/Navy Pack/Materials/carrier.meta b/Assets/Navy Pack/Materials/carrier.meta
new file mode 100644
index 000000000..b4dc42b68
--- /dev/null
+++ b/Assets/Navy Pack/Materials/carrier.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: be6ebdd8c0409074f879e2f13e3f9a2c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/carrier/carrier_deck.mat b/Assets/Navy Pack/Materials/carrier/carrier_deck.mat
new file mode 100644
index 000000000..a1078e995
--- /dev/null
+++ b/Assets/Navy Pack/Materials/carrier/carrier_deck.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-7345347326702788057
+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: carrier_deck
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.33725488, g: 0.33725488, b: 0.33725488, a: 1}
+ - _Color: {r: 0.33725485, g: 0.33725485, b: 0.33725485, 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: []
diff --git a/Assets/Navy Pack/Materials/carrier/carrier_deck.mat.meta b/Assets/Navy Pack/Materials/carrier/carrier_deck.mat.meta
new file mode 100644
index 000000000..5cff75aec
--- /dev/null
+++ b/Assets/Navy Pack/Materials/carrier/carrier_deck.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 162ef5d2f7748b243a98872235fa7d31
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/carrier/carrier_hull.mat b/Assets/Navy Pack/Materials/carrier/carrier_hull.mat
new file mode 100644
index 000000000..2a0fdc77e
--- /dev/null
+++ b/Assets/Navy Pack/Materials/carrier/carrier_hull.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-2512451277429274852
+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: carrier_hull
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.8862745, g: 0.8862745, b: 0.8862745, a: 1}
+ - _Color: {r: 0.8862745, g: 0.8862745, b: 0.8862745, 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: []
diff --git a/Assets/Navy Pack/Materials/carrier/carrier_hull.mat.meta b/Assets/Navy Pack/Materials/carrier/carrier_hull.mat.meta
new file mode 100644
index 000000000..97f00dbbe
--- /dev/null
+++ b/Assets/Navy Pack/Materials/carrier/carrier_hull.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 293d888a347d0cc498b297a857793db2
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/carrier/carrier_lines.mat b/Assets/Navy Pack/Materials/carrier/carrier_lines.mat
new file mode 100644
index 000000000..479f7e211
--- /dev/null
+++ b/Assets/Navy Pack/Materials/carrier/carrier_lines.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-8386657174242627356
+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: carrier_lines
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 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: []
diff --git a/Assets/Navy Pack/Materials/carrier/carrier_lines.mat.meta b/Assets/Navy Pack/Materials/carrier/carrier_lines.mat.meta
new file mode 100644
index 000000000..b11b2b5cd
--- /dev/null
+++ b/Assets/Navy Pack/Materials/carrier/carrier_lines.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7357938565cab4748b458a5749b04c98
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/carrier/carrier_tower.mat b/Assets/Navy Pack/Materials/carrier/carrier_tower.mat
new file mode 100644
index 000000000..bc03440aa
--- /dev/null
+++ b/Assets/Navy Pack/Materials/carrier/carrier_tower.mat
@@ -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: carrier_tower
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.95283014, g: 0.95283014, b: 0.95283014, a: 1}
+ - _Color: {r: 0.95283014, g: 0.95283014, b: 0.95283014, 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: []
+--- !u!114 &4021504795925555889
+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
diff --git a/Assets/Navy Pack/Materials/carrier/carrier_tower.mat.meta b/Assets/Navy Pack/Materials/carrier/carrier_tower.mat.meta
new file mode 100644
index 000000000..a04a8848b
--- /dev/null
+++ b/Assets/Navy Pack/Materials/carrier/carrier_tower.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 05244d560020dd34bb5861816ba9cde4
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/environment.meta b/Assets/Navy Pack/Materials/environment.meta
new file mode 100644
index 000000000..a2ab5b053
--- /dev/null
+++ b/Assets/Navy Pack/Materials/environment.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5c69166f7a4e21d448af92fa9dd15021
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/environment/Sea.mat b/Assets/Navy Pack/Materials/environment/Sea.mat
new file mode 100644
index 000000000..c60fcc198
--- /dev/null
+++ b/Assets/Navy Pack/Materials/environment/Sea.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-3756173494804485224
+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: Sea
+ m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 6
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap:
+ RenderType: Opaque
+ 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: 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: 1
+ - _Glossiness: 0.5
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0.5
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0, g: 0.490196, b: 0.7921569, a: 1}
+ - _Color: {r: 0, g: 0.490196, b: 0.7921569, 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: []
diff --git a/Assets/Navy Pack/Materials/environment/Sea.mat.meta b/Assets/Navy Pack/Materials/environment/Sea.mat.meta
new file mode 100644
index 000000000..e5fa05d69
--- /dev/null
+++ b/Assets/Navy Pack/Materials/environment/Sea.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 212e1b71f188b3140806b7a14dd347ce
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/f18.meta b/Assets/Navy Pack/Materials/f18.meta
new file mode 100644
index 000000000..59b318e02
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f18.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 582a01ab34d34dd438000470d77fc7d6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/f18/f18_airframe.mat b/Assets/Navy Pack/Materials/f18/f18_airframe.mat
new file mode 100644
index 000000000..e894dc117
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f18/f18_airframe.mat
@@ -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: f18_airframe
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.5568627, g: 0.5568627, b: 0.5568627, a: 1}
+ - _Color: {r: 0.5568627, g: 0.5568627, b: 0.5568627, 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: []
+--- !u!114 &2779699898607754625
+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
diff --git a/Assets/Navy Pack/Materials/f18/f18_airframe.mat.meta b/Assets/Navy Pack/Materials/f18/f18_airframe.mat.meta
new file mode 100644
index 000000000..fe033d4a4
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f18/f18_airframe.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f4fffb334858c8c4098a0a346a343bbf
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/f18/f18_cockpit.mat b/Assets/Navy Pack/Materials/f18/f18_cockpit.mat
new file mode 100644
index 000000000..a0fb65283
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f18/f18_cockpit.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-5358763249681315997
+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: f18_cockpit
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.36792448, g: 0.36792448, b: 0.36792448, a: 1}
+ - _Color: {r: 0.36792445, g: 0.36792445, b: 0.36792445, 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: []
diff --git a/Assets/Navy Pack/Materials/f18/f18_cockpit.mat.meta b/Assets/Navy Pack/Materials/f18/f18_cockpit.mat.meta
new file mode 100644
index 000000000..4d749d05c
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f18/f18_cockpit.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: dd36dff1ea594c2479005fb933ce2e24
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/f18/f18_engine.mat b/Assets/Navy Pack/Materials/f18/f18_engine.mat
new file mode 100644
index 000000000..44799ae46
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f18/f18_engine.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4066643960464502137
+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: f18_engine
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.22745097, g: 0.22745097, b: 0.22745097, a: 1}
+ - _Color: {r: 0.22745094, g: 0.22745094, b: 0.22745094, 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: []
diff --git a/Assets/Navy Pack/Materials/f18/f18_engine.mat.meta b/Assets/Navy Pack/Materials/f18/f18_engine.mat.meta
new file mode 100644
index 000000000..9beb5b0a0
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f18/f18_engine.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0e0d21a9a865b884797afb419e6f499e
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/f35.meta b/Assets/Navy Pack/Materials/f35.meta
new file mode 100644
index 000000000..248755278
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f35.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b36b3204763042d48a6dcb22f9678043
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/f35/f35_airframe.mat b/Assets/Navy Pack/Materials/f35/f35_airframe.mat
new file mode 100644
index 000000000..5de536ecb
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f35/f35_airframe.mat
@@ -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: f35_airframe
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.4470588, g: 0.4470588, b: 0.4470588, 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: []
+--- !u!114 &5186579395091689949
+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
diff --git a/Assets/Navy Pack/Materials/f35/f35_airframe.mat.meta b/Assets/Navy Pack/Materials/f35/f35_airframe.mat.meta
new file mode 100644
index 000000000..bee92247f
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f35/f35_airframe.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 95a71a8830c654f4e916ef0955f211b9
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/f35/f35_cockpit.mat b/Assets/Navy Pack/Materials/f35/f35_cockpit.mat
new file mode 100644
index 000000000..8a97598a9
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f35/f35_cockpit.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4293561979062073376
+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: f35_cockpit
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.39999998, g: 0.29803917, b: 0, 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: []
diff --git a/Assets/Navy Pack/Materials/f35/f35_cockpit.mat.meta b/Assets/Navy Pack/Materials/f35/f35_cockpit.mat.meta
new file mode 100644
index 000000000..0cd853fdd
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f35/f35_cockpit.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 90acbf24c94372d4eaac5938eab6fbdd
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/f35/f35_engine.mat b/Assets/Navy Pack/Materials/f35/f35_engine.mat
new file mode 100644
index 000000000..93169dd89
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f35/f35_engine.mat
@@ -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: f35_engine
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.117647074, g: 0.117647074, b: 0.117647074, a: 1}
+ - _Color: {r: 0.117647044, g: 0.117647044, b: 0.117647044, 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: []
+--- !u!114 &3127194328986762741
+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
diff --git a/Assets/Navy Pack/Materials/f35/f35_engine.mat.meta b/Assets/Navy Pack/Materials/f35/f35_engine.mat.meta
new file mode 100644
index 000000000..9625c62b6
--- /dev/null
+++ b/Assets/Navy Pack/Materials/f35/f35_engine.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5ff48dd6898d3ea44ac0cd900b4ca30e
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/hawkeye.meta b/Assets/Navy Pack/Materials/hawkeye.meta
new file mode 100644
index 000000000..da9558fc5
--- /dev/null
+++ b/Assets/Navy Pack/Materials/hawkeye.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 23c3fcd7b1f46b141a999550407dc513
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/hawkeye/hawkeye_airframe.mat b/Assets/Navy Pack/Materials/hawkeye/hawkeye_airframe.mat
new file mode 100644
index 000000000..16b3e12d3
--- /dev/null
+++ b/Assets/Navy Pack/Materials/hawkeye/hawkeye_airframe.mat
@@ -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: hawkeye_airframe
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.737255, g: 0.7294118, b: 0.7019608, 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: []
+--- !u!114 &3086759759910231476
+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
diff --git a/Assets/Navy Pack/Materials/hawkeye/hawkeye_airframe.mat.meta b/Assets/Navy Pack/Materials/hawkeye/hawkeye_airframe.mat.meta
new file mode 100644
index 000000000..1d5b93cc4
--- /dev/null
+++ b/Assets/Navy Pack/Materials/hawkeye/hawkeye_airframe.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3ba7393833578974dac15a91a4291a53
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/hawkeye/hawkeye_cockpit.mat b/Assets/Navy Pack/Materials/hawkeye/hawkeye_cockpit.mat
new file mode 100644
index 000000000..56923492a
--- /dev/null
+++ b/Assets/Navy Pack/Materials/hawkeye/hawkeye_cockpit.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-2620691129289813845
+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: hawkeye_cockpit
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.4470588, g: 0.4470588, b: 0.4470588, a: 1}
+ - _Color: {r: 0.4470588, g: 0.4470588, b: 0.4470588, 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: []
diff --git a/Assets/Navy Pack/Materials/hawkeye/hawkeye_cockpit.mat.meta b/Assets/Navy Pack/Materials/hawkeye/hawkeye_cockpit.mat.meta
new file mode 100644
index 000000000..0ed234383
--- /dev/null
+++ b/Assets/Navy Pack/Materials/hawkeye/hawkeye_cockpit.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 226d3470aa310ba42b4f134658304ecb
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/hawkeye/hawkeye_engine.mat b/Assets/Navy Pack/Materials/hawkeye/hawkeye_engine.mat
new file mode 100644
index 000000000..99d576284
--- /dev/null
+++ b/Assets/Navy Pack/Materials/hawkeye/hawkeye_engine.mat
@@ -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: hawkeye_engine
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.22745097, g: 0.22745097, b: 0.22745097, a: 1}
+ - _Color: {r: 0.22745094, g: 0.22745094, b: 0.22745094, 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: []
+--- !u!114 &2740170632633127576
+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
diff --git a/Assets/Navy Pack/Materials/hawkeye/hawkeye_engine.mat.meta b/Assets/Navy Pack/Materials/hawkeye/hawkeye_engine.mat.meta
new file mode 100644
index 000000000..a4d108f35
--- /dev/null
+++ b/Assets/Navy Pack/Materials/hawkeye/hawkeye_engine.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b48aefb4dc0e07d47b2b4886515c26f2
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/landinggear_back.meta b/Assets/Navy Pack/Materials/landinggear_back.meta
new file mode 100644
index 000000000..a413abf96
--- /dev/null
+++ b/Assets/Navy Pack/Materials/landinggear_back.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6bf2d96caab8b454fa89d436739a24bb
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_axle.mat b/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_axle.mat
new file mode 100644
index 000000000..a1073702e
--- /dev/null
+++ b/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_axle.mat
@@ -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: landinggear_back_axle
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 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: []
+--- !u!114 &1519395976495374668
+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
diff --git a/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_axle.mat.meta b/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_axle.mat.meta
new file mode 100644
index 000000000..c48ac9bcc
--- /dev/null
+++ b/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_axle.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d9cca568db016e94e8507a413a7db906
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_tyre.mat b/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_tyre.mat
new file mode 100644
index 000000000..45b2a3e73
--- /dev/null
+++ b/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_tyre.mat
@@ -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: landinggear_back_tyre
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.22745097, g: 0.22745097, b: 0.22745097, a: 1}
+ - _Color: {r: 0.22745094, g: 0.22745094, b: 0.22745094, 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: []
+--- !u!114 &2012037968570234308
+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
diff --git a/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_tyre.mat.meta b/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_tyre.mat.meta
new file mode 100644
index 000000000..ba4caaa3b
--- /dev/null
+++ b/Assets/Navy Pack/Materials/landinggear_back/landinggear_back_tyre.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 80f22f2f7f01bab4888c1fd0606b4638
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/landinggear_front.meta b/Assets/Navy Pack/Materials/landinggear_front.meta
new file mode 100644
index 000000000..4f174a4b3
--- /dev/null
+++ b/Assets/Navy Pack/Materials/landinggear_front.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 16b687e1da0249f4aa36f722072afe0d
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_axle.mat b/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_axle.mat
new file mode 100644
index 000000000..2b4b7d8d0
--- /dev/null
+++ b/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_axle.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4441964890568174352
+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: landinggear_front_axle
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 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: []
diff --git a/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_axle.mat.meta b/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_axle.mat.meta
new file mode 100644
index 000000000..02c50b46b
--- /dev/null
+++ b/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_axle.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 810e0268b81bdd14faa6684d901d9a2c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_tyre.mat b/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_tyre.mat
new file mode 100644
index 000000000..83ba5711f
--- /dev/null
+++ b/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_tyre.mat
@@ -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: landinggear_front_tyre
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.22745097, g: 0.22745097, b: 0.22745097, a: 1}
+ - _Color: {r: 0.22745094, g: 0.22745094, b: 0.22745094, 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: []
+--- !u!114 &1375893541665793392
+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
diff --git a/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_tyre.mat.meta b/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_tyre.mat.meta
new file mode 100644
index 000000000..07de620fa
--- /dev/null
+++ b/Assets/Navy Pack/Materials/landinggear_front/landinggear_front_tyre.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 8cda64a785e93a849bbe2f2750378458
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/main_propeller.meta b/Assets/Navy Pack/Materials/main_propeller.meta
new file mode 100644
index 000000000..de625d507
--- /dev/null
+++ b/Assets/Navy Pack/Materials/main_propeller.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7e13cb46aea9c304780afde3fcd7ec13
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/main_propeller/main_propeller.mat b/Assets/Navy Pack/Materials/main_propeller/main_propeller.mat
new file mode 100644
index 000000000..be6c9563d
--- /dev/null
+++ b/Assets/Navy Pack/Materials/main_propeller/main_propeller.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-7829410956239440443
+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: main_propeller
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 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: []
diff --git a/Assets/Navy Pack/Materials/main_propeller/main_propeller.mat.meta b/Assets/Navy Pack/Materials/main_propeller/main_propeller.mat.meta
new file mode 100644
index 000000000..7c3cbfe2d
--- /dev/null
+++ b/Assets/Navy Pack/Materials/main_propeller/main_propeller.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 74aac81e2d3d23344a1cc7a684cab8ed
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/seahawk.meta b/Assets/Navy Pack/Materials/seahawk.meta
new file mode 100644
index 000000000..05576c660
--- /dev/null
+++ b/Assets/Navy Pack/Materials/seahawk.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 281c940f653f4ff4cab02c01489b0e57
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/seahawk/seahawk_airframe.mat b/Assets/Navy Pack/Materials/seahawk/seahawk_airframe.mat
new file mode 100644
index 000000000..fd5998cbf
--- /dev/null
+++ b/Assets/Navy Pack/Materials/seahawk/seahawk_airframe.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-4305130777649513704
+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: seahawk_airframe
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.8862745, g: 0.8862745, b: 0.8862745, a: 1}
+ - _Color: {r: 0.8862745, g: 0.8862745, b: 0.8862745, 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: []
diff --git a/Assets/Navy Pack/Materials/seahawk/seahawk_airframe.mat.meta b/Assets/Navy Pack/Materials/seahawk/seahawk_airframe.mat.meta
new file mode 100644
index 000000000..2e8b46426
--- /dev/null
+++ b/Assets/Navy Pack/Materials/seahawk/seahawk_airframe.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 17cbe51cc8f7b8f4ebbc4467c7607e73
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/seahawk/seahawk_cockpit.mat b/Assets/Navy Pack/Materials/seahawk/seahawk_cockpit.mat
new file mode 100644
index 000000000..76c808d4c
--- /dev/null
+++ b/Assets/Navy Pack/Materials/seahawk/seahawk_cockpit.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-5542831738087987424
+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: seahawk_cockpit
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.5568627, g: 0.5568627, b: 0.5568627, a: 1}
+ - _Color: {r: 0.5568627, g: 0.5568627, b: 0.5568627, 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: []
diff --git a/Assets/Navy Pack/Materials/seahawk/seahawk_cockpit.mat.meta b/Assets/Navy Pack/Materials/seahawk/seahawk_cockpit.mat.meta
new file mode 100644
index 000000000..4fd8fef51
--- /dev/null
+++ b/Assets/Navy Pack/Materials/seahawk/seahawk_cockpit.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 50bc2aafe7af7da4b861bfc8c13ff804
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/seahawk/seahawk_engine.mat b/Assets/Navy Pack/Materials/seahawk/seahawk_engine.mat
new file mode 100644
index 000000000..4a2ddc2c8
--- /dev/null
+++ b/Assets/Navy Pack/Materials/seahawk/seahawk_engine.mat
@@ -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: seahawk_engine
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.117647074, g: 0.117647074, b: 0.117647074, a: 1}
+ - _Color: {r: 0.117647044, g: 0.117647044, b: 0.117647044, 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: []
+--- !u!114 &6718069594661038579
+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
diff --git a/Assets/Navy Pack/Materials/seahawk/seahawk_engine.mat.meta b/Assets/Navy Pack/Materials/seahawk/seahawk_engine.mat.meta
new file mode 100644
index 000000000..4cbb5f903
--- /dev/null
+++ b/Assets/Navy Pack/Materials/seahawk/seahawk_engine.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 78982e47ce57d6643a4ac733a24971c1
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/seahawk/seahawk_tyre.mat b/Assets/Navy Pack/Materials/seahawk/seahawk_tyre.mat
new file mode 100644
index 000000000..8570ec014
--- /dev/null
+++ b/Assets/Navy Pack/Materials/seahawk/seahawk_tyre.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-6101730667614411444
+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: seahawk_tyre
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 0
+ - _WorkflowMode: 1
+ - _ZWrite: 1
+ m_Colors:
+ - _BaseColor: {r: 0.33725488, g: 0.33725488, b: 0.33725488, a: 1}
+ - _Color: {r: 0.33725485, g: 0.33725485, b: 0.33725485, 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: []
diff --git a/Assets/Navy Pack/Materials/seahawk/seahawk_tyre.mat.meta b/Assets/Navy Pack/Materials/seahawk/seahawk_tyre.mat.meta
new file mode 100644
index 000000000..5519d4dd7
--- /dev/null
+++ b/Assets/Navy Pack/Materials/seahawk/seahawk_tyre.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d71b22280e53c2b4aaa90fecf4bed2dc
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/small_propeller.meta b/Assets/Navy Pack/Materials/small_propeller.meta
new file mode 100644
index 000000000..73599f6cc
--- /dev/null
+++ b/Assets/Navy Pack/Materials/small_propeller.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7569c8070f278fc459abe0433dad0028
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Materials/small_propeller/small_propeller.mat b/Assets/Navy Pack/Materials/small_propeller/small_propeller.mat
new file mode 100644
index 000000000..532fff4a8
--- /dev/null
+++ b/Assets/Navy Pack/Materials/small_propeller/small_propeller.mat
@@ -0,0 +1,135 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-7666750415535956164
+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: small_propeller
+ 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: []
+ 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: 1
+ - _Glossiness: 0
+ - _GlossyReflections: 1
+ - _Metallic: 0
+ - _Mode: 0
+ - _OcclusionStrength: 1
+ - _Parallax: 0.02
+ - _QueueOffset: 0
+ - _ReceiveShadows: 1
+ - _Smoothness: 0
+ - _SmoothnessTextureChannel: 0
+ - _SpecularHighlights: 1
+ - _SrcBlend: 1
+ - _SrcBlendAlpha: 1
+ - _Surface: 0
+ - _UVSec: 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: []
diff --git a/Assets/Navy Pack/Materials/small_propeller/small_propeller.mat.meta b/Assets/Navy Pack/Materials/small_propeller/small_propeller.mat.meta
new file mode 100644
index 000000000..228413e25
--- /dev/null
+++ b/Assets/Navy Pack/Materials/small_propeller/small_propeller.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7112e09068f6ae34db6de6d34d47f64a
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes.meta b/Assets/Navy Pack/Meshes.meta
new file mode 100644
index 000000000..0bfe272a8
--- /dev/null
+++ b/Assets/Navy Pack/Meshes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 20be88f70e3c6b646a3987454e9774a0
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes/Awacs.fbx.meta b/Assets/Navy Pack/Meshes/Awacs.fbx.meta
new file mode 100644
index 000000000..a82619099
--- /dev/null
+++ b/Assets/Navy Pack/Meshes/Awacs.fbx.meta
@@ -0,0 +1,116 @@
+fileFormatVersion: 2
+guid: ab6066cb297b97442a6b18379204db4e
+ModelImporter:
+ serializedVersion: 19300
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: awacs_airframe
+ second: {fileID: 2100000, guid: 9f7e168a301c25e4285968a6d9a472eb, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: awacs_cockpit
+ second: {fileID: 2100000, guid: 6c3dd88c862e2624babbc678cf63b02a, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: awacs_dome
+ second: {fileID: 2100000, guid: f2154c6211e7e7e4198a9cebdbea24c5, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: awacs_engine
+ second: {fileID: 2100000, guid: e98ba889e895a1b4f9e3697e73f2c553, type: 2}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes/Carrier.fbx.meta b/Assets/Navy Pack/Meshes/Carrier.fbx.meta
new file mode 100644
index 000000000..160094f9e
--- /dev/null
+++ b/Assets/Navy Pack/Meshes/Carrier.fbx.meta
@@ -0,0 +1,116 @@
+fileFormatVersion: 2
+guid: 08ec7ffde74838045a306a14372d710a
+ModelImporter:
+ serializedVersion: 19300
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: carrier_deck
+ second: {fileID: 2100000, guid: 162ef5d2f7748b243a98872235fa7d31, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: carrier_hull
+ second: {fileID: 2100000, guid: 293d888a347d0cc498b297a857793db2, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: carrier_lines
+ second: {fileID: 2100000, guid: 7357938565cab4748b458a5749b04c98, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: carrier_tower
+ second: {fileID: 2100000, guid: 05244d560020dd34bb5861816ba9cde4, type: 2}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes/F18.fbx.meta b/Assets/Navy Pack/Meshes/F18.fbx.meta
new file mode 100644
index 000000000..5ef8ef63b
--- /dev/null
+++ b/Assets/Navy Pack/Meshes/F18.fbx.meta
@@ -0,0 +1,111 @@
+fileFormatVersion: 2
+guid: c5eadc855f505434990b0311d0649a52
+ModelImporter:
+ serializedVersion: 19300
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: f18_airframe
+ second: {fileID: 2100000, guid: f4fffb334858c8c4098a0a346a343bbf, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: f18_cockpit
+ second: {fileID: 2100000, guid: dd36dff1ea594c2479005fb933ce2e24, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: f18_engine
+ second: {fileID: 2100000, guid: 0e0d21a9a865b884797afb419e6f499e, type: 2}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes/F35.fbx.meta b/Assets/Navy Pack/Meshes/F35.fbx.meta
new file mode 100644
index 000000000..4034355f5
--- /dev/null
+++ b/Assets/Navy Pack/Meshes/F35.fbx.meta
@@ -0,0 +1,111 @@
+fileFormatVersion: 2
+guid: a1a74ddd5a4165744bd89f3ebc7f4230
+ModelImporter:
+ serializedVersion: 19300
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: f35_airframe
+ second: {fileID: 2100000, guid: 95a71a8830c654f4e916ef0955f211b9, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: f35_cockpit
+ second: {fileID: 2100000, guid: 90acbf24c94372d4eaac5938eab6fbdd, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: f35_engine
+ second: {fileID: 2100000, guid: 5ff48dd6898d3ea44ac0cd900b4ca30e, type: 2}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes/Hawkeye.fbx.meta b/Assets/Navy Pack/Meshes/Hawkeye.fbx.meta
new file mode 100644
index 000000000..cdcb7a1e3
--- /dev/null
+++ b/Assets/Navy Pack/Meshes/Hawkeye.fbx.meta
@@ -0,0 +1,111 @@
+fileFormatVersion: 2
+guid: c6580dbf574d5d04ba32b024f756a714
+ModelImporter:
+ serializedVersion: 19300
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: hawkeye_airframe
+ second: {fileID: 2100000, guid: 3ba7393833578974dac15a91a4291a53, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: hawkeye_cockpit
+ second: {fileID: 2100000, guid: 226d3470aa310ba42b4f134658304ecb, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: hawkeye_engine
+ second: {fileID: 2100000, guid: b48aefb4dc0e07d47b2b4886515c26f2, type: 2}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes/Seahawk.fbx.meta b/Assets/Navy Pack/Meshes/Seahawk.fbx.meta
new file mode 100644
index 000000000..1710ad914
--- /dev/null
+++ b/Assets/Navy Pack/Meshes/Seahawk.fbx.meta
@@ -0,0 +1,116 @@
+fileFormatVersion: 2
+guid: 9759800d67ac18d48bcf9a10ce6aa287
+ModelImporter:
+ serializedVersion: 19300
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: seahawk_airframe
+ second: {fileID: 2100000, guid: 17cbe51cc8f7b8f4ebbc4467c7607e73, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: seahawk_cockpit
+ second: {fileID: 2100000, guid: 50bc2aafe7af7da4b861bfc8c13ff804, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: seahawk_engine
+ second: {fileID: 2100000, guid: 78982e47ce57d6643a4ac733a24971c1, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: seahawk_tyre
+ second: {fileID: 2100000, guid: d71b22280e53c2b4aaa90fecf4bed2dc, type: 2}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes/landinggear_back.fbx.meta b/Assets/Navy Pack/Meshes/landinggear_back.fbx.meta
new file mode 100644
index 000000000..a158a9e09
--- /dev/null
+++ b/Assets/Navy Pack/Meshes/landinggear_back.fbx.meta
@@ -0,0 +1,106 @@
+fileFormatVersion: 2
+guid: 57cb482a463cb27468f11fdcaeceb7d9
+ModelImporter:
+ serializedVersion: 19300
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: landinggear_back_axle
+ second: {fileID: 2100000, guid: d9cca568db016e94e8507a413a7db906, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: landinggear_back_tyre
+ second: {fileID: 2100000, guid: 80f22f2f7f01bab4888c1fd0606b4638, type: 2}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes/landinggear_front.fbx.meta b/Assets/Navy Pack/Meshes/landinggear_front.fbx.meta
new file mode 100644
index 000000000..fdd82254a
--- /dev/null
+++ b/Assets/Navy Pack/Meshes/landinggear_front.fbx.meta
@@ -0,0 +1,106 @@
+fileFormatVersion: 2
+guid: 2673b1485fdbc0f4fbcb2612d52af06e
+ModelImporter:
+ serializedVersion: 19300
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: landinggear_front_axle
+ second: {fileID: 2100000, guid: 810e0268b81bdd14faa6684d901d9a2c, type: 2}
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: landinggear_front_tyre
+ second: {fileID: 2100000, guid: 8cda64a785e93a849bbe2f2750378458, type: 2}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes/main_propeller.fbx.meta b/Assets/Navy Pack/Meshes/main_propeller.fbx.meta
new file mode 100644
index 000000000..4bad6b81a
--- /dev/null
+++ b/Assets/Navy Pack/Meshes/main_propeller.fbx.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: e7b5c566f78e82645ac7b8df5d68dcf5
+ModelImporter:
+ serializedVersion: 19300
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: main_propeller
+ second: {fileID: 2100000, guid: 74aac81e2d3d23344a1cc7a684cab8ed, type: 2}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Meshes/small_prop.fbx.meta b/Assets/Navy Pack/Meshes/small_prop.fbx.meta
new file mode 100644
index 000000000..3f5b4663a
--- /dev/null
+++ b/Assets/Navy Pack/Meshes/small_prop.fbx.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 3c8fc527dc00e944a962956335d6b438
+ModelImporter:
+ serializedVersion: 19300
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: small_propeller
+ second: {fileID: 2100000, guid: 7112e09068f6ae34db6de6d34d47f64a, type: 2}
+ materials:
+ materialImportMode: 1
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ motionNodeName:
+ rigImportErrors:
+ rigImportWarnings:
+ animationImportErrors:
+ animationImportWarnings:
+ animationRetargetingWarnings:
+ animationDoRetargetingWarnings: 0
+ importAnimatedCustomProperties: 0
+ importConstraints: 0
+ animationCompression: 1
+ animationRotationError: 0.5
+ animationPositionError: 0.5
+ animationScaleError: 0.5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ extraUserProperties: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 1
+ tangentSpace:
+ normalSmoothAngle: 60
+ normalImportMode: 0
+ tangentImportMode: 3
+ normalCalculationMode: 4
+ legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
+ blendShapeNormalImportMode: 1
+ normalSmoothingSource: 0
+ referencedClips: []
+ importAnimation: 1
+ humanDescription:
+ serializedVersion: 3
+ human: []
+ skeleton: []
+ armTwist: 0.5
+ foreArmTwist: 0.5
+ upperLegTwist: 0.5
+ legTwist: 0.5
+ armStretch: 0.05
+ legStretch: 0.05
+ feetSpacing: 0
+ globalScale: 1
+ rootMotionBoneName:
+ hasTranslationDoF: 0
+ hasExtraRoot: 0
+ skeletonHasParents: 1
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ autoGenerateAvatarMappingIfUnspecified: 1
+ animationType: 2
+ humanoidOversampling: 1
+ avatarSetup: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs.meta b/Assets/Navy Pack/Prefabs.meta
new file mode 100644
index 000000000..5828c2c7e
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7cfde23e33874064cbba2cd9b66a8ba8
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs/Awacs.prefab b/Assets/Navy Pack/Prefabs/Awacs.prefab
new file mode 100644
index 000000000..2c97c37b8
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/Awacs.prefab
@@ -0,0 +1,99 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8683486014554234569
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5682040096812248282}
+ - component: {fileID: 3711440953476257516}
+ - component: {fileID: 6970770169568291349}
+ - component: {fileID: -6399919337702798095}
+ m_Layer: 0
+ m_Name: Awacs
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5682040096812248282
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8683486014554234569}
+ 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_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &3711440953476257516
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8683486014554234569}
+ m_Mesh: {fileID: 7241036918137702786, guid: ab6066cb297b97442a6b18379204db4e, type: 3}
+--- !u!23 &6970770169568291349
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8683486014554234569}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 9f7e168a301c25e4285968a6d9a472eb, type: 2}
+ - {fileID: 2100000, guid: 6c3dd88c862e2624babbc678cf63b02a, type: 2}
+ - {fileID: 2100000, guid: e98ba889e895a1b4f9e3697e73f2c553, type: 2}
+ - {fileID: 2100000, guid: f2154c6211e7e7e4198a9cebdbea24c5, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &-6399919337702798095
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8683486014554234569}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 7241036918137702786, guid: ab6066cb297b97442a6b18379204db4e, type: 3}
diff --git a/Assets/Navy Pack/Prefabs/Awacs.prefab.meta b/Assets/Navy Pack/Prefabs/Awacs.prefab.meta
new file mode 100644
index 000000000..0249beff5
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/Awacs.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7aa603c430729ab4492ad27a400e5194
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs/Carrier.prefab b/Assets/Navy Pack/Prefabs/Carrier.prefab
new file mode 100644
index 000000000..79f6ebfdf
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/Carrier.prefab
@@ -0,0 +1,99 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8032535109072541925
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6422719964931271414}
+ - component: {fileID: 2628153265397076160}
+ - component: {fileID: 8594444871032204345}
+ - component: {fileID: 4469749714964711852}
+ m_Layer: 0
+ m_Name: Carrier
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6422719964931271414
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8032535109072541925}
+ 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_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &2628153265397076160
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8032535109072541925}
+ m_Mesh: {fileID: 512672024619533229, guid: 08ec7ffde74838045a306a14372d710a, type: 3}
+--- !u!23 &8594444871032204345
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8032535109072541925}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 162ef5d2f7748b243a98872235fa7d31, type: 2}
+ - {fileID: 2100000, guid: 7357938565cab4748b458a5749b04c98, type: 2}
+ - {fileID: 2100000, guid: 293d888a347d0cc498b297a857793db2, type: 2}
+ - {fileID: 2100000, guid: 05244d560020dd34bb5861816ba9cde4, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &4469749714964711852
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8032535109072541925}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 512672024619533229, guid: 08ec7ffde74838045a306a14372d710a, type: 3}
diff --git a/Assets/Navy Pack/Prefabs/Carrier.prefab.meta b/Assets/Navy Pack/Prefabs/Carrier.prefab.meta
new file mode 100644
index 000000000..baa26f731
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/Carrier.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: eb727f41c5e41654f8d412ad349924d2
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs/F18.prefab b/Assets/Navy Pack/Prefabs/F18.prefab
new file mode 100644
index 000000000..7d832294d
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/F18.prefab
@@ -0,0 +1,326 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5638021280938902188
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8675375042841948351}
+ - component: {fileID: 377767027855395465}
+ - component: {fileID: 6197674879935247984}
+ - component: {fileID: 2616444569232832791}
+ m_Layer: 0
+ m_Name: F18
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8675375042841948351
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5638021280938902188}
+ 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_Children:
+ - {fileID: 1622410643321493597}
+ - {fileID: 7732778015569450187}
+ - {fileID: 2152163144414047640}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &377767027855395465
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5638021280938902188}
+ m_Mesh: {fileID: 1716815184689860582, guid: c5eadc855f505434990b0311d0649a52, type: 3}
+--- !u!23 &6197674879935247984
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5638021280938902188}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: f4fffb334858c8c4098a0a346a343bbf, type: 2}
+ - {fileID: 2100000, guid: 0e0d21a9a865b884797afb419e6f499e, type: 2}
+ - {fileID: 2100000, guid: dd36dff1ea594c2479005fb933ce2e24, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &2616444569232832791
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5638021280938902188}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 1716815184689860582, guid: c5eadc855f505434990b0311d0649a52, type: 3}
+--- !u!1001 &1223504273663962702
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 8675375042841948351}
+ m_Modifications:
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 25.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 65.3
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4287320765101240773, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_Name
+ value: landinggear_front
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 7d55ae198eca90d46b6acbf94fa54b86, type: 3}
+--- !u!4 &2152163144414047640 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ m_PrefabInstance: {fileID: 1223504273663962702}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &2920099280400855057
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 8675375042841948351}
+ m_Modifications:
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 46
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 22
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -97
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 180
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8470505263354074825, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_Name
+ value: landinggear_back_right
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: e9a661355d4b56b43bbf925a68416dda, type: 3}
+--- !u!4 &7732778015569450187 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ m_PrefabInstance: {fileID: 2920099280400855057}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &6149079879601142919
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 8675375042841948351}
+ m_Modifications:
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -46
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 22
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -97
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8470505263354074825, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_Name
+ value: landinggear_back_left
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: e9a661355d4b56b43bbf925a68416dda, type: 3}
+--- !u!4 &1622410643321493597 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ m_PrefabInstance: {fileID: 6149079879601142919}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Navy Pack/Prefabs/F18.prefab.meta b/Assets/Navy Pack/Prefabs/F18.prefab.meta
new file mode 100644
index 000000000..baaa91efc
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/F18.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 36a900f7af3d50f47979517514bbd237
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs/F35.prefab b/Assets/Navy Pack/Prefabs/F35.prefab
new file mode 100644
index 000000000..4001aaca8
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/F35.prefab
@@ -0,0 +1,326 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8913466340421308965
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5614202792729141302}
+ - component: {fileID: 3509044144455506432}
+ - component: {fileID: 7173715673114519289}
+ - component: {fileID: 5445843811206511792}
+ m_Layer: 0
+ m_Name: F35
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5614202792729141302
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8913466340421308965}
+ 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_Children:
+ - {fileID: 1532053994092328135}
+ - {fileID: 3165323339649418348}
+ - {fileID: 4921936323972548687}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &3509044144455506432
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8913466340421308965}
+ m_Mesh: {fileID: -4500790672820164825, guid: a1a74ddd5a4165744bd89f3ebc7f4230, type: 3}
+--- !u!23 &7173715673114519289
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8913466340421308965}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 95a71a8830c654f4e916ef0955f211b9, type: 2}
+ - {fileID: 2100000, guid: 90acbf24c94372d4eaac5938eab6fbdd, type: 2}
+ - {fileID: 2100000, guid: 5ff48dd6898d3ea44ac0cd900b4ca30e, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &5445843811206511792
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8913466340421308965}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: -4500790672820164825, guid: a1a74ddd5a4165744bd89f3ebc7f4230, type: 3}
+--- !u!1001 &5290319300805839769
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 5614202792729141302}
+ m_Modifications:
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 17.7
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 102
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4287320765101240773, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_Name
+ value: landinggear_front
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 7d55ae198eca90d46b6acbf94fa54b86, type: 3}
+--- !u!4 &4921936323972548687 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ m_PrefabInstance: {fileID: 5290319300805839769}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &6238871478097039389
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 5614202792729141302}
+ m_Modifications:
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -60
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 14.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -76.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8470505263354074825, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_Name
+ value: landinggear_back_left
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: e9a661355d4b56b43bbf925a68416dda, type: 3}
+--- !u!4 &1532053994092328135 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ m_PrefabInstance: {fileID: 6238871478097039389}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &7510705375760588982
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 5614202792729141302}
+ m_Modifications:
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 60
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 14.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -76.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 180
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8470505263354074825, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_Name
+ value: landinggear_back_right
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: e9a661355d4b56b43bbf925a68416dda, type: 3}
+--- !u!4 &3165323339649418348 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ m_PrefabInstance: {fileID: 7510705375760588982}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Navy Pack/Prefabs/F35.prefab.meta b/Assets/Navy Pack/Prefabs/F35.prefab.meta
new file mode 100644
index 000000000..eb3f131cf
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/F35.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 130051f3e473f0d47bd0a0e355b24fb7
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs/Hawkeye.prefab b/Assets/Navy Pack/Prefabs/Hawkeye.prefab
new file mode 100644
index 000000000..ef7f47078
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/Hawkeye.prefab
@@ -0,0 +1,326 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &1471574114191719901
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2465524004318367694}
+ - component: {fileID: 6875954000980047352}
+ - component: {fileID: 887423327425825025}
+ - component: {fileID: 9049725798628828331}
+ m_Layer: 0
+ m_Name: Hawkeye
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2465524004318367694
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1471574114191719901}
+ 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_Children:
+ - {fileID: 2092209805363669698}
+ - {fileID: 9096365126191719740}
+ - {fileID: 8960718078697134714}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &6875954000980047352
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1471574114191719901}
+ m_Mesh: {fileID: 7037165829162734932, guid: c6580dbf574d5d04ba32b024f756a714, type: 3}
+--- !u!23 &887423327425825025
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1471574114191719901}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 3ba7393833578974dac15a91a4291a53, type: 2}
+ - {fileID: 2100000, guid: 226d3470aa310ba42b4f134658304ecb, type: 2}
+ - {fileID: 2100000, guid: b48aefb4dc0e07d47b2b4886515c26f2, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &9049725798628828331
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1471574114191719901}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 7037165829162734932, guid: c6580dbf574d5d04ba32b024f756a714, type: 3}
+--- !u!1001 &4461617607727219174
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 2465524004318367694}
+ m_Modifications:
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 128
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 21.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 20.9
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 180
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8470505263354074825, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_Name
+ value: landinggear_back_right
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: e9a661355d4b56b43bbf925a68416dda, type: 3}
+--- !u!4 &9096365126191719740 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ m_PrefabInstance: {fileID: 4461617607727219174}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &6836213321311931928
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 2465524004318367694}
+ m_Modifications:
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -128
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 21.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 20.9
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8470505263354074825, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ propertyPath: m_Name
+ value: landinggear_back_left
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: e9a661355d4b56b43bbf925a68416dda, type: 3}
+--- !u!4 &2092209805363669698 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4888127913651414234, guid: e9a661355d4b56b43bbf925a68416dda,
+ type: 3}
+ m_PrefabInstance: {fileID: 6836213321311931928}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &8178004486824712620
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 2465524004318367694}
+ m_Modifications:
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 24.7
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 274
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4287320765101240773, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ propertyPath: m_Name
+ value: landinggear_front
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 7d55ae198eca90d46b6acbf94fa54b86, type: 3}
+--- !u!4 &8960718078697134714 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 947099927166911446, guid: 7d55ae198eca90d46b6acbf94fa54b86,
+ type: 3}
+ m_PrefabInstance: {fileID: 8178004486824712620}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Navy Pack/Prefabs/Hawkeye.prefab.meta b/Assets/Navy Pack/Prefabs/Hawkeye.prefab.meta
new file mode 100644
index 000000000..a1c5cbfff
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/Hawkeye.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs/Seahawk.prefab b/Assets/Navy Pack/Prefabs/Seahawk.prefab
new file mode 100644
index 000000000..1b82455b4
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/Seahawk.prefab
@@ -0,0 +1,276 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5727963831297776388
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8729815669335189783}
+ - component: {fileID: 323572692770083617}
+ - component: {fileID: 6287314032849858520}
+ - component: {fileID: -3723237725194910348}
+ m_Layer: 0
+ m_Name: Seahawk
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &8729815669335189783
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5727963831297776388}
+ 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_Children:
+ - {fileID: 5676929694636562012}
+ - {fileID: 9115218692978993531}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &323572692770083617
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5727963831297776388}
+ m_Mesh: {fileID: -9069522284548219780, guid: 9759800d67ac18d48bcf9a10ce6aa287, type: 3}
+--- !u!23 &6287314032849858520
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5727963831297776388}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 17cbe51cc8f7b8f4ebbc4467c7607e73, type: 2}
+ - {fileID: 2100000, guid: 50bc2aafe7af7da4b861bfc8c13ff804, type: 2}
+ - {fileID: 2100000, guid: 78982e47ce57d6643a4ac733a24971c1, type: 2}
+ - {fileID: 2100000, guid: d71b22280e53c2b4aaa90fecf4bed2dc, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &-3723237725194910348
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5727963831297776388}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: -9069522284548219780, guid: 9759800d67ac18d48bcf9a10ce6aa287, type: 3}
+--- !u!1001 &1177275522520678696
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 8729815669335189783}
+ m_Modifications:
+ - target: {fileID: 23678963723748397, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_Name
+ value: main_propeller
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 110
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 3895409429212935742, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6817891985843967860, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 108
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 949a64464f0d27b4ba52993df2c3ddb1, type: 3}
+--- !u!4 &5676929694636562012 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 6817891985843967860, guid: 949a64464f0d27b4ba52993df2c3ddb1,
+ type: 3}
+ m_PrefabInstance: {fileID: 1177275522520678696}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &4187268308924857459
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 8729815669335189783}
+ m_Modifications:
+ - target: {fileID: 818071634408957310, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_Name
+ value: small_prop
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 17
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 102
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -365
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4395801350744708973, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4928038933418480904, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4928038933418480904, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -365
+ objectReference: {fileID: 0}
+ - target: {fileID: 4928038933418480904, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 100
+ objectReference: {fileID: 0}
+ - target: {fileID: 4928038933418480904, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 17
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: d2d92d3d2f51aae4cb32f292c29ae78f, type: 3}
+--- !u!4 &9115218692978993531 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4928038933418480904, guid: d2d92d3d2f51aae4cb32f292c29ae78f,
+ type: 3}
+ m_PrefabInstance: {fileID: 4187268308924857459}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Navy Pack/Prefabs/Seahawk.prefab.meta b/Assets/Navy Pack/Prefabs/Seahawk.prefab.meta
new file mode 100644
index 000000000..f20435d5f
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/Seahawk.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 60d236126441e7e45a148f344d341ef3
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs/landinggear_back.prefab b/Assets/Navy Pack/Prefabs/landinggear_back.prefab
new file mode 100644
index 000000000..4a7ee60de
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/landinggear_back.prefab
@@ -0,0 +1,97 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8470505263354074825
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4888127913651414234}
+ - component: {fileID: 4507286081335598828}
+ - component: {fileID: 7904258955643838997}
+ - component: {fileID: 8117940935538691441}
+ m_Layer: 0
+ m_Name: landinggear_back
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4888127913651414234
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8470505263354074825}
+ 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_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4507286081335598828
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8470505263354074825}
+ m_Mesh: {fileID: 2563741038413474576, guid: 57cb482a463cb27468f11fdcaeceb7d9, type: 3}
+--- !u!23 &7904258955643838997
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8470505263354074825}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: d9cca568db016e94e8507a413a7db906, type: 2}
+ - {fileID: 2100000, guid: 80f22f2f7f01bab4888c1fd0606b4638, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &8117940935538691441
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8470505263354074825}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 2563741038413474576, guid: 57cb482a463cb27468f11fdcaeceb7d9, type: 3}
diff --git a/Assets/Navy Pack/Prefabs/landinggear_back.prefab.meta b/Assets/Navy Pack/Prefabs/landinggear_back.prefab.meta
new file mode 100644
index 000000000..6b8bb7e78
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/landinggear_back.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e9a661355d4b56b43bbf925a68416dda
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs/landinggear_front.prefab b/Assets/Navy Pack/Prefabs/landinggear_front.prefab
new file mode 100644
index 000000000..baf7f2c19
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/landinggear_front.prefab
@@ -0,0 +1,97 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4287320765101240773
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 947099927166911446}
+ - component: {fileID: 8106409934194358752}
+ - component: {fileID: 2540955471814182169}
+ - component: {fileID: -6456643397887935649}
+ m_Layer: 0
+ m_Name: landinggear_front
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &947099927166911446
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4287320765101240773}
+ 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_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &8106409934194358752
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4287320765101240773}
+ m_Mesh: {fileID: -6958751953723762588, guid: 2673b1485fdbc0f4fbcb2612d52af06e, type: 3}
+--- !u!23 &2540955471814182169
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4287320765101240773}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 810e0268b81bdd14faa6684d901d9a2c, type: 2}
+ - {fileID: 2100000, guid: 8cda64a785e93a849bbe2f2750378458, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &-6456643397887935649
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4287320765101240773}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: -6958751953723762588, guid: 2673b1485fdbc0f4fbcb2612d52af06e, type: 3}
diff --git a/Assets/Navy Pack/Prefabs/landinggear_front.prefab.meta b/Assets/Navy Pack/Prefabs/landinggear_front.prefab.meta
new file mode 100644
index 000000000..8622886ca
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/landinggear_front.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 7d55ae198eca90d46b6acbf94fa54b86
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs/main_propeller.prefab b/Assets/Navy Pack/Prefabs/main_propeller.prefab
new file mode 100644
index 000000000..a2ce3c4e5
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/main_propeller.prefab
@@ -0,0 +1,96 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &7549543135410431335
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6817891985843967860}
+ - component: {fileID: 2577468683101760834}
+ - component: {fileID: 8140691145592312251}
+ - component: {fileID: -2470337697308860091}
+ m_Layer: 0
+ m_Name: main_propeller
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6817891985843967860
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7549543135410431335}
+ 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_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &2577468683101760834
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7549543135410431335}
+ m_Mesh: {fileID: 5396606519411297917, guid: e7b5c566f78e82645ac7b8df5d68dcf5, type: 3}
+--- !u!23 &8140691145592312251
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7549543135410431335}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 74aac81e2d3d23344a1cc7a684cab8ed, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &-2470337697308860091
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7549543135410431335}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 5396606519411297917, guid: e7b5c566f78e82645ac7b8df5d68dcf5, type: 3}
diff --git a/Assets/Navy Pack/Prefabs/main_propeller.prefab.meta b/Assets/Navy Pack/Prefabs/main_propeller.prefab.meta
new file mode 100644
index 000000000..3196e38c3
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/main_propeller.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 949a64464f0d27b4ba52993df2c3ddb1
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Prefabs/small_prop.prefab b/Assets/Navy Pack/Prefabs/small_prop.prefab
new file mode 100644
index 000000000..ced00941b
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/small_prop.prefab
@@ -0,0 +1,96 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8230522469763704603
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4928038933418480904}
+ - component: {fileID: 4123309289160519486}
+ - component: {fileID: 7639343673291887559}
+ - component: {fileID: -524519230301733054}
+ m_Layer: 0
+ m_Name: small_prop
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4928038933418480904
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8230522469763704603}
+ 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_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &4123309289160519486
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8230522469763704603}
+ m_Mesh: {fileID: 7403769273968972748, guid: 3c8fc527dc00e944a962956335d6b438, type: 3}
+--- !u!23 &7639343673291887559
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8230522469763704603}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 7112e09068f6ae34db6de6d34d47f64a, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!64 &-524519230301733054
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8230522469763704603}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 7403769273968972748, guid: 3c8fc527dc00e944a962956335d6b438, type: 3}
diff --git a/Assets/Navy Pack/Prefabs/small_prop.prefab.meta b/Assets/Navy Pack/Prefabs/small_prop.prefab.meta
new file mode 100644
index 000000000..6e86162e3
--- /dev/null
+++ b/Assets/Navy Pack/Prefabs/small_prop.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d2d92d3d2f51aae4cb32f292c29ae78f
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Scenes.meta b/Assets/Navy Pack/Scenes.meta
new file mode 100644
index 000000000..d6f418a6a
--- /dev/null
+++ b/Assets/Navy Pack/Scenes.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5553947dbca95f94fa40cccebfd425a3
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Navy Pack/Scenes/DemoScene.unity b/Assets/Navy Pack/Scenes/DemoScene.unity
new file mode 100644
index 000000000..3a60e3412
--- /dev/null
+++ b/Assets/Navy Pack/Scenes/DemoScene.unity
@@ -0,0 +1,2002 @@
+%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: 705507994}
+ m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 11
+ 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: 500
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 500
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 2
+ m_PVRDenoiserTypeDirect: 0
+ m_PVRDenoiserTypeIndirect: 0
+ m_PVRDenoiserTypeAO: 0
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 0
+ 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_UseShadowmask: 1
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 2
+ 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
+ accuratePlacement: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1001 &27800758
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -159
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 164
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -188
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.59913194
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.80065036
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 13
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 73.616005
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8913466340421308965, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_Name
+ value: F35 (4)
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 130051f3e473f0d47bd0a0e355b24fb7, type: 3}
+--- !u!1001 &228671188
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -62
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 164
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 504
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.043619405
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9990483
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 9
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8913466340421308965, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_Name
+ value: F35
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 130051f3e473f0d47bd0a0e355b24fb7, type: 3}
+--- !u!1001 &284581575
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5727963831297776388, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_Name
+ value: Seahawk
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 92
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 162
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 254
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.79863554
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.60181504
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 6
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -106
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 60d236126441e7e45a148f344d341ef3, type: 3}
+--- !u!1 &306637201
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 306637202}
+ m_Layer: 0
+ m_Name: Environment
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &306637202
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 306637201}
+ 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_Children:
+ - {fileID: 654255852}
+ m_Father: {fileID: 0}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &392920539
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 392920540}
+ - component: {fileID: 392920541}
+ m_Layer: 0
+ m_Name: Point Light 1
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &392920540
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 392920539}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -731, y: 974, z: 826}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 650969805}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!108 &392920541
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 392920539}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 2
+ m_Shape: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 0.84
+ m_Range: 10000
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!1001 &522634408
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5638021280938902188, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_Name
+ value: F18
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 61
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 164
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 514
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0.00022838938
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.04361881
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0.0052309753
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9990346
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 8
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -5
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 36a900f7af3d50f47979517514bbd237, type: 3}
+--- !u!1001 &589388549
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 1471574114191719901, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_Name
+ value: Hawkeye
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 99
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 162
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 132
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.79863554
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.60181504
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -106
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.15
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.15
+ objectReference: {fileID: 0}
+ - target: {fileID: 2465524004318367694, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.15
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 555eaf4e59d5e3d4f9f63c3e0f9d81c1, type: 3}
+--- !u!1 &650969804
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 650969805}
+ m_Layer: 0
+ m_Name: Lights
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &650969805
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 650969804}
+ 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_Children:
+ - {fileID: 705507995}
+ - {fileID: 392920540}
+ - {fileID: 2102803105}
+ - {fileID: 1504315865}
+ - {fileID: 657962411}
+ m_Father: {fileID: 0}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &654255851
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 654255852}
+ - component: {fileID: 654255855}
+ - component: {fileID: 654255854}
+ - component: {fileID: 654255853}
+ m_Layer: 0
+ m_Name: Sea
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &654255852
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 654255851}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 700, y: 1, z: 700}
+ m_Children: []
+ m_Father: {fileID: 306637202}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!64 &654255853
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 654255851}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &654255854
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 654255851}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_DynamicOccludee: 1
+ m_MotionVectors: 1
+ m_LightProbeUsage: 1
+ m_ReflectionProbeUsage: 1
+ m_RayTracingMode: 2
+ m_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 212e1b71f188b3140806b7a14dd347ce, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+--- !u!33 &654255855
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 654255851}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1 &657962410
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 657962411}
+ - component: {fileID: 657962412}
+ m_Layer: 0
+ m_Name: Point Light 4
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &657962411
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 657962410}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -341, y: -1992, z: 1303}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 650969805}
+ m_RootOrder: 4
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!108 &657962412
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 657962410}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 2
+ m_Shape: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 0.84
+ m_Range: 10000
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!1 &705507993
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 705507995}
+ - component: {fileID: 705507994}
+ m_Layer: 0
+ m_Name: Directional Light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &705507994
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 705507993}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 0.32
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 2
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 1
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &705507995
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 705507993}
+ m_LocalRotation: {x: 0.38457707, y: -0.29742125, z: 0.13242047, w: 0.86377424}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 650969805}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 48, y: -38, z: 0}
+--- !u!1 &963194225
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 963194228}
+ - component: {fileID: 963194227}
+ - component: {fileID: 963194226}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!81 &963194226
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 963194225}
+ m_Enabled: 1
+--- !u!20 &963194227
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 963194225}
+ 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_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.3
+ far clip plane: 5000
+ field of view: 27
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: -1
+ 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 &963194228
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 963194225}
+ m_LocalRotation: {x: 0.10779307, y: 0.8625027, z: -0.20706856, w: 0.44899046}
+ m_LocalPosition: {x: -1164, y: 933, z: 1001}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 27, y: 125, z: 0}
+--- !u!1001 &998993872
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6422719964931271414, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8032535109072541925, guid: eb727f41c5e41654f8d412ad349924d2,
+ type: 3}
+ propertyPath: m_Name
+ value: Carrier
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: eb727f41c5e41654f8d412ad349924d2, type: 3}
+--- !u!1001 &1284757626
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -158
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 164
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -474
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.59913194
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.80065036
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 10
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 73.616005
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8913466340421308965, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_Name
+ value: F35 (1)
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 130051f3e473f0d47bd0a0e355b24fb7, type: 3}
+--- !u!1001 &1361244300
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -161
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 164
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -377
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.59913194
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.80065036
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 11
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 73.616005
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8913466340421308965, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_Name
+ value: F35 (2)
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 130051f3e473f0d47bd0a0e355b24fb7, type: 3}
+--- !u!1 &1504315864
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1504315865}
+ - component: {fileID: 1504315866}
+ m_Layer: 0
+ m_Name: Point Light 3
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1504315865
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1504315864}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -120, y: -1992, z: -1701}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 650969805}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!108 &1504315866
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1504315864}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 2
+ m_Shape: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 0.84
+ m_Range: 10000
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!1001 &1556364762
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5638021280938902188, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_Name
+ value: F18 (2)
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 107.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 163.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -420.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.002495211
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.55135447
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0.0046031713
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.8342547
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 15
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0.52900004
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -66.920006
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0.282
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 36a900f7af3d50f47979517514bbd237, type: 3}
+--- !u!1001 &1598735485
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 398
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 325
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 155
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0.16504757
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9862857
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 4
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 19
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5682040096812248282, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8683486014554234569, guid: 7aa603c430729ab4492ad27a400e5194,
+ type: 3}
+ propertyPath: m_Name
+ value: Awacs
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 7aa603c430729ab4492ad27a400e5194, type: 3}
+--- !u!1001 &1621799885
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5727963831297776388, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_Name
+ value: Seahawk (1)
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 86.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 162
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 366.1
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.79863554
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.60181504
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 7
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -106
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8729815669335189783, guid: 60d236126441e7e45a148f344d341ef3,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 60d236126441e7e45a148f344d341ef3, type: 3}
+--- !u!1001 &1820609263
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5638021280938902188, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_Name
+ value: F18 (3)
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 93
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 233
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -950
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0.0696704
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.09544107
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0.004242251
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9929849
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 16
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: -8
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -11
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0.282
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 36a900f7af3d50f47979517514bbd237, type: 3}
+--- !u!1001 &1959852306
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5638021280938902188, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_Name
+ value: F18 (1)
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 100.7
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 163.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -336.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.002495211
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.55135447
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0.0046031713
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.8342547
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 14
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0.52900004
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: -66.920006
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0.282
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8675375042841948351, guid: 36a900f7af3d50f47979517514bbd237,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 36a900f7af3d50f47979517514bbd237, type: 3}
+--- !u!1001 &2089275839
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -157
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 164
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -284
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.59913194
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.80065036
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 12
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 73.616005
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.x
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.y
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 5614202792729141302, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 8913466340421308965, guid: 130051f3e473f0d47bd0a0e355b24fb7,
+ type: 3}
+ propertyPath: m_Name
+ value: F35 (3)
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 130051f3e473f0d47bd0a0e355b24fb7, type: 3}
+--- !u!1 &2102803104
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2102803105}
+ - component: {fileID: 2102803106}
+ m_Layer: 0
+ m_Name: Point Light 2
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &2102803105
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2102803104}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 206, y: 974, z: -83}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 650969805}
+ m_RootOrder: 2
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!108 &2102803106
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2102803104}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 2
+ m_Shape: 0
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_Intensity: 0.84
+ m_Range: 10000
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
diff --git a/Assets/scenes/main_menu.unity.meta b/Assets/Navy Pack/Scenes/DemoScene.unity.meta
similarity index 74%
rename from Assets/scenes/main_menu.unity.meta
rename to Assets/Navy Pack/Scenes/DemoScene.unity.meta
index 573defe79..952bd1e9e 100644
--- a/Assets/scenes/main_menu.unity.meta
+++ b/Assets/Navy Pack/Scenes/DemoScene.unity.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: c817c1b09586c49e5b4a849ce1cf119b
+guid: 9fc0d4010bbf28b4594072e72b8655ab
DefaultImporter:
externalObjects: {}
userData:
diff --git a/Assets/Navy Pack/readme.pdf b/Assets/Navy Pack/readme.pdf
new file mode 100644
index 000000000..f6a3bd30d
Binary files /dev/null and b/Assets/Navy Pack/readme.pdf differ
diff --git a/Assets/scenes/menu_benchmark.unity.meta b/Assets/Navy Pack/readme.pdf.meta
similarity index 74%
rename from Assets/scenes/menu_benchmark.unity.meta
rename to Assets/Navy Pack/readme.pdf.meta
index 086fb9b54..b49c2473d 100644
--- a/Assets/scenes/menu_benchmark.unity.meta
+++ b/Assets/Navy Pack/readme.pdf.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: a18cbb07ef76d49fba92642ea25b7188
+guid: f4f1895bba46cb440900b695644a03f6
DefaultImporter:
externalObjects: {}
userData:
diff --git a/Assets/New Folder.meta b/Assets/New Folder.meta
new file mode 100644
index 000000000..3431dcd31
--- /dev/null
+++ b/Assets/New Folder.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3d7c545287865fb4694916674eb38c28
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Objects/Levels/Island/ClearSky/Island_Post_Clear.asset b/Assets/Objects/Levels/Island/ClearSky/Island_Post_Clear.asset
index 0b8c9f457..130fa0084 100644
--- a/Assets/Objects/Levels/Island/ClearSky/Island_Post_Clear.asset
+++ b/Assets/Objects/Levels/Island/ClearSky/Island_Post_Clear.asset
@@ -13,17 +13,12 @@ MonoBehaviour:
m_Name: WhiteBalance
m_EditorClassIdentifier:
active: 1
- m_AdvancedMode: 0
temperature:
m_OverrideState: 1
m_Value: -13.5
- min: -100
- max: 100
tint:
m_OverrideState: 1
m_Value: 7.2
- min: -100
- max: 100
--- !u!114 &-7200118074554914838
MonoBehaviour:
m_ObjectHideFlags: 3
@@ -37,7 +32,6 @@ MonoBehaviour:
m_Name: LiftGammaGain
m_EditorClassIdentifier:
active: 1
- m_AdvancedMode: 0
lift:
m_OverrideState: 1
m_Value: {x: 1, y: 0.8553331, z: 0.8301194, w: 0.007127695}
@@ -60,24 +54,15 @@ MonoBehaviour:
m_Name: SplitToning
m_EditorClassIdentifier:
active: 1
- m_AdvancedMode: 0
shadows:
m_OverrideState: 1
m_Value: {r: 0.14386791, g: 0.4331201, b: 0.5, a: 1}
- hdr: 0
- showAlpha: 0
- showEyeDropper: 1
highlights:
m_OverrideState: 0
m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1}
- hdr: 0
- showAlpha: 0
- showEyeDropper: 1
balance:
m_OverrideState: 1
m_Value: 22.5
- min: -100
- max: 100
--- !u!114 &-1389446927207168906
MonoBehaviour:
m_ObjectHideFlags: 3
@@ -91,7 +76,6 @@ MonoBehaviour:
m_Name: ShadowsMidtonesHighlights
m_EditorClassIdentifier:
active: 1
- m_AdvancedMode: 0
shadows:
m_OverrideState: 1
m_Value: {x: 0.93244046, y: 0.87692595, z: 1, w: 0.0071276994}
@@ -104,19 +88,15 @@ MonoBehaviour:
shadowsStart:
m_OverrideState: 0
m_Value: 0
- min: 0
shadowsEnd:
m_OverrideState: 1
m_Value: 0.5
- min: 0
highlightsStart:
m_OverrideState: 0
m_Value: 0.55
- min: 0
highlightsEnd:
m_OverrideState: 0
m_Value: 1
- min: 0
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -148,28 +128,18 @@ MonoBehaviour:
m_Name: ColorAdjustments
m_EditorClassIdentifier:
active: 1
- m_AdvancedMode: 0
postExposure:
m_OverrideState: 1
m_Value: -1.5
contrast:
m_OverrideState: 1
m_Value: 10
- min: -100
- max: 100
colorFilter:
m_OverrideState: 0
m_Value: {r: 1, g: 1, b: 1, a: 1}
- hdr: 1
- showAlpha: 0
- showEyeDropper: 1
hueShift:
m_OverrideState: 0
m_Value: 0
- min: -180
- max: 180
saturation:
m_OverrideState: 1
m_Value: 25
- min: -100
- max: 100
diff --git a/Assets/Objects/Levels/Island/NavMesh-NavMesh.asset b/Assets/Objects/Levels/Island/NavMesh-NavMesh.asset
deleted file mode 100644
index f4c784f3e..000000000
Binary files a/Assets/Objects/Levels/Island/NavMesh-NavMesh.asset and /dev/null differ
diff --git a/Assets/Objects/UI/BoatImage.renderTexture b/Assets/Objects/UI/BoatImage.renderTexture
index 7ab21dca7..73deca664 100644
--- a/Assets/Objects/UI/BoatImage.renderTexture
+++ b/Assets/Objects/UI/BoatImage.renderTexture
@@ -12,12 +12,13 @@ RenderTexture:
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
- serializedVersion: 3
+ m_IsAlphaChannelOptional: 0
+ serializedVersion: 5
m_Width: 1024
m_Height: 640
m_AntiAliasing: 2
m_MipCount: -1
- m_DepthFormat: 0
+ m_DepthStencilFormat: 0
m_ColorFormat: 74
m_MipMap: 0
m_GenerateMips: 1
@@ -25,6 +26,7 @@ RenderTexture:
m_UseDynamicScale: 0
m_BindMS: 0
m_EnableCompatibleFormat: 1
+ m_EnableRandomWrite: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
@@ -35,3 +37,4 @@ RenderTexture:
m_WrapW: 1
m_Dimension: 2
m_VolumeDepth: 1
+ m_ShadowSamplingMode: 2
diff --git a/Assets/Objects/UI/meshes/checkpoint.fbx b/Assets/Objects/UI/meshes/checkpoint.fbx
deleted file mode 100644
index 25100aa33..000000000
--- a/Assets/Objects/UI/meshes/checkpoint.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:744df248385ce2fb86aaf037ee95ed4ac0c7df9d1f45b28e255ffddf63b39b2d
-size 47632
diff --git a/Assets/Objects/UI/prefabs/Image_square.prefab b/Assets/Objects/UI/prefabs/Image_square.prefab
index 92b756870..bc310e456 100644
--- a/Assets/Objects/UI/prefabs/Image_square.prefab
+++ b/Assets/Objects/UI/prefabs/Image_square.prefab
@@ -28,12 +28,12 @@ RectTransform:
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: 7793403690807032957}
- {fileID: 4083271907634887187}
- {fileID: 5378577178172698880}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -63,6 +63,8 @@ MonoBehaviour:
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: []
@@ -104,9 +106,9 @@ RectTransform:
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: 4436374301465765625}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -136,6 +138,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -160,13 +164,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
@@ -174,6 +177,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 514
m_characterSpacing: 0
m_wordSpacing: 0
@@ -184,10 +189,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -195,40 +198,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 3372134579990183133}
- characterCount: 26
- spriteCount: 0
- spaceCount: 3
- wordCount: 4
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &3080200043643811428
@@ -259,9 +240,9 @@ RectTransform:
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: 4436374301465765625}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -291,6 +272,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -315,13 +298,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 48
m_fontSizeBase: 48
m_fontWeight: 400
@@ -329,6 +311,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 16
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 514
m_characterSpacing: 5
m_wordSpacing: 0
@@ -339,10 +323,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: 0
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -350,40 +332,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 9017806971496136961}
- characterCount: 12
- spriteCount: 0
- spaceCount: 0
- wordCount: 1
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &4346368796927862640
@@ -414,10 +374,10 @@ RectTransform:
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: 717938677714433720}
m_Father: {fileID: 4436374301465765625}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -447,6 +407,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -488,9 +450,9 @@ RectTransform:
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: 7793403690807032957}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -520,6 +482,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
diff --git a/Assets/Objects/UI/prefabs/Image_square_singleplayer.prefab b/Assets/Objects/UI/prefabs/Image_square_singleplayer.prefab
index 076cd06ad..17f540bab 100644
--- a/Assets/Objects/UI/prefabs/Image_square_singleplayer.prefab
+++ b/Assets/Objects/UI/prefabs/Image_square_singleplayer.prefab
@@ -1,76 +1,11 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---- !u!114 &570424265157894244
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 9075010700535047964}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- 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: 7418773533516689025}
- m_OnClick:
- m_PersistentCalls:
- m_Calls:
- - m_Target: {fileID: 8490184438857729681, guid: 7ad8269e6bbda4db3a76a6e41c11a5db,
- type: 3}
- m_MethodName: SetupGame
- m_Mode: 3
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
- - m_Target: {fileID: 0}
- m_MethodName:
- m_Mode: 1
- m_Arguments:
- m_ObjectArgument: {fileID: 0}
- m_ObjectArgumentAssemblyTypeName:
- m_IntArgument: 0
- m_FloatArgument: 0
- m_StringArgument:
- m_BoolArgument: 0
- m_CallState: 2
--- !u!1001 &6694908601038766838
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 2385216480269379050, guid: 0fbbf7d7351874fa2a260a2d2286652c,
@@ -80,126 +15,202 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_RootOrder
- value: 0
+ propertyPath: m_SizeDelta.x
+ value: 500
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 400
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchoredPosition.x
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 500
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 400
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchorMax.x
+ propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 2385216480269379050, guid: 0fbbf7d7351874fa2a260a2d2286652c,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 570424265157894244}
m_SourcePrefab: {fileID: 100100000, guid: 0fbbf7d7351874fa2a260a2d2286652c, type: 3}
+--- !u!114 &7418773533516689025 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4187732881076612215, guid: 0fbbf7d7351874fa2a260a2d2286652c,
+ type: 3}
+ m_PrefabInstance: {fileID: 6694908601038766838}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9075010700535047964}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &9075010700535047964 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 2385216480269379050, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
m_PrefabInstance: {fileID: 6694908601038766838}
m_PrefabAsset: {fileID: 0}
---- !u!114 &7418773533516689025 stripped
+--- !u!114 &570424265157894244
MonoBehaviour:
- m_CorrespondingSourceObject: {fileID: 4187732881076612215, guid: 0fbbf7d7351874fa2a260a2d2286652c,
- type: 3}
- m_PrefabInstance: {fileID: 6694908601038766838}
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9075010700535047964}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ 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: 7418773533516689025}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls:
+ - m_Target: {fileID: 8490184438857729681, guid: 7ad8269e6bbda4db3a76a6e41c11a5db,
+ type: 3}
+ m_TargetAssemblyTypeName:
+ m_MethodName: SetupGame
+ m_Mode: 3
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
+ - m_Target: {fileID: 0}
+ m_TargetAssemblyTypeName:
+ m_MethodName:
+ m_Mode: 1
+ m_Arguments:
+ m_ObjectArgument: {fileID: 0}
+ m_ObjectArgumentAssemblyTypeName:
+ m_IntArgument: 0
+ m_FloatArgument: 0
+ m_StringArgument:
+ m_BoolArgument: 0
+ m_CallState: 2
diff --git a/Assets/Objects/UI/prefabs/Image_square_spectator.prefab b/Assets/Objects/UI/prefabs/Image_square_spectator.prefab
index 240c9b170..7a6b8d754 100644
--- a/Assets/Objects/UI/prefabs/Image_square_spectator.prefab
+++ b/Assets/Objects/UI/prefabs/Image_square_spectator.prefab
@@ -1,53 +1,11 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
---- !u!114 &7439659265635515354
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2266699601162746537}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_Navigation:
- m_Mode: 3
- 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: 319969262792176436}
- m_OnClick:
- m_PersistentCalls:
- m_Calls: []
--- !u!1001 &4498271974934323011
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 2385216480269379050, guid: 0fbbf7d7351874fa2a260a2d2286652c,
@@ -62,8 +20,8 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 3372134579990183133, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 36
+ propertyPath: m_textInfo.wordCount
+ value: 8
objectReference: {fileID: 0}
- target: {fileID: 3372134579990183133, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
@@ -72,113 +30,113 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 3372134579990183133, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_textInfo.wordCount
- value: 8
+ propertyPath: m_textInfo.characterCount
+ value: 36
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_RootOrder
- value: 0
+ propertyPath: m_SizeDelta.x
+ value: 500
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 400
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchoredPosition.x
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 500
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 400
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchorMax.x
+ propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4436374301465765625, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 9017806971496136961, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
@@ -191,22 +149,73 @@ PrefabInstance:
value: 9
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 2385216480269379050, guid: 0fbbf7d7351874fa2a260a2d2286652c,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 7439659265635515354}
m_SourcePrefab: {fileID: 100100000, guid: 0fbbf7d7351874fa2a260a2d2286652c, type: 3}
+--- !u!114 &319969262792176436 stripped
+MonoBehaviour:
+ m_CorrespondingSourceObject: {fileID: 4187732881076612215, guid: 0fbbf7d7351874fa2a260a2d2286652c,
+ type: 3}
+ m_PrefabInstance: {fileID: 4498271974934323011}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2266699601162746537}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &2266699601162746537 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 2385216480269379050, guid: 0fbbf7d7351874fa2a260a2d2286652c,
type: 3}
m_PrefabInstance: {fileID: 4498271974934323011}
m_PrefabAsset: {fileID: 0}
---- !u!114 &319969262792176436 stripped
+--- !u!114 &7439659265635515354
MonoBehaviour:
- m_CorrespondingSourceObject: {fileID: 4187732881076612215, guid: 0fbbf7d7351874fa2a260a2d2286652c,
- type: 3}
- m_PrefabInstance: {fileID: 4498271974934323011}
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2266699601162746537}
m_Enabled: 1
m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ 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: 319969262792176436}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
diff --git a/Assets/Objects/UI/prefabs/InGame/PlayerMapMarker.prefab b/Assets/Objects/UI/prefabs/InGame/PlayerMapMarker.prefab
index 70a6e2fb4..4854e1a5e 100644
--- a/Assets/Objects/UI/prefabs/InGame/PlayerMapMarker.prefab
+++ b/Assets/Objects/UI/prefabs/InGame/PlayerMapMarker.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0.38268343, w: 0.92387956}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 6559714379407293361}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 45}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -60,6 +60,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -102,10 +104,10 @@ RectTransform:
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: 819696510986052958}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -135,6 +137,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 0, b: 0, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
diff --git a/Assets/Objects/UI/prefabs/InGame/PlayerMarker.prefab b/Assets/Objects/UI/prefabs/InGame/PlayerMarker.prefab
index 8348771e6..6cca522e3 100644
--- a/Assets/Objects/UI/prefabs/InGame/PlayerMarker.prefab
+++ b/Assets/Objects/UI/prefabs/InGame/PlayerMarker.prefab
@@ -28,9 +28,9 @@ RectTransform:
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: 4261262850135397659}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -60,6 +60,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.5019608}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -101,9 +103,9 @@ RectTransform:
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: 4261262850135397659}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -133,6 +135,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -157,13 +161,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
@@ -171,6 +174,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 514
m_characterSpacing: 5
m_wordSpacing: 0
@@ -181,10 +186,8 @@ MonoBehaviour:
m_enableWordWrapping: 0
m_wordWrappingRatios: 0
m_overflowMode: 1
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -192,40 +195,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 6421718595936595691}
- characterCount: 7
- spriteCount: 0
- spaceCount: 0
- wordCount: 1
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &3337456683261141793
@@ -256,9 +237,9 @@ RectTransform:
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: 4261262850135397659}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -288,6 +269,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -312,13 +295,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
@@ -326,6 +308,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 16
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 514
m_characterSpacing: 5
m_wordSpacing: 0
@@ -336,10 +320,8 @@ MonoBehaviour:
m_enableWordWrapping: 0
m_wordWrappingRatios: 0
m_overflowMode: 4
- m_firstOverflowCharacterIndex: 0
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -347,40 +329,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 9063798457440919915}
- characterCount: 1
- spriteCount: 0
- spaceCount: 0
- wordCount: 1
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6414587244416865795
@@ -412,12 +372,12 @@ RectTransform:
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: 7970220736493734237}
- {fileID: 2727826838796494380}
- {fileID: 6981622591664246083}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -447,6 +407,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 0, g: 0, b: 0, a: 0.392}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
diff --git a/Assets/Objects/UI/prefabs/InGame/RaceStats_Player.prefab b/Assets/Objects/UI/prefabs/InGame/RaceStats_Player.prefab
index cabf7c471..164494e0c 100644
--- a/Assets/Objects/UI/prefabs/InGame/RaceStats_Player.prefab
+++ b/Assets/Objects/UI/prefabs/InGame/RaceStats_Player.prefab
@@ -28,9 +28,9 @@ RectTransform:
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: 1651242306443558259}
- m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -60,6 +60,8 @@ MonoBehaviour:
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: []
@@ -84,13 +86,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
@@ -98,6 +99,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 513
m_characterSpacing: 5
m_wordSpacing: 0
@@ -108,10 +111,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0
m_overflowMode: 1
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -119,40 +120,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 8410545364529771218}
- characterCount: 9
- spriteCount: 0
- spaceCount: 0
- wordCount: 3
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &2698428838123643335
@@ -183,9 +162,9 @@ RectTransform:
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: 1651242306443558259}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -215,6 +194,8 @@ MonoBehaviour:
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: []
@@ -239,13 +220,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
@@ -253,6 +233,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 513
m_characterSpacing: 5
m_wordSpacing: 0
@@ -263,10 +245,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0
m_overflowMode: 1
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -274,40 +254,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 3608511208612296465}
- characterCount: 9
- spriteCount: 0
- spaceCount: 0
- wordCount: 3
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &3361683635333884076
@@ -340,6 +298,7 @@ RectTransform:
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: 2427694164499877701}
- {fileID: 4853612697922662547}
@@ -347,7 +306,6 @@ RectTransform:
- {fileID: 3849491572532317107}
- {fileID: 2805909154493863314}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -379,6 +337,7 @@ MonoBehaviour:
m_ChildControlHeight: 1
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
+ m_ReverseArrangement: 0
--- !u!222 &270868407313706351
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -402,6 +361,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 0.21176472, g: 0.8078432, b: 0.94117653, a: 0.5019608}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -460,9 +421,9 @@ RectTransform:
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: 1651242306443558259}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -492,6 +453,8 @@ MonoBehaviour:
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: []
@@ -516,13 +479,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
@@ -530,6 +492,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 513
m_characterSpacing: 5
m_wordSpacing: 0
@@ -540,10 +504,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0
m_overflowMode: 1
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -551,40 +513,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 3393974456527619347}
- characterCount: 8
- spriteCount: 0
- spaceCount: 0
- wordCount: 1
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &8355593077391515718
@@ -615,9 +555,9 @@ RectTransform:
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: 1651242306443558259}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -647,6 +587,8 @@ MonoBehaviour:
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: []
@@ -671,13 +613,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
@@ -685,6 +626,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 513
m_characterSpacing: 5
m_wordSpacing: 0
@@ -695,10 +638,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0
m_overflowMode: 1
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -706,40 +647,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 1155670549187173950}
- characterCount: 3
- spriteCount: 0
- spaceCount: 0
- wordCount: 1
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &9120483241784819981
@@ -770,9 +689,9 @@ RectTransform:
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: 1651242306443558259}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -802,6 +721,8 @@ MonoBehaviour:
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: []
@@ -826,13 +747,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
@@ -840,6 +760,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 513
m_characterSpacing: 5
m_wordSpacing: 0
@@ -850,10 +772,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0
m_overflowMode: 1
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -861,39 +781,17 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 5324532405065709284}
- characterCount: 11
- spriteCount: 0
- spaceCount: 1
- wordCount: 2
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
diff --git a/Assets/Objects/UI/prefabs/InGame/Race_Canvas.prefab b/Assets/Objects/UI/prefabs/InGame/Race_Canvas.prefab
index 0f352354c..a3df994b5 100644
--- a/Assets/Objects/UI/prefabs/InGame/Race_Canvas.prefab
+++ b/Assets/Objects/UI/prefabs/InGame/Race_Canvas.prefab
@@ -28,9 +28,9 @@ RectTransform:
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: 6548380304833109455}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -60,6 +60,7 @@ MonoBehaviour:
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:
@@ -161,9 +162,9 @@ RectTransform:
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: 7300133658760232463}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.5, y: 1}
@@ -193,6 +194,7 @@ MonoBehaviour:
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:
@@ -293,11 +295,11 @@ RectTransform:
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: 2322729500896713539}
- {fileID: 16794611894021369}
m_Father: {fileID: 6721600935011419911}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -338,13 +340,13 @@ RectTransform:
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: 5347790856843233973}
- {fileID: 5347790856688489105}
- {fileID: 5347790855586753531}
- {fileID: 7300133658760232463}
m_Father: {fileID: 5347790855530666829}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -379,9 +381,9 @@ RectTransform:
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: 5347790855586753531}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -411,6 +413,7 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.7490196}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
@@ -457,12 +460,12 @@ RectTransform:
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: 6721600935011419911}
- {fileID: 1544795113959586861}
- {fileID: 3606642798283586563}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -486,7 +489,9 @@ Canvas:
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
+ m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 1
+ m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
@@ -512,6 +517,7 @@ MonoBehaviour:
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
--- !u!114 &4682807467005571516
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -537,12 +543,18 @@ MonoBehaviour:
playerMarker:
m_AssetGUID: 34b5c45ac411341838c26dd7e127563e
m_SubObjectName:
+ m_SubObjectType:
+ m_EditorAssetChanged: 0
playerMapMarker:
m_AssetGUID: d6294ade8f31d403eaab049b86f2ed11
m_SubObjectName:
+ m_SubObjectType:
+ m_EditorAssetChanged: 0
raceStatsPlayer:
m_AssetGUID: 4823b5c430af647578af56a5d37f7276
m_SubObjectName:
+ m_SubObjectType:
+ m_EditorAssetChanged: 0
--- !u!114 &3273538309571339402
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -587,8 +599,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
m_Name:
m_EditorClassIdentifier:
+ m_SendPointerHoverToParent: 1
m_MoveRepeatDelay: 0.5
m_MoveRepeatRate: 0.1
+ m_XRTrackingOrigin: {fileID: 0}
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018,
@@ -613,6 +627,8 @@ MonoBehaviour:
type: 3}
m_DeselectOnBackgroundClick: 1
m_PointerBehavior: 0
+ m_CursorLockBehavior: 0
+ m_ScrollDeltaPerTick: 6
--- !u!1 &5347790855547287923
GameObject:
m_ObjectHideFlags: 0
@@ -641,9 +657,9 @@ RectTransform:
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: 5347790856843233973}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -673,6 +689,7 @@ MonoBehaviour:
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:
@@ -774,10 +791,10 @@ RectTransform:
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: 1886402391124204874}
m_Father: {fileID: 6721600935011419911}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -807,6 +824,7 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 0.21176472, g: 0.8078432, b: 0.94117653, a: 0.5019608}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
@@ -849,9 +867,9 @@ RectTransform:
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: 5347790856983547794}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: -1}
m_AnchorMax: {x: 1, y: 0}
@@ -881,6 +899,7 @@ MonoBehaviour:
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:
@@ -982,9 +1001,9 @@ RectTransform:
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: 5347790856688489105}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.5, y: 1}
@@ -1014,6 +1033,7 @@ MonoBehaviour:
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:
@@ -1115,9 +1135,9 @@ RectTransform:
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: 5347790856688489105}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1147,6 +1167,7 @@ MonoBehaviour:
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:
@@ -1248,9 +1269,9 @@ RectTransform:
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: 5347790856983547794}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1280,6 +1301,7 @@ MonoBehaviour:
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:
@@ -1380,12 +1402,12 @@ RectTransform:
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: 5347790856091705332}
- {fileID: 5347790855832232832}
- {fileID: 5347790856983547794}
m_Father: {fileID: 6721600935011419911}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -1427,11 +1449,11 @@ RectTransform:
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: 5347790857331151360}
- {fileID: 5347790855547287922}
m_Father: {fileID: 6721600935011419911}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -1474,11 +1496,11 @@ RectTransform:
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: 5347790856266267882}
- {fileID: 5347790855668333725}
m_Father: {fileID: 5347790856688489105}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -1508,6 +1530,7 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 0.21176472, g: 0.8078432, b: 0.94117653, a: 0.5019608}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
@@ -1550,9 +1573,9 @@ RectTransform:
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: 5347790856843233973}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.5, y: 1}
@@ -1582,6 +1605,7 @@ MonoBehaviour:
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:
@@ -1681,11 +1705,11 @@ RectTransform:
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: 1531208815120022709}
- {fileID: 752230290687444200}
m_Father: {fileID: 5347790855530666829}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1720,9 +1744,9 @@ RectTransform:
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: 6548380304833109455}
- m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -1752,6 +1776,7 @@ MonoBehaviour:
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:
@@ -1853,9 +1878,9 @@ RectTransform:
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: 6548380304833109455}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -1885,6 +1910,7 @@ MonoBehaviour:
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:
@@ -1986,9 +2012,9 @@ RectTransform:
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: 7300133658760232463}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2018,6 +2044,7 @@ MonoBehaviour:
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:
@@ -2120,10 +2147,10 @@ RectTransform:
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: 6548380304833109455}
m_Father: {fileID: 5347790855530666829}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.1, y: 0}
m_AnchorMax: {x: 0.9, y: 1}
@@ -2163,6 +2190,7 @@ MonoBehaviour:
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 1
+ m_ReverseArrangement: 0
--- !u!114 &1583428134841937876
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -2205,9 +2233,9 @@ RectTransform:
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: 6548380304833109455}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -2237,6 +2265,7 @@ MonoBehaviour:
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:
@@ -2339,6 +2368,7 @@ RectTransform:
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: 7674469293639866560}
- {fileID: 4271000520175623691}
@@ -2346,7 +2376,6 @@ RectTransform:
- {fileID: 6488416380379324206}
- {fileID: 1232651898752258166}
m_Father: {fileID: 1544795113959586861}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -2378,6 +2407,7 @@ MonoBehaviour:
m_ChildControlHeight: 1
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
+ m_ReverseArrangement: 0
--- !u!222 &1317092357428940044
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -2401,6 +2431,7 @@ MonoBehaviour:
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:
@@ -2443,9 +2474,9 @@ RectTransform:
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: 6548380304833109455}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -2475,6 +2506,7 @@ MonoBehaviour:
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:
@@ -2553,26 +2585,27 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 3606642798283586563}
m_Modifications:
- target: {fileID: 1705088698142256427, guid: 2e802695a225e48efb842122e2423314,
type: 3}
- propertyPath: m_LocalPosition.x
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1705088698142256427, guid: 2e802695a225e48efb842122e2423314,
type: 3}
- propertyPath: m_LocalPosition.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1705088698142256427, guid: 2e802695a225e48efb842122e2423314,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1705088698142256427, guid: 2e802695a225e48efb842122e2423314,
type: 3}
- propertyPath: m_RootOrder
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1705088698142256427, guid: 2e802695a225e48efb842122e2423314,
@@ -2601,40 +2634,44 @@ PrefabInstance:
value:
objectReference: {fileID: 4682807467005571516}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 2e802695a225e48efb842122e2423314, type: 3}
---- !u!1 &2530314209084421739 stripped
-GameObject:
- m_CorrespondingSourceObject: {fileID: 2417087417245247477, guid: 2e802695a225e48efb842122e2423314,
- type: 3}
- m_PrefabInstance: {fileID: 186410578290512286}
- m_PrefabAsset: {fileID: 0}
--- !u!224 &1531208815120022709 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 1705088698142256427, guid: 2e802695a225e48efb842122e2423314,
type: 3}
m_PrefabInstance: {fileID: 186410578290512286}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &2530314209084421739 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 2417087417245247477, guid: 2e802695a225e48efb842122e2423314,
+ type: 3}
+ m_PrefabInstance: {fileID: 186410578290512286}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &1027489185883053443
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 3606642798283586563}
m_Modifications:
- target: {fileID: 302350917559884139, guid: dbcc8ad9df6a14eb89c6443a6667122e,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_RootOrder
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 302350917559884139, guid: dbcc8ad9df6a14eb89c6443a6667122e,
type: 3}
- propertyPath: m_LocalPosition.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 302350917559884139, guid: dbcc8ad9df6a14eb89c6443a6667122e,
type: 3}
- propertyPath: m_RootOrder
- value: 1
+ propertyPath: m_LocalPosition.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 302350917559884139, guid: dbcc8ad9df6a14eb89c6443a6667122e,
type: 3}
@@ -2658,25 +2695,28 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 6200252423622398695, guid: dbcc8ad9df6a14eb89c6443a6667122e,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 5
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 6200252423622398695, guid: dbcc8ad9df6a14eb89c6443a6667122e,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6200252423622398695, guid: dbcc8ad9df6a14eb89c6443a6667122e,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6200252423622398695, guid: dbcc8ad9df6a14eb89c6443a6667122e,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 5
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: dbcc8ad9df6a14eb89c6443a6667122e, type: 3}
--- !u!224 &752230290687444200 stripped
RectTransform:
diff --git a/Assets/Objects/UI/prefabs/InGame/Race_Canvas_touch.prefab b/Assets/Objects/UI/prefabs/InGame/Race_Canvas_touch.prefab
index 951a60ce4..f7bff8fea 100644
--- a/Assets/Objects/UI/prefabs/InGame/Race_Canvas_touch.prefab
+++ b/Assets/Objects/UI/prefabs/InGame/Race_Canvas_touch.prefab
@@ -29,9 +29,9 @@ RectTransform:
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: 7347935808317397271}
- m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -61,6 +61,7 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.2509804}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
@@ -88,7 +89,28 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_MovementRange: 150
+ m_DynamicOriginRange: 100
m_ControlPath: /leftStick
+ m_Behaviour: 0
+ m_UseIsolatedInputActions: 0
+ m_PointerDownAction:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: c155c75f-7384-4525-910e-a6bdaed281f4
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
+ m_PointerMoveAction:
+ m_Name:
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 870c6240-8673-44df-aa99-8ae966043d17
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings: []
+ m_Flags: 0
--- !u!1 &4263278522678891939
GameObject:
m_ObjectHideFlags: 0
@@ -118,9 +140,9 @@ RectTransform:
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: 7347935808317397271}
- m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -150,6 +172,7 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.2509804}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
@@ -206,9 +229,9 @@ RectTransform:
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: 7347935808317397271}
- m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -238,6 +261,7 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 0.2509804}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
@@ -270,6 +294,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 5347790855530666824, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
@@ -279,107 +304,107 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_LocalPosition.x
+ propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_LocalPosition.y
+ propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_LocalRotation.x
+ propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_LocalRotation.y
+ propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_LocalRotation.z
+ propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_RootOrder
+ propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
+ propertyPath: m_SizeDelta.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_AnchoredPosition.x
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_SizeDelta.x
+ propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_SizeDelta.y
+ propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_AnchorMin.x
+ propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_AnchorMax.x
+ propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_Pivot.x
+ propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855530666829, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
type: 3}
- propertyPath: m_Pivot.y
+ propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5347790855586753531, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
@@ -393,6 +418,21 @@ PrefabInstance:
value: 300
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects:
+ - targetCorrespondingSourceObject: {fileID: 6721600935011419911, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 894742572018467444}
+ - targetCorrespondingSourceObject: {fileID: 6721600935011419911, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 62009398339669683}
+ - targetCorrespondingSourceObject: {fileID: 6721600935011419911, guid: 0482dcbdb79ee4d7eb43a774a90bda4e,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 3492154910095032093}
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 0482dcbdb79ee4d7eb43a774a90bda4e, type: 3}
--- !u!224 &7347935808317397271 stripped
RectTransform:
diff --git a/Assets/Objects/UI/prefabs/Level.prefab b/Assets/Objects/UI/prefabs/Level.prefab
index f5a0b63e3..8135b42c3 100644
--- a/Assets/Objects/UI/prefabs/Level.prefab
+++ b/Assets/Objects/UI/prefabs/Level.prefab
@@ -28,10 +28,10 @@ RectTransform:
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: 7069523438192860402}
m_Father: {fileID: 8422994282727022450}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -61,6 +61,8 @@ MonoBehaviour:
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: []
@@ -85,13 +87,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 48
m_fontSizeBase: 48
m_fontWeight: 400
@@ -99,6 +100,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 18
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 514
m_characterSpacing: 5
m_wordSpacing: 0
@@ -109,10 +112,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: 0
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -120,40 +121,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 7792224875137659014}
- characterCount: 8
- spriteCount: 0
- spaceCount: 1
- wordCount: 2
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 1449696588432919243}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &3516234836466072059
@@ -184,9 +163,9 @@ RectTransform:
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: 8422994282727022450}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -216,6 +195,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 0.21176472, g: 0.8078432, b: 0.94117653, a: 0.5019608}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -257,11 +238,11 @@ RectTransform:
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: 511866338823883487}
- {fileID: 4696272771198996516}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -290,6 +271,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
@@ -321,6 +303,7 @@ MonoBehaviour:
m_Calls:
- m_Target: {fileID: 8490184438857729681, guid: 7ad8269e6bbda4db3a76a6e41c11a5db,
type: 3}
+ m_TargetAssemblyTypeName:
m_MethodName: SetLevel
m_Mode: 3
m_Arguments:
@@ -332,6 +315,7 @@ MonoBehaviour:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 0}
+ m_TargetAssemblyTypeName:
m_MethodName:
m_Mode: 1
m_Arguments:
@@ -343,6 +327,7 @@ MonoBehaviour:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 0}
+ m_TargetAssemblyTypeName:
m_MethodName:
m_Mode: 1
m_Arguments:
@@ -381,9 +366,9 @@ RectTransform:
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: 4696272771198996516}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -413,6 +398,8 @@ MonoBehaviour:
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: []
@@ -422,6 +409,5 @@ MonoBehaviour:
m_sharedMaterial: {fileID: 0}
m_isDefaultMaterial: 0
m_padding: 9.032028
- m_canvasRenderer: {fileID: 940912394851499189}
m_TextComponent: {fileID: 7792224875137659014}
m_materialReferenceIndex: 1
diff --git a/Assets/Objects/UI/prefabs/LoadingScreen.prefab b/Assets/Objects/UI/prefabs/LoadingScreen.prefab
index 2649a9927..65a612b76 100644
--- a/Assets/Objects/UI/prefabs/LoadingScreen.prefab
+++ b/Assets/Objects/UI/prefabs/LoadingScreen.prefab
@@ -28,10 +28,10 @@ RectTransform:
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: 7959097910410934255}
m_Father: {fileID: 7959097910893621726}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -104,9 +104,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -0.1}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7959097908968624669}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -179,9 +179,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -0.2}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7959097910893621726}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -314,11 +314,11 @@ RectTransform:
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: 7959097908968624669}
- {fileID: 7959097910863956438}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -342,7 +342,9 @@ Canvas:
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
+ m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
+ m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 1000
m_TargetDisplay: 0
diff --git a/Assets/Objects/UI/prefabs/MainMenu/BenchmarkPanel.prefab b/Assets/Objects/UI/prefabs/MainMenu/BenchmarkPanel.prefab
index 00a1c98f7..2021e0ef7 100644
--- a/Assets/Objects/UI/prefabs/MainMenu/BenchmarkPanel.prefab
+++ b/Assets/Objects/UI/prefabs/MainMenu/BenchmarkPanel.prefab
@@ -27,10 +27,10 @@ RectTransform:
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: 7261581779796408551}
m_Father: {fileID: 8308484576369727823}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -73,11 +73,11 @@ RectTransform:
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: 555911760503307710}
- {fileID: 4498310017831071890}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -137,13 +137,13 @@ RectTransform:
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: 555911760623570510}
- {fileID: 555911761273092721}
- {fileID: 555911762422888514}
- {fileID: 555911761156195312}
m_Father: {fileID: 555911760475124057}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -178,12 +178,12 @@ RectTransform:
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: 555911762263563660}
- {fileID: 555911761757482383}
- {fileID: 555911761106985423}
m_Father: {fileID: 555911760503307710}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.85}
m_AnchorMax: {x: 1, y: 1}
@@ -255,10 +255,10 @@ RectTransform:
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: 5893084992375076201}
m_Father: {fileID: 555911760623570510}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.7, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -301,9 +301,9 @@ RectTransform:
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: 555911760503307710}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 1, y: 0.4}
@@ -376,11 +376,11 @@ RectTransform:
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: 555911761458424434}
- {fileID: 555911762313806815}
m_Father: {fileID: 555911760503307710}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.4}
m_AnchorMax: {x: 1, y: 0.85}
@@ -452,9 +452,9 @@ RectTransform:
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: 555911761273092721}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.5, y: 1}
@@ -514,10 +514,10 @@ RectTransform:
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: 5893084992630605681}
m_Father: {fileID: 555911760623570510}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.15, y: 0}
m_AnchorMax: {x: 0.7, y: 1}
@@ -560,9 +560,9 @@ RectTransform:
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: 555911762422888514}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@@ -641,9 +641,9 @@ RectTransform:
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: 555911762282417229}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -775,10 +775,10 @@ RectTransform:
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: 555911762282417229}
m_Father: {fileID: 555911760623570510}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.15, y: 1}
@@ -913,10 +913,10 @@ RectTransform:
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: 555911762224307304}
m_Father: {fileID: 555911762263563660}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1056,9 +1056,9 @@ RectTransform:
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: 555911761273092721}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1119,10 +1119,10 @@ RectTransform:
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: 555911762198385360}
m_Father: {fileID: 555911760503307710}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.5, y: 0.85}
@@ -1196,10 +1196,10 @@ RectTransform:
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: 1251916003832178803}
m_Father: {fileID: 1193954169925069151}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1352,11 +1352,11 @@ RectTransform:
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: 719989350168508388}
- {fileID: 1193954169925069151}
m_Father: {fileID: 4498310017831071890}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.85}
m_AnchorMax: {x: 1, y: 1}
@@ -1430,10 +1430,10 @@ RectTransform:
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: 2498151567178910431}
m_Father: {fileID: 4529424659315011279}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1561,11 +1561,11 @@ RectTransform:
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: 4529424659315011279}
- {fileID: 290636045995068861}
m_Father: {fileID: 4498310017831071890}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.25, y: 0}
m_AnchorMax: {x: 0.75, y: 0.85}
@@ -1627,10 +1627,10 @@ RectTransform:
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: 3632252139646528828}
m_Father: {fileID: 719989350168508388}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1760,10 +1760,10 @@ RectTransform:
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: 4381723225375620773}
m_Father: {fileID: 290636045995068861}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1892,9 +1892,9 @@ RectTransform:
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: 1699380933731315074}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2024,11 +2024,11 @@ RectTransform:
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: 7209733419408134187}
- {fileID: 8308484576369727823}
m_Father: {fileID: 555911760475124057}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2062,10 +2062,10 @@ RectTransform:
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: 887632406786195568}
m_Father: {fileID: 8308484576369727823}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -2108,9 +2108,9 @@ RectTransform:
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: 887632406786195568}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2242,10 +2242,10 @@ RectTransform:
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: 1699380933731315074}
m_Father: {fileID: 7209733419408134187}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.2, y: 1}
@@ -2379,9 +2379,9 @@ RectTransform:
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: 7261581779796408551}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2513,10 +2513,10 @@ RectTransform:
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: 6336640031673963673}
m_Father: {fileID: 7209733419408134187}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.8, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2650,9 +2650,9 @@ RectTransform:
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: 6336640031673963673}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2761,6 +2761,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 555911761106985423}
m_Modifications:
- target: {fileID: 6232576570469918013, guid: ee7232b8e02a2d343a512f6077934232,
@@ -2775,108 +2776,108 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_RootOrder
- value: 0
+ propertyPath: m_SizeDelta.x
+ value: -30
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: -40
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: -5
+ propertyPath: m_LocalPosition.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_SizeDelta.x
- value: -30
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_SizeDelta.y
- value: -40
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
+ propertyPath: m_AnchoredPosition.x
+ value: -5
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 1
+ propertyPath: m_AnchoredPosition.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490351, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
@@ -2884,13 +2885,10 @@ PrefabInstance:
value: Dropdown
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: ee7232b8e02a2d343a512f6077934232, type: 3}
---- !u!224 &5893084992375076201 stripped
-RectTransform:
- m_CorrespondingSourceObject: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
- type: 3}
- m_PrefabInstance: {fileID: 555911761137785927}
- m_PrefabAsset: {fileID: 0}
--- !u!114 &4349500922024502926 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 4317393785942538953, guid: ee7232b8e02a2d343a512f6077934232,
@@ -2903,11 +2901,18 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!224 &5893084992375076201 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
+ type: 3}
+ m_PrefabInstance: {fileID: 555911761137785927}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &555911761392905823
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 555911761757482383}
m_Modifications:
- target: {fileID: 6232576570469918013, guid: ee7232b8e02a2d343a512f6077934232,
@@ -2937,108 +2942,108 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_RootOrder
- value: 0
+ propertyPath: m_SizeDelta.x
+ value: -20
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: -40
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchoredPosition.x
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_SizeDelta.x
- value: -20
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_SizeDelta.y
- value: -40
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 1
+ propertyPath: m_AnchoredPosition.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6232576571583490351, guid: ee7232b8e02a2d343a512f6077934232,
type: 3}
@@ -3051,13 +3056,10 @@ PrefabInstance:
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: ee7232b8e02a2d343a512f6077934232, type: 3}
---- !u!224 &5893084992630605681 stripped
-RectTransform:
- m_CorrespondingSourceObject: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
- type: 3}
- m_PrefabInstance: {fileID: 555911761392905823}
- m_PrefabAsset: {fileID: 0}
--- !u!114 &4349500921745265814 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 4317393785942538953, guid: ee7232b8e02a2d343a512f6077934232,
@@ -3070,3 +3072,9 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 7b743370ac3e4ec2a1668f5455a8ef8a, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!224 &5893084992630605681 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 6232576571583490350, guid: ee7232b8e02a2d343a512f6077934232,
+ type: 3}
+ m_PrefabInstance: {fileID: 555911761392905823}
+ m_PrefabAsset: {fileID: 0}
diff --git a/Assets/Objects/UI/prefabs/MainMenu/MainMenuUI.prefab b/Assets/Objects/UI/prefabs/MainMenu/MainMenuUI.prefab
index 318f48539..067f157b8 100644
--- a/Assets/Objects/UI/prefabs/MainMenu/MainMenuUI.prefab
+++ b/Assets/Objects/UI/prefabs/MainMenu/MainMenuUI.prefab
@@ -27,13 +27,13 @@ RectTransform:
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: 5975441792461032481}
- {fileID: 6586527480826535880}
- {fileID: 4631664004069129997}
- {fileID: 7308870853560031275}
m_Father: {fileID: 5207042214453139230}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.5, y: 1}
@@ -94,10 +94,10 @@ RectTransform:
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: 3526173317250951753}
m_Father: {fileID: 3644197056844246198}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -229,9 +229,9 @@ RectTransform:
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: 5166109939762744887}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -303,12 +303,12 @@ RectTransform:
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: 2583173807326995234}
- {fileID: 1711109886568183026}
- {fileID: 3280194166093118297}
m_Father: {fileID: 2483712070395034532}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -395,9 +395,9 @@ RectTransform:
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: 948491959647957940}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -466,10 +466,10 @@ RectTransform:
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: 4559160113779247964}
m_Father: {fileID: 3943413126786587729}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -530,10 +530,10 @@ RectTransform:
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: 8223905671867719008}
m_Father: {fileID: 6579042049359713682}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -665,10 +665,10 @@ RectTransform:
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: 7459254619566573763}
m_Father: {fileID: 7860368546965670178}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.14}
m_AnchorMax: {x: 1, y: 0.25}
@@ -800,10 +800,10 @@ RectTransform:
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: 1781128405264505150}
m_Father: {fileID: 3893494376592108040}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -933,11 +933,11 @@ RectTransform:
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: 1406770832804645538}
- {fileID: 4395754948322860327}
m_Father: {fileID: 4603593415221689277}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -972,9 +972,9 @@ RectTransform:
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: 5764655486072398269}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1045,9 +1045,9 @@ RectTransform:
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: 8802111069979096020}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1119,6 +1119,7 @@ RectTransform:
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: 2406859931362570060}
- {fileID: 3943413126786587729}
@@ -1128,7 +1129,6 @@ RectTransform:
- {fileID: 1297213354555609066}
- {fileID: 5706178149847880064}
m_Father: {fileID: 7907029378987110433}
- m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.15}
m_AnchorMax: {x: 1, y: 0.8}
@@ -1171,10 +1171,10 @@ RectTransform:
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: 8422155124128721573}
m_Father: {fileID: 7860368546965670178}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0.14}
@@ -1305,10 +1305,10 @@ RectTransform:
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: 1140639340486532233}
m_Father: {fileID: 3943413126786587729}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -1369,9 +1369,9 @@ RectTransform:
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: 5599669319891883259}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1444,9 +1444,9 @@ RectTransform:
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: 5975441792461032481}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1516,10 +1516,10 @@ RectTransform:
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: 7860368546965670178}
m_Father: {fileID: 4917528799211966126}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1562,10 +1562,10 @@ RectTransform:
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: 2926976255489505197}
m_Father: {fileID: 441664188382872731}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.4, y: 1}
@@ -1697,9 +1697,9 @@ RectTransform:
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: 1403391315988433970}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1769,12 +1769,12 @@ RectTransform:
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: 2570633047177290801}
- {fileID: 948491959647957940}
- {fileID: 324747761305206209}
m_Father: {fileID: 4603593415221689277}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -1835,9 +1835,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.8000001, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 8510006101677214044}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -1969,9 +1969,9 @@ RectTransform:
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: 2631180408981975328}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2044,9 +2044,9 @@ RectTransform:
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: 1711109886568183026}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2117,9 +2117,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.8000001, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1829430646817347859}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2251,9 +2251,9 @@ RectTransform:
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: 7907029378987110433}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -2323,9 +2323,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.8, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 950811265803580643}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2455,11 +2455,11 @@ RectTransform:
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: 3644197056844246198}
- {fileID: 2483712070395034532}
m_Father: {fileID: 8802111069979096020}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2492,10 +2492,10 @@ RectTransform:
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: 7907029378344209924}
m_Father: {fileID: 7907029378987110433}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2530,9 +2530,9 @@ RectTransform:
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: 324747761305206209}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2603,9 +2603,9 @@ RectTransform:
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: 4395754948322860327}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.2, y: 0}
m_AnchorMax: {x: 0.8, y: 1}
@@ -2845,11 +2845,11 @@ RectTransform:
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: 4603593415221689277}
- {fileID: 7417488473820929829}
m_Father: {fileID: 8802111069979096020}
- m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2885,12 +2885,12 @@ RectTransform:
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: 2631180408981975328}
- {fileID: 1403391315988433970}
- {fileID: 5166109939762744887}
m_Father: {fileID: 7417488473820929829}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -2978,10 +2978,10 @@ RectTransform:
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: 4878659850823854751}
m_Father: {fileID: 948491959647957940}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -3108,12 +3108,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4862975062816744032}
+ 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: 7907029380085608247}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!20 &3459289610322885288
Camera:
@@ -3129,9 +3130,17 @@ Camera:
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_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
@@ -3188,6 +3197,7 @@ MonoBehaviour:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
+ m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 1
m_Antialiasing: 0
m_AntialiasingQuality: 2
@@ -3195,9 +3205,20 @@ MonoBehaviour:
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!1 &5002275752692081992
GameObject:
m_ObjectHideFlags: 0
@@ -3227,9 +3248,9 @@ RectTransform:
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: 6579042049359713682}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -3370,10 +3391,10 @@ RectTransform:
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: 9010851507174784628}
m_Father: {fileID: 4603593415221689277}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -3506,10 +3527,10 @@ RectTransform:
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: 4764257357243624608}
m_Father: {fileID: 948491959647957940}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -3639,12 +3660,12 @@ RectTransform:
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: 950811265803580643}
- {fileID: 5106063520538367869}
- {fileID: 8510006101677214044}
m_Father: {fileID: 3893494376592108040}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -3732,9 +3753,9 @@ RectTransform:
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: 2570633047177290801}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -3805,10 +3826,10 @@ RectTransform:
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: 3830651516789246170}
m_Father: {fileID: 2583173807326995234}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -3882,12 +3903,12 @@ RectTransform:
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: 1646340931393483619}
- {fileID: 1103734758653570439}
- {fileID: 1829430646817347859}
m_Father: {fileID: 3893494376592108040}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -3975,9 +3996,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.8, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1646340931393483619}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -4110,10 +4131,10 @@ RectTransform:
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: 6517661629991267220}
m_Father: {fileID: 324747761305206209}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -4242,11 +4263,11 @@ RectTransform:
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: 5875251298499702281}
- {fileID: 5599669319891883259}
m_Father: {fileID: 6083943551725646513}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.25}
m_AnchorMax: {x: 1, y: 1}
@@ -4319,9 +4340,9 @@ RectTransform:
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: 2392179485422591978}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -4392,10 +4413,10 @@ RectTransform:
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: 3785390145920923684}
m_Father: {fileID: 6083943551725646513}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.14}
m_AnchorMax: {x: 1, y: 0.25}
@@ -4527,9 +4548,9 @@ RectTransform:
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: 2583173807326995234}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -4601,10 +4622,10 @@ RectTransform:
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: 6083943551725646513}
m_Father: {fileID: 5207042214453139230}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -4647,10 +4668,10 @@ RectTransform:
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: 8927531745412246093}
m_Father: {fileID: 7860368546965670178}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -4720,9 +4741,9 @@ RectTransform:
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: 3280194166093118297}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -4793,12 +4814,12 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 2}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4376516045305876914}
- {fileID: 4612491773756503954}
- {fileID: 2396697376959644701}
m_Father: {fileID: 7241324373451386652}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 1, y: 0.5}
@@ -4868,6 +4889,7 @@ RectTransform:
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: 2168370788733313540}
- {fileID: 7907029379116912004}
@@ -4876,7 +4898,6 @@ RectTransform:
- {fileID: 8802111069979096020}
- {fileID: 1553643131225060080}
m_Father: {fileID: 7907029380085608247}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -4900,7 +4921,9 @@ Canvas:
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
+ m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 25
+ m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
@@ -4972,9 +4995,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 1}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7907029378987110433}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
@@ -5047,9 +5070,9 @@ RectTransform:
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: 7907029378987110433}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
@@ -5119,12 +5142,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7907029379700984250}
+ serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -0.000030517578, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 7907029380085608247}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &7907029379700984248
MonoBehaviour:
@@ -5153,8 +5177,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
m_Name:
m_EditorClassIdentifier:
+ m_SendPointerHoverToParent: 1
m_MoveRepeatDelay: 0.5
m_MoveRepeatRate: 0.1
+ m_XRTrackingOrigin: {fileID: 0}
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018,
type: 3}
m_PointAction: {fileID: 1054132383583890850, guid: ca9f5fa95ffab41fb9a615ab714db018,
@@ -5179,6 +5205,8 @@ MonoBehaviour:
type: 3}
m_DeselectOnBackgroundClick: 1
m_PointerBehavior: 0
+ m_CursorLockBehavior: 0
+ m_ScrollDeltaPerTick: 6
--- !u!1 &7907029380085608248
GameObject:
m_ObjectHideFlags: 0
@@ -5204,20 +5232,21 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7907029380085608248}
+ 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: 632517551718986922}
- {fileID: 7907029379700984249}
- {fileID: 7907029378987110433}
- {fileID: 6677724032546433143}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!95 &3300335164659556536
Animator:
- serializedVersion: 3
+ serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -5230,10 +5259,12 @@ Animator:
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
+ m_StabilizeFeet: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
- m_KeepAnimatorControllerStateOnDisable: 0
+ m_KeepAnimatorStateOnDisable: 0
+ m_WriteDefaultValuesOnDisable: 0
--- !u!114 &8803882710196166548
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -5284,12 +5315,12 @@ RectTransform:
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: 6579042049359713682}
- {fileID: 8412186144379556017}
- {fileID: 5173670630180522257}
m_Father: {fileID: 8802111069979096020}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -5359,10 +5390,10 @@ RectTransform:
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: 6625323426447594141}
m_Father: {fileID: 324747761305206209}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -5491,10 +5522,10 @@ RectTransform:
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: 342155042700800551}
m_Father: {fileID: 6083943551725646513}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 0.14}
@@ -5625,11 +5656,11 @@ RectTransform:
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: 2050324361617852656}
- {fileID: 5764655486072398269}
m_Father: {fileID: 3943413126786587729}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.5, y: 1}
@@ -5671,13 +5702,13 @@ RectTransform:
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: 2392179485422591978}
- {fileID: 441664188382872731}
- {fileID: 3459718024052074071}
- {fileID: 3893494376592108040}
m_Father: {fileID: 4917528799211966126}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.5, y: 1}
@@ -5738,9 +5769,9 @@ RectTransform:
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: 1406770832804645538}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -5811,10 +5842,10 @@ RectTransform:
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: 4573444277201158932}
m_Father: {fileID: 441664188382872731}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.4, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -5864,18 +5895,24 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 7907029378987110433}
m_Modifications:
- target: {fileID: 290636045995068861, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchorMax.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 290636045995068861, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
+ - target: {fileID: 290636045995068861, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
+ type: 3}
+ propertyPath: m_SizeDelta.x
+ value: 610
+ objectReference: {fileID: 0}
- target: {fileID: 290636045995068861, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
propertyPath: m_AnchoredPosition.x
@@ -5886,16 +5923,16 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: -90
objectReference: {fileID: 0}
- - target: {fileID: 290636045995068861, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 610
- objectReference: {fileID: 0}
- target: {fileID: 445688999390828274, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 2
objectReference: {fileID: 0}
+ - target: {fileID: 445688999390828274, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
+ type: 3}
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
+ value: 6
+ objectReference: {fileID: 0}
- target: {fileID: 445688999390828274, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
@@ -5903,8 +5940,8 @@ PrefabInstance:
objectReference: {fileID: 4123585949464230279}
- target: {fileID: 445688999390828274, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
- value: UnityEngine.GameObject, UnityEngine
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
+ value: 2
objectReference: {fileID: 0}
- target: {fileID: 445688999390828274, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
@@ -5913,23 +5950,18 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 445688999390828274, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
- value: 6
- objectReference: {fileID: 0}
- - target: {fileID: 445688999390828274, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
- type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_TargetAssemblyTypeName
+ value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 445688999390828274, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
- value: 2
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_BoolArgument
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 445688999390828274, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_BoolArgument
- value: 1
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
+ value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 555911760475124056, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
@@ -5943,108 +5975,113 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
+ propertyPath: m_RootOrder
+ value: 5
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_LocalRotation.x
- value: 0
+ propertyPath: m_AnchorMax.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_LocalRotation.y
+ propertyPath: m_AnchorMax.y
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
+ type: 3}
+ propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_LocalRotation.z
+ propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_SizeDelta.x
+ value: -40
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_RootOrder
- value: 5
+ propertyPath: m_SizeDelta.y
+ value: -40
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_AnchoredPosition.y
+ propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_SizeDelta.x
- value: -40
+ propertyPath: m_LocalRotation.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_SizeDelta.y
- value: -40
+ propertyPath: m_LocalRotation.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_AnchorMin.x
+ propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- - target: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
+ - target: {fileID: 4529424659315011279, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_AnchorMax.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 4529424659315011279, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
@@ -6053,8 +6090,8 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4529424659315011279, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_SizeDelta.x
+ value: 610
objectReference: {fileID: 0}
- target: {fileID: 4529424659315011279, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
@@ -6066,30 +6103,29 @@ PrefabInstance:
propertyPath: m_AnchoredPosition.y
value: -30
objectReference: {fileID: 0}
- - target: {fileID: 4529424659315011279, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
- type: 3}
- propertyPath: m_SizeDelta.x
- value: 610
- objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: c3ff0a5c94dd0e94388e60d78157ed5c, type: 3}
---- !u!1 &1553643131225060081 stripped
-GameObject:
- m_CorrespondingSourceObject: {fileID: 555911760475124056, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
- type: 3}
- m_PrefabInstance: {fileID: 1313178619701478313}
- m_PrefabAsset: {fileID: 0}
--- !u!224 &1553643131225060080 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 555911760475124057, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
type: 3}
m_PrefabInstance: {fileID: 1313178619701478313}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &1553643131225060081 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 555911760475124056, guid: c3ff0a5c94dd0e94388e60d78157ed5c,
+ type: 3}
+ m_PrefabInstance: {fileID: 1313178619701478313}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &2046405910375332430
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 7907029378344209924}
m_Modifications:
- target: {fileID: 59890226972047620, guid: 9c2a38523400349b29e5a37a5b202ea6,
@@ -6099,128 +6135,128 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 59890228045598728, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 4
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 59890228045598728, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 59890228045598728, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 59890228045598728, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 4
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_RootOrder
+ propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_AnchoredPosition.x
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_AnchorMax.x
+ propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2367426047754857468, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6835454259844634052, guid: 9c2a38523400349b29e5a37a5b202ea6,
type: 3}
@@ -6238,6 +6274,9 @@ PrefabInstance:
value: Catergory_mainmenu_race
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 9c2a38523400349b29e5a37a5b202ea6, type: 3}
--- !u!224 &4376516045305876914 stripped
RectTransform:
@@ -6250,6 +6289,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 4603593415221689277}
m_Modifications:
- target: {fileID: 293417428647739207, guid: e641672c17c8e4fa598ae375d62f92d0,
@@ -6259,158 +6299,158 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
+ propertyPath: m_RootOrder
+ value: 2
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_LocalRotation.w
+ propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_RootOrder
- value: 2
+ propertyPath: m_SizeDelta.x
+ value: 610
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 305
+ propertyPath: m_LocalPosition.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -180
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 610
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 1
+ propertyPath: m_AnchoredPosition.x
+ value: 305
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_AnchoredPosition.y
+ value: -180
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1636223838501202631, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 3355826776686620820, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.characterCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3355826776686620820, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3355826776686620820, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3355826776686620820, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.characterCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4145383538461210715, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 11
+ propertyPath: m_isTextTruncated
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4145383538461210715, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4145383538461210715, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4145383538461210715, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4145383538461210715, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: -1
+ propertyPath: m_textInfo.characterCount
+ value: 11
objectReference: {fileID: 0}
- target: {fileID: 4145383538461210715, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_isTextTruncated
- value: 0
+ propertyPath: m_firstOverflowCharacterIndex
+ value: -1
objectReference: {fileID: 0}
- target: {fileID: 4165739792466630093, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
@@ -6419,43 +6459,43 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4528881512793225869, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.characterCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4528881512793225869, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4528881512793225869, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4528881512793225869, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.characterCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4898991619777394856, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 9
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 4898991619777394856, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.wordCount
- value: 2
+ propertyPath: m_textInfo.pageCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 4898991619777394856, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.lineCount
- value: 1
+ propertyPath: m_textInfo.wordCount
+ value: 2
objectReference: {fileID: 0}
- target: {fileID: 4898991619777394856, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 9
objectReference: {fileID: 0}
- target: {fileID: 4898991619777394856, guid: e641672c17c8e4fa598ae375d62f92d0,
type: 3}
@@ -6463,6 +6503,9 @@ PrefabInstance:
value: -1
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e641672c17c8e4fa598ae375d62f92d0, type: 3}
--- !u!224 &3459718024052074071 stripped
RectTransform:
@@ -6487,6 +6530,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 7907029378344209924}
m_Modifications:
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
@@ -6496,28 +6540,28 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
value: 6
objectReference: {fileID: 0}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
- value: 2
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
+ value: 6
objectReference: {fileID: 0}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
- objectReference: {fileID: 1553643131225060081}
+ objectReference: {fileID: 4123585949464230279}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
value:
- objectReference: {fileID: 4123585949464230279}
+ objectReference: {fileID: 1553643131225060081}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
- value: UnityEngine.GameObject, UnityEngine
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_CallState
+ value: 2
objectReference: {fileID: 0}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
@@ -6526,13 +6570,13 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 6
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
+ value: SetActive
objectReference: {fileID: 0}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_TargetAssemblyTypeName
+ value: UnityEngine.GameObject, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
@@ -6541,18 +6585,18 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: SetActive
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_BoolArgument
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 1387412097423351230, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_BoolArgument
- value: 1
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
+ value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 3005896382906109012, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
@@ -6566,23 +6610,23 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5569192717355522162, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 9
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5569192717355522162, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5569192717355522162, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5569192717355522162, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 9
objectReference: {fileID: 0}
- target: {fileID: 5569192718429090174, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
@@ -6591,110 +6635,113 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
+ propertyPath: m_RootOrder
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_LocalRotation.w
+ propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_RootOrder
- value: 1
+ propertyPath: m_SizeDelta.x
+ value: 1426.2534
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 763.1267
+ propertyPath: m_LocalPosition.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -90
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 1426.2534
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 1
+ propertyPath: m_AnchoredPosition.x
+ value: 763.1267
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_AnchoredPosition.y
+ value: -90
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7874460316248613766, guid: 6c4c432a58e904349aa3da4121ddc39a,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6c4c432a58e904349aa3da4121ddc39a, type: 3}
--- !u!224 &4612491773756503954 stripped
RectTransform:
@@ -6707,6 +6754,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 8802111069979096020}
m_Modifications:
- target: {fileID: 3483432873453881459, guid: 3aa15030c01b44e1981a625cc3f1ec72,
@@ -6714,6 +6762,11 @@ PrefabInstance:
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 1
objectReference: {fileID: 0}
+ - target: {fileID: 3483432873453881459, guid: 3aa15030c01b44e1981a625cc3f1ec72,
+ type: 3}
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+ value: 5
+ objectReference: {fileID: 0}
- target: {fileID: 3483432873453881459, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
@@ -6724,11 +6777,6 @@ PrefabInstance:
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: SetTrigger
objectReference: {fileID: 0}
- - target: {fileID: 3483432873453881459, guid: 3aa15030c01b44e1981a625cc3f1ec72,
- type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 5
- objectReference: {fileID: 0}
- target: {fileID: 3483432873453881459, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_StringArgument
@@ -6741,23 +6789,23 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 6656838211862073268, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_padding
- value: 0
+ propertyPath: m_Enabled
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 6656838211862073268, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_Enabled
- value: 1
+ propertyPath: m_padding
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_LocalPosition.x
+ propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
@@ -6766,60 +6814,63 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
+ propertyPath: m_AnchorMax.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_AnchorMin.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
+ propertyPath: m_AnchorMin.y
+ value: -0.23
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_Pivot.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: -40
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_Pivot.y
- value: 1
+ propertyPath: m_LocalPosition.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 20
+ propertyPath: m_LocalPosition.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_AnchoredPosition.x
+ value: 20
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_AnchoredPosition.y
+ value: -20
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_AnchorMin.y
- value: -0.23
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_SizeDelta.y
- value: -40
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7393333455624452490, guid: 3aa15030c01b44e1981a625cc3f1ec72,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -20
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3aa15030c01b44e1981a625cc3f1ec72, type: 3}
--- !u!224 &5222232652279626277 stripped
RectTransform:
@@ -6832,6 +6883,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 7907029380085608247}
m_Modifications:
- target: {fileID: 7803164479145020861, guid: 5aec52444778a4ef2b11847564e94866,
@@ -6846,18 +6898,18 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 7803164479520924053, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
- propertyPath: m_LocalRotation.x
- value: 0.07858009
+ propertyPath: m_LocalPosition.x
+ value: -2.8925436
objectReference: {fileID: 0}
- target: {fileID: 7803164479520924053, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
- propertyPath: m_LocalRotation.y
- value: 0.91455495
+ propertyPath: m_LocalPosition.y
+ value: 2.7719994
objectReference: {fileID: 0}
- target: {fileID: 7803164479520924053, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0.21589711
+ propertyPath: m_LocalPosition.z
+ value: 3.044201
objectReference: {fileID: 0}
- target: {fileID: 7803164479520924053, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
@@ -6866,18 +6918,18 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 7803164479520924053, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
- propertyPath: m_LocalPosition.x
- value: -2.8925436
+ propertyPath: m_LocalRotation.x
+ value: 0.07858009
objectReference: {fileID: 0}
- target: {fileID: 7803164479520924053, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 2.7719994
+ propertyPath: m_LocalRotation.y
+ value: 0.91455495
objectReference: {fileID: 0}
- target: {fileID: 7803164479520924053, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
- propertyPath: m_LocalPosition.z
- value: 3.044201
+ propertyPath: m_LocalRotation.z
+ value: -0.21589711
objectReference: {fileID: 0}
- target: {fileID: 7803164479520924054, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
@@ -6894,6 +6946,11 @@ PrefabInstance:
propertyPath: m_IsActive
value: 1
objectReference: {fileID: 0}
+ - target: {fileID: 7803164479910481701, guid: 5aec52444778a4ef2b11847564e94866,
+ type: 3}
+ propertyPath: m_RootOrder
+ value: 3
+ objectReference: {fileID: 0}
- target: {fileID: 7803164479910481701, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
propertyPath: m_LocalPosition.x
@@ -6909,6 +6966,11 @@ PrefabInstance:
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
+ - target: {fileID: 7803164479910481701, guid: 5aec52444778a4ef2b11847564e94866,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
- target: {fileID: 7803164479910481701, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
propertyPath: m_LocalRotation.x
@@ -6924,16 +6986,6 @@ PrefabInstance:
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- - target: {fileID: 7803164479910481701, guid: 5aec52444778a4ef2b11847564e94866,
- type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
- objectReference: {fileID: 0}
- - target: {fileID: 7803164479910481701, guid: 5aec52444778a4ef2b11847564e94866,
- type: 3}
- propertyPath: m_RootOrder
- value: 3
- objectReference: {fileID: 0}
- target: {fileID: 7803164479910481701, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
propertyPath: m_LocalEulerAnglesHint.x
@@ -6950,6 +7002,9 @@ PrefabInstance:
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 5aec52444778a4ef2b11847564e94866, type: 3}
--- !u!1 &3426649662696253841 stripped
GameObject:
@@ -6957,149 +7012,150 @@ GameObject:
type: 3}
m_PrefabInstance: {fileID: 3523611926158796626}
m_PrefabAsset: {fileID: 0}
---- !u!1 &6677724032547962557 stripped
-GameObject:
- m_CorrespondingSourceObject: {fileID: 7803164479912040943, guid: 5aec52444778a4ef2b11847564e94866,
- type: 3}
- m_PrefabInstance: {fileID: 3523611926158796626}
- m_PrefabAsset: {fileID: 0}
--- !u!4 &6677724032546433143 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 7803164479910481701, guid: 5aec52444778a4ef2b11847564e94866,
type: 3}
m_PrefabInstance: {fileID: 3523611926158796626}
m_PrefabAsset: {fileID: 0}
+--- !u!1 &6677724032547962557 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 7803164479912040943, guid: 5aec52444778a4ef2b11847564e94866,
+ type: 3}
+ m_PrefabInstance: {fileID: 3523611926158796626}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &3593248499807004690
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 7907029378344209924}
m_Modifications:
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
+ propertyPath: m_RootOrder
+ value: 2
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_RootOrder
- value: 2
+ propertyPath: m_SizeDelta.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_AnchoredPosition.x
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_AnchorMax.x
+ propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1197693523323382799, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 3499581972667848699, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 4
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 3499581972667848699, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3499581972667848699, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3499581972667848699, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 4
objectReference: {fileID: 0}
- target: {fileID: 3499581973741518583, guid: e95c985f007f74332872b8e64035af9d,
type: 3}
@@ -7112,6 +7168,9 @@ PrefabInstance:
value: Catergory_mainmenu_exit
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: e95c985f007f74332872b8e64035af9d, type: 3}
--- !u!224 &2396697376959644701 stripped
RectTransform:
@@ -7124,27 +7183,28 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 3644197056844246198}
m_Modifications:
- target: {fileID: 2457640407412653492, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 4
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2457640407412653492, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2457640407412653492, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2457640407412653492, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 4
objectReference: {fileID: 0}
- target: {fileID: 2457640407412653492, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
@@ -7153,22 +7213,22 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5725683357886330248, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.characterCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5725683357886330248, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5725683357886330248, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5725683357886330248, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.characterCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6352417730035355857, guid: 6849ec929aa994895a25cfcfcae2527f,
@@ -7178,47 +7238,47 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 6368266192392764743, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 1
+ propertyPath: m_isTextTruncated
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 6368266192392764743, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6368266192392764743, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6368266192392764743, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6368266192392764743, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_isTextTruncated
- value: 0
+ propertyPath: m_textInfo.characterCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 6862973169193975697, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.characterCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6862973169193975697, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6862973169193975697, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 6862973169193975697, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.characterCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7346938454489217627, guid: 6849ec929aa994895a25cfcfcae2527f,
@@ -7228,117 +7288,114 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
+ propertyPath: m_RootOrder
+ value: 2
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_LocalRotation.w
+ propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_RootOrder
- value: 2
+ propertyPath: m_SizeDelta.x
+ value: 610
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 305
+ propertyPath: m_LocalPosition.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -180
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 610
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 1
+ propertyPath: m_AnchoredPosition.x
+ value: 305
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_AnchoredPosition.y
+ value: -180
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6849ec929aa994895a25cfcfcae2527f, type: 3}
---- !u!224 &4631664004069129997 stripped
-RectTransform:
- m_CorrespondingSourceObject: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
- type: 3}
- m_PrefabInstance: {fileID: 3968811704722870486}
- m_PrefabAsset: {fileID: 0}
--- !u!114 &1202543925499199682 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 2856485458740006932, guid: 6849ec929aa994895a25cfcfcae2527f,
@@ -7351,127 +7408,134 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d4e955686e91b45e085af22325bce692, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!224 &4631664004069129997 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 8598203918052995035, guid: 6849ec929aa994895a25cfcfcae2527f,
+ type: 3}
+ m_PrefabInstance: {fileID: 3968811704722870486}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &4375629241081328358
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 5173670630180522257}
m_Modifications:
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_LocalRotation.w
+ propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_RootOrder
- value: 0
+ propertyPath: m_SizeDelta.x
+ value: 625
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 428
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 312.5
+ propertyPath: m_LocalPosition.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -214
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 625
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 428
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 1
+ propertyPath: m_AnchoredPosition.x
+ value: 312.5
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_AnchoredPosition.y
+ value: -214
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 287166509942831546, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1198283025011319710, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 36
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 1198283025011319710, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_textInfo.spaceCount
- value: 7
+ propertyPath: m_textInfo.pageCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 1198283025011319710, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
@@ -7480,13 +7544,13 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1198283025011319710, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_textInfo.lineCount
- value: 1
+ propertyPath: m_textInfo.spaceCount
+ value: 7
objectReference: {fileID: 0}
- target: {fileID: 1198283025011319710, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 36
objectReference: {fileID: 0}
- target: {fileID: 2266699601162746537, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
@@ -7495,23 +7559,23 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4848333007420890690, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 9
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 4848333007420890690, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4848333007420890690, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4848333007420890690, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 9
objectReference: {fileID: 0}
- target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
@@ -7525,8 +7589,8 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
- value: 2
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
+ value: 5
objectReference: {fileID: 0}
- target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
@@ -7535,18 +7599,13 @@ PrefabInstance:
objectReference: {fileID: 8803882710196166548}
- target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
- value: SetupSpectatorGame
- objectReference: {fileID: 0}
- - target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
- type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
+ value:
+ objectReference: {fileID: 3300335164659556536}
- target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
- value: 5
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
+ value: 2
objectReference: {fileID: 0}
- target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
@@ -7555,9 +7614,9 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 3300335164659556536}
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+ value: SetupSpectatorGame
+ objectReference: {fileID: 0}
- target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
@@ -7565,15 +7624,23 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_StringArgument
+ value: Spectator
+ objectReference: {fileID: 0}
+ - target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
+ type: 3}
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 7439659265635515354, guid: 0546f910860404e4cab301da1ed75fe5,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_StringArgument
- value: Spectator
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
+ value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 0546f910860404e4cab301da1ed75fe5, type: 3}
--- !u!224 &4559160113779247964 stripped
RectTransform:
@@ -7586,33 +7653,39 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 8802111069979096020}
m_Modifications:
- target: {fileID: 78310429394321073, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 4
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 78310429394321073, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 78310429394321073, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 78310429394321073, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 4
objectReference: {fileID: 0}
- target: {fileID: 424010144004441284, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 1
objectReference: {fileID: 0}
+ - target: {fileID: 424010144004441284, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
+ type: 3}
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+ value: 1
+ objectReference: {fileID: 0}
- target: {fileID: 424010144004441284, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
@@ -7623,115 +7696,110 @@ PrefabInstance:
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: StartRace
objectReference: {fileID: 0}
- - target: {fileID: 424010144004441284, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
+ - target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+ propertyPath: m_Pivot.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_RootOrder
+ value: 5
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
+ propertyPath: m_AnchorMax.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.y
+ value: -0.23
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_SizeDelta.x
+ value: 200
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_RootOrder
- value: 5
+ propertyPath: m_SizeDelta.y
+ value: -40
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: -20
- objectReference: {fileID: 0}
- - target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
- type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -20
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 200
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_SizeDelta.y
- value: -40
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 1
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_AnchorMin.y
- value: -0.23
+ propertyPath: m_AnchoredPosition.x
+ value: -20
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 1
+ propertyPath: m_AnchoredPosition.y
+ value: -20
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_Pivot.x
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 5994190909073175869, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
- propertyPath: m_Pivot.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7281526541884588003, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9,
type: 3}
@@ -7744,6 +7812,9 @@ PrefabInstance:
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: cbc4f194f3c894ba0a4d4f8171b7a1e9, type: 3}
--- !u!224 &1297213354555609066 stripped
RectTransform:
@@ -7756,6 +7827,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 3644197056844246198}
m_Modifications:
- target: {fileID: 78158264318192071, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
@@ -7765,178 +7837,178 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
+ propertyPath: m_RootOrder
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_LocalRotation.w
+ propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_RootOrder
- value: 1
+ propertyPath: m_SizeDelta.x
+ value: 610
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 305
+ propertyPath: m_LocalPosition.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -110
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 610
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 1
+ propertyPath: m_AnchoredPosition.x
+ value: 305
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_AnchoredPosition.y
+ value: -110
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 3140569913150727700, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.characterCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3140569913150727700, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3140569913150727700, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 3140569913150727700, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.characterCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4313903787989871629, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.characterCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4313903787989871629, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4313903787989871629, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4313903787989871629, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.characterCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4359657351628582619, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 6
+ propertyPath: m_isTextTruncated
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4359657351628582619, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4359657351628582619, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4359657351628582619, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4359657351628582619, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: -1
+ propertyPath: m_textInfo.characterCount
+ value: 6
objectReference: {fileID: 0}
- target: {fileID: 4359657351628582619, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_isTextTruncated
- value: 0
+ propertyPath: m_firstOverflowCharacterIndex
+ value: -1
objectReference: {fileID: 0}
- target: {fileID: 4379873074605474637, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
@@ -7945,23 +8017,23 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5114813683879702056, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 5
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5114813683879702056, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5114813683879702056, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5114813683879702056, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 5
objectReference: {fileID: 0}
- target: {fileID: 5114813683879702056, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
type: 3}
@@ -7969,13 +8041,10 @@ PrefabInstance:
value: -1
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: f6fa26ee1af1c43ccb777b80eb7e8a02, type: 3}
---- !u!224 &6586527480826535880 stripped
-RectTransform:
- m_CorrespondingSourceObject: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
- type: 3}
- m_PrefabInstance: {fileID: 5249721825145316239}
- m_PrefabAsset: {fileID: 0}
--- !u!114 &837310350053105671 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 4847134872282235784, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
@@ -7988,22 +8057,29 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d4e955686e91b45e085af22325bce692, type: 3}
m_Name:
m_EditorClassIdentifier:
+--- !u!224 &6586527480826535880 stripped
+RectTransform:
+ m_CorrespondingSourceObject: {fileID: 1419418896399957063, guid: f6fa26ee1af1c43ccb777b80eb7e8a02,
+ type: 3}
+ m_PrefabInstance: {fileID: 5249721825145316239}
+ m_PrefabAsset: {fileID: 0}
--- !u!1001 &5634064345594304585
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 8802111069979096020}
m_Modifications:
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
@@ -8012,43 +8088,43 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_AnchorMin.y
+ value: -0.23
objectReference: {fileID: 0}
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: -40
objectReference: {fileID: 0}
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_Pivot.x
- value: 1
+ propertyPath: m_LocalPosition.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_Pivot.y
- value: 1
+ propertyPath: m_AnchoredPosition.y
+ value: -20
objectReference: {fileID: 0}
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_AnchorMin.y
- value: -0.23
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_SizeDelta.y
- value: -40
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 72160263453854153, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -20
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 3972971401390162711, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
@@ -8062,12 +8138,12 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4322312073944530935, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_padding
+ propertyPath: m_Enabled
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4322312073944530935, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
- propertyPath: m_Enabled
+ propertyPath: m_padding
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6326883774926846000, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
@@ -8075,6 +8151,11 @@ PrefabInstance:
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 1
objectReference: {fileID: 0}
+ - target: {fileID: 6326883774926846000, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
+ type: 3}
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+ value: 5
+ objectReference: {fileID: 0}
- target: {fileID: 6326883774926846000, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
@@ -8085,17 +8166,15 @@ PrefabInstance:
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: SetTrigger
objectReference: {fileID: 0}
- - target: {fileID: 6326883774926846000, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
- type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 5
- objectReference: {fileID: 0}
- target: {fileID: 6326883774926846000, guid: 7d74b45c74ce64ef1b66ab68a9d5be51,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_StringArgument
value: Next
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 7d74b45c74ce64ef1b66ab68a9d5be51, type: 3}
--- !u!224 &5706178149847880064 stripped
RectTransform:
@@ -8108,46 +8187,47 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 3644197056844246198}
m_Modifications:
- target: {fileID: 285741469465936373, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.characterCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 285741469465936373, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 285741469465936373, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 285741469465936373, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.characterCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1422208719443479532, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.characterCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1422208719443479532, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1422208719443479532, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1422208719443479532, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.characterCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1489227696064242860, guid: 6312e4271f86843a59d483d5e26cbe7f,
@@ -8157,33 +8237,33 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 1504834131173869882, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 3
+ propertyPath: m_isTextTruncated
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 1504834131173869882, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.lineCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1504834131173869882, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1504834131173869882, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 1504834131173869882, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: -1
+ propertyPath: m_textInfo.characterCount
+ value: 3
objectReference: {fileID: 0}
- target: {fileID: 1504834131173869882, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_isTextTruncated
- value: 0
+ propertyPath: m_firstOverflowCharacterIndex
+ value: -1
objectReference: {fileID: 0}
- target: {fileID: 2987873846869036582, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
@@ -8192,123 +8272,123 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
+ propertyPath: m_RootOrder
+ value: 3
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_LocalRotation.w
+ propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_RootOrder
- value: 3
+ propertyPath: m_SizeDelta.x
+ value: 610
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 1
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_AnchoredPosition.x
+ value: 305
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_AnchoredPosition.y
+ value: -250
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 305
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -250
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 4310061526176766886, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 610
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7969634224804825545, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 7
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7969634224804825545, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.wordCount
+ propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7969634224804825545, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.lineCount
+ propertyPath: m_textInfo.wordCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7969634224804825545, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 7
objectReference: {fileID: 0}
- target: {fileID: 7969634224804825545, guid: 6312e4271f86843a59d483d5e26cbe7f,
type: 3}
@@ -8316,6 +8396,9 @@ PrefabInstance:
value: -1
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6312e4271f86843a59d483d5e26cbe7f, type: 3}
--- !u!114 &3862085008030771172 stripped
MonoBehaviour:
@@ -8340,38 +8423,29 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 8412186144379556017}
m_Modifications:
- target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
- value:
- objectReference: {fileID: 3300335164659556536}
- - target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
- type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
- value: SetTrigger
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Mode
value: 5
objectReference: {fileID: 0}
- - target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
- type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
- value: UnityEngine.Object, UnityEngine
- objectReference: {fileID: 0}
- - target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
- type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_StringArgument
- value: Singleplayer
- objectReference: {fileID: 0}
- target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 8803882710196166548}
+ - target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
+ type: 3}
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Target
+ value:
+ objectReference: {fileID: 3300335164659556536}
- target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
@@ -8379,18 +8453,18 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 1
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_MethodName
+ value: SetTrigger
objectReference: {fileID: 0}
- - target: {fileID: 2435524149243675639, guid: 6cccc980771d74815aecbcc8255eaf3c,
+ - target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 12
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_StringArgument
+ value: Singleplayer
objectReference: {fileID: 0}
- - target: {fileID: 2435524149243675639, guid: 6cccc980771d74815aecbcc8255eaf3c,
+ - target: {fileID: 570424265157894244, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_textInfo.wordCount
- value: 1
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[1].m_Arguments.m_ObjectArgumentAssemblyTypeName
+ value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 2435524149243675639, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
@@ -8402,120 +8476,130 @@ PrefabInstance:
propertyPath: m_textInfo.pageCount
value: 1
objectReference: {fileID: 0}
+ - target: {fileID: 2435524149243675639, guid: 6cccc980771d74815aecbcc8255eaf3c,
+ type: 3}
+ propertyPath: m_textInfo.wordCount
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2435524149243675639, guid: 6cccc980771d74815aecbcc8255eaf3c,
+ type: 3}
+ propertyPath: m_textInfo.characterCount
+ value: 12
+ objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_LocalRotation.w
+ propertyPath: m_AnchorMin.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_RootOrder
- value: 0
+ propertyPath: m_SizeDelta.x
+ value: 625
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 428
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 312.5
+ propertyPath: m_LocalPosition.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: -214
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 625
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 428
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 1
+ propertyPath: m_AnchoredPosition.x
+ value: 312.5
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_AnchoredPosition.y
+ value: -214
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_AnchorMax.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7023430735551161359, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8225030246940786219, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 26
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 8225030246940786219, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_textInfo.spaceCount
- value: 3
+ propertyPath: m_textInfo.pageCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 8225030246940786219, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
@@ -8524,13 +8608,13 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8225030246940786219, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_textInfo.lineCount
- value: 1
+ propertyPath: m_textInfo.spaceCount
+ value: 3
objectReference: {fileID: 0}
- target: {fileID: 8225030246940786219, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
- propertyPath: m_textInfo.pageCount
- value: 1
+ propertyPath: m_textInfo.characterCount
+ value: 26
objectReference: {fileID: 0}
- target: {fileID: 9075010700535047964, guid: 6cccc980771d74815aecbcc8255eaf3c,
type: 3}
@@ -8538,6 +8622,9 @@ PrefabInstance:
value: Image_square_singleplayer
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 6cccc980771d74815aecbcc8255eaf3c, type: 3}
--- !u!224 &1140639340486532233 stripped
RectTransform:
diff --git a/Assets/Objects/UI/prefabs/MainMenu/MenuOption.prefab b/Assets/Objects/UI/prefabs/MainMenu/MenuOption.prefab
index c85d8a7ea..7e62f831e 100644
--- a/Assets/Objects/UI/prefabs/MainMenu/MenuOption.prefab
+++ b/Assets/Objects/UI/prefabs/MainMenu/MenuOption.prefab
@@ -28,9 +28,9 @@ RectTransform:
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.8, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5257665403206791738}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -60,6 +60,8 @@ MonoBehaviour:
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: []
@@ -84,13 +86,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 50
m_fontSizeBase: 50
m_fontWeight: 400
@@ -98,6 +99,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 514
m_characterSpacing: 0
m_wordSpacing: 0
@@ -108,10 +111,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: 0
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -119,40 +120,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 5764953102979559682}
- characterCount: 1
- spriteCount: 0
- spaceCount: 0
- wordCount: 1
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &1236348407884958776
@@ -183,12 +162,12 @@ RectTransform:
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: 5257665403206791738}
- {fileID: 5872483233314680030}
- {fileID: 5137888035373209674}
m_Father: {fileID: 7504817807149001553}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.4, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -218,6 +197,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 0.21176472, g: 0.8078432, b: 0.94117653, a: 1}
m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -259,9 +240,9 @@ RectTransform:
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: 9043995148757067112}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -291,6 +272,8 @@ MonoBehaviour:
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: []
@@ -300,7 +283,6 @@ MonoBehaviour:
m_sharedMaterial: {fileID: 0}
m_isDefaultMaterial: 0
m_padding: 9.032028
- m_canvasRenderer: {fileID: 7324536109537907891}
m_TextComponent: {fileID: 4426974721752824126}
m_materialReferenceIndex: 1
--- !u!1 &1777659438628074741
@@ -332,10 +314,10 @@ RectTransform:
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: 2031134814914522617}
m_Father: {fileID: 5982953903267115757}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.15, y: 1}
@@ -365,6 +347,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -392,6 +376,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
@@ -422,6 +407,7 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 4093994729439204510}
+ m_TargetAssemblyTypeName:
m_MethodName: PreviousOption
m_Mode: 1
m_Arguments:
@@ -461,10 +447,10 @@ RectTransform:
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: 2133153440035269574}
m_Father: {fileID: 5982953903267115757}
- m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.85, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -494,6 +480,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -521,6 +509,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
@@ -551,6 +540,7 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 4093994729439204510}
+ m_TargetAssemblyTypeName:
m_MethodName: NextOption
m_Mode: 1
m_Arguments:
@@ -589,10 +579,10 @@ RectTransform:
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: 5087332894515566695}
m_Father: {fileID: 7504817807149001553}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0.4, y: 1}
@@ -622,6 +612,8 @@ MonoBehaviour:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
@@ -646,13 +638,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 32
m_fontSizeBase: 32
m_fontWeight: 400
@@ -660,6 +651,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 16
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 513
m_characterSpacing: 5
m_wordSpacing: 0
@@ -670,10 +663,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: 1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -681,40 +672,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 4426974721752824126}
- characterCount: 6
- spriteCount: 0
- spaceCount: 0
- wordCount: 1
- linkCount: 0
- lineCount: 6
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 5142229674220934235}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &5952309057412319736
@@ -745,9 +714,9 @@ RectTransform:
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: 5982953903267115757}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.15, y: 0}
m_AnchorMax: {x: 0.85, y: 1}
@@ -777,6 +746,8 @@ MonoBehaviour:
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: []
@@ -801,13 +772,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 32
m_fontSizeBase: 32
m_fontWeight: 400
@@ -815,6 +785,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 16
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 514
m_characterSpacing: 0
m_wordSpacing: 0
@@ -825,10 +797,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 1
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 1
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -836,40 +806,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 5121767864381798861}
- characterCount: 1
- spriteCount: 0
- spaceCount: 0
- wordCount: 1
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &8470363699566211922
@@ -900,9 +848,9 @@ RectTransform:
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.8000001, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 5137888035373209674}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -932,6 +880,8 @@ MonoBehaviour:
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: []
@@ -956,13 +906,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 50
m_fontSizeBase: 50
m_fontWeight: 400
@@ -970,6 +919,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 514
m_characterSpacing: 0
m_wordSpacing: 0
@@ -980,10 +931,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: 0
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -991,40 +940,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 4632692584657468187}
- characterCount: 1
- spriteCount: 0
- spaceCount: 0
- wordCount: 1
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &8827369151035309777
@@ -1054,11 +981,11 @@ RectTransform:
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: 9043995148757067112}
- {fileID: 5982953903267115757}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -1080,7 +1007,5 @@ MonoBehaviour:
options:
- Value
text: {fileID: 5121767864381798861}
- next: {fileID: 2319450317343573824}
- previous: {fileID: 7100323514810347311}
loop: 1
startOption: 0
diff --git a/Assets/Objects/UI/prefabs/MainMenu/MenuOption_BoatType.prefab b/Assets/Objects/UI/prefabs/MainMenu/MenuOption_BoatType.prefab
index dd31eaa92..a2531e8b6 100644
--- a/Assets/Objects/UI/prefabs/MainMenu/MenuOption_BoatType.prefab
+++ b/Assets/Objects/UI/prefabs/MainMenu/MenuOption_BoatType.prefab
@@ -5,6 +5,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
@@ -14,24 +15,19 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: options.Array.data[1]
- value: Renegade
+ propertyPath: options.Array.data[0]
+ value: Interceptor
objectReference: {fileID: 0}
- target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: options.Array.data[0]
- value: Interceptor
+ propertyPath: options.Array.data[1]
+ value: Renegade
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
propertyPath: m_text
value: Hull Type
objectReference: {fileID: 0}
- - target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
- type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: 1
- objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
propertyPath: m_textInfo.lineCount
@@ -39,8 +35,8 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 9
+ propertyPath: m_textInfo.pageCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
@@ -49,12 +45,17 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textInfo.pageCount
+ propertyPath: m_textInfo.spaceCount
value: 1
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textInfo.spaceCount
+ propertyPath: m_textInfo.characterCount
+ value: 9
+ objectReference: {fileID: 0}
+ - target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
+ type: 3}
+ propertyPath: m_firstOverflowCharacterIndex
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
@@ -64,13 +65,13 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: -1
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textInfo.lineCount
- value: 1
+ propertyPath: m_textInfo.spaceCount
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
@@ -79,113 +80,113 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textInfo.spaceCount
- value: 0
+ propertyPath: m_firstOverflowCharacterIndex
+ value: -1
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_RootOrder
+ propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchoredPosition.x
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 3.6551514
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_AnchoredPosition.y
+ value: 3.6551514
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8827369151035309777, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
@@ -193,4 +194,7 @@ PrefabInstance:
value: MenuOption_BoatType
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4ed6a17b8f9c64727bbb59e18c3022ac, type: 3}
diff --git a/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Laps.prefab b/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Laps.prefab
index c1956dc7a..0a8d5ffa3 100644
--- a/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Laps.prefab
+++ b/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Laps.prefab
@@ -5,6 +5,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
@@ -12,6 +13,11 @@ PrefabInstance:
propertyPath: options.Array.size
value: 4
objectReference: {fileID: 0}
+ - target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
+ type: 3}
+ propertyPath: options.Array.data[0]
+ value: 1
+ objectReference: {fileID: 0}
- target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
propertyPath: options.Array.data[1]
@@ -22,11 +28,6 @@ PrefabInstance:
propertyPath: options.Array.data[2]
value: 6
objectReference: {fileID: 0}
- - target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
- type: 3}
- propertyPath: options.Array.data[0]
- value: 1
- objectReference: {fileID: 0}
- target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
propertyPath: options.Array.data[3]
@@ -39,31 +40,36 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: 1
+ propertyPath: m_textAlignment
+ value: 65535
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textInfo.lineCount
- value: 4
+ propertyPath: m_TextStyleHashCode
+ value: -1183493901
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 4
+ propertyPath: m_VerticalAlignment
+ value: 512
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_TextStyleHashCode
- value: -1183493901
+ propertyPath: m_textInfo.lineCount
+ value: 4
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_VerticalAlignment
- value: 512
+ propertyPath: m_textInfo.characterCount
+ value: 4
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
+ propertyPath: m_firstOverflowCharacterIndex
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 4632692584657468187, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
+ type: 3}
propertyPath: m_textAlignment
value: 65535
objectReference: {fileID: 0}
@@ -72,11 +78,6 @@ PrefabInstance:
propertyPath: m_TextStyleHashCode
value: -1183493901
objectReference: {fileID: 0}
- - target: {fileID: 4632692584657468187, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
- type: 3}
- propertyPath: m_HorizontalAlignment
- value: 2
- objectReference: {fileID: 0}
- target: {fileID: 4632692584657468187, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
propertyPath: m_VerticalAlignment
@@ -84,8 +85,8 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4632692584657468187, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textAlignment
- value: 65535
+ propertyPath: m_HorizontalAlignment
+ value: 2
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
@@ -94,23 +95,23 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: -1
+ propertyPath: m_textAlignment
+ value: 65535
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textInfo.lineCount
- value: 1
+ propertyPath: m_TextStyleHashCode
+ value: -1183493901
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 1
+ propertyPath: m_VerticalAlignment
+ value: 512
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_TextStyleHashCode
- value: -1183493901
+ propertyPath: m_textInfo.lineCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
@@ -119,11 +120,16 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_VerticalAlignment
- value: 512
+ propertyPath: m_textInfo.characterCount
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
+ propertyPath: m_firstOverflowCharacterIndex
+ value: -1
+ objectReference: {fileID: 0}
+ - target: {fileID: 5764953102979559682, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
+ type: 3}
propertyPath: m_textAlignment
value: 65535
objectReference: {fileID: 0}
@@ -132,11 +138,6 @@ PrefabInstance:
propertyPath: m_TextStyleHashCode
value: -1183493901
objectReference: {fileID: 0}
- - target: {fileID: 5764953102979559682, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
- type: 3}
- propertyPath: m_HorizontalAlignment
- value: 2
- objectReference: {fileID: 0}
- target: {fileID: 5764953102979559682, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
propertyPath: m_VerticalAlignment
@@ -144,113 +145,113 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5764953102979559682, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_textAlignment
- value: 65535
+ propertyPath: m_HorizontalAlignment
+ value: 2
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_RootOrder
+ propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchoredPosition.x
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMax.x
+ propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8827369151035309777, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
@@ -258,4 +259,7 @@ PrefabInstance:
value: MenuOption_Laps
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4ed6a17b8f9c64727bbb59e18c3022ac, type: 3}
diff --git a/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Level.prefab b/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Level.prefab
index ef1ac52f1..b5f5d005f 100644
--- a/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Level.prefab
+++ b/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Level.prefab
@@ -5,6 +5,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
@@ -17,11 +18,6 @@ PrefabInstance:
propertyPath: m_text
value: Level
objectReference: {fileID: 0}
- - target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
- type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: 1
- objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
propertyPath: m_textInfo.lineCount
@@ -32,15 +28,15 @@ PrefabInstance:
propertyPath: m_textInfo.characterCount
value: 5
objectReference: {fileID: 0}
- - target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
+ - target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_text
- value: Island
+ propertyPath: m_firstOverflowCharacterIndex
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: -1
+ propertyPath: m_text
+ value: Island
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
@@ -52,110 +48,115 @@ PrefabInstance:
propertyPath: m_textInfo.characterCount
value: 1
objectReference: {fileID: 0}
+ - target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
+ type: 3}
+ propertyPath: m_firstOverflowCharacterIndex
+ value: -1
+ objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_RootOrder
+ propertyPath: m_SizeDelta.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchoredPosition.x
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 0
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMin.y
+ propertyPath: m_AnchoredPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMax.x
+ propertyPath: m_AnchoredPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8827369151035309777, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
@@ -163,4 +164,7 @@ PrefabInstance:
value: MenuOption_Level
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4ed6a17b8f9c64727bbb59e18c3022ac, type: 3}
diff --git a/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Reverse.prefab b/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Reverse.prefab
index 3b1c4abe2..b214cdda2 100644
--- a/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Reverse.prefab
+++ b/Assets/Objects/UI/prefabs/MainMenu/MenuOption_Reverse.prefab
@@ -5,6 +5,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
@@ -14,24 +15,19 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: options.Array.data[1]
- value: On
+ propertyPath: options.Array.data[0]
+ value: Off
objectReference: {fileID: 0}
- target: {fileID: 4093994729439204510, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: options.Array.data[0]
- value: Off
+ propertyPath: options.Array.data[1]
+ value: On
objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
propertyPath: m_text
value: Reverse
objectReference: {fileID: 0}
- - target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
- type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: 1
- objectReference: {fileID: 0}
- target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
propertyPath: m_textInfo.lineCount
@@ -42,15 +38,15 @@ PrefabInstance:
propertyPath: m_textInfo.characterCount
value: 7
objectReference: {fileID: 0}
- - target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
+ - target: {fileID: 4426974721752824126, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_text
- value: Off
+ propertyPath: m_firstOverflowCharacterIndex
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: -1
+ propertyPath: m_text
+ value: Off
objectReference: {fileID: 0}
- target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
@@ -62,90 +58,95 @@ PrefabInstance:
propertyPath: m_textInfo.characterCount
value: 1
objectReference: {fileID: 0}
+ - target: {fileID: 5121767864381798861, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
+ type: 3}
+ propertyPath: m_firstOverflowCharacterIndex
+ value: -1
+ objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_RootOrder
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_Pivot.x
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 7504817807149001553, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
- propertyPath: m_Pivot.y
- value: 0.5
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8827369151035309777, guid: 4ed6a17b8f9c64727bbb59e18c3022ac,
type: 3}
@@ -153,4 +154,7 @@ PrefabInstance:
value: MenuOption_Reverse
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4ed6a17b8f9c64727bbb59e18c3022ac, type: 3}
diff --git a/Assets/Objects/UI/prefabs/Utility/BaseButton.prefab b/Assets/Objects/UI/prefabs/Utility/BaseButton.prefab
index 996c1254a..c258c0beb 100644
--- a/Assets/Objects/UI/prefabs/Utility/BaseButton.prefab
+++ b/Assets/Objects/UI/prefabs/Utility/BaseButton.prefab
@@ -28,9 +28,9 @@ RectTransform:
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: 2656612146096480889}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -60,6 +60,8 @@ MonoBehaviour:
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: []
@@ -84,13 +86,12 @@ MonoBehaviour:
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: 0
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
- m_outlineColor:
- serializedVersion: 2
- rgba: 4278190080
m_fontSize: 36
m_fontSizeBase: 36
m_fontWeight: 400
@@ -98,6 +99,8 @@ MonoBehaviour:
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 16
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 256
m_textAlignment: 514
m_characterSpacing: 5
m_wordSpacing: 0
@@ -108,10 +111,8 @@ MonoBehaviour:
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
- m_firstOverflowCharacterIndex: -1
m_linkedTextComponent: {fileID: 0}
- m_isLinkedTextComponent: 0
- m_isTextTruncated: 0
+ parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
@@ -119,40 +120,18 @@ MonoBehaviour:
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
- m_ignoreRectMaskCulling: 0
- m_ignoreCulling: 1
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 1
- m_firstVisibleCharacter: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
- m_textInfo:
- textComponent: {fileID: 8568024210662664693}
- characterCount: 6
- spriteCount: 0
- spaceCount: 0
- wordCount: 1
- linkCount: 0
- lineCount: 1
- pageCount: 1
- materialCount: 1
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
- m_spriteAnimator: {fileID: 0}
m_hasFontAssetChanged: 0
- m_subTextObjects:
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
- - {fileID: 0}
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &1368152812284078247
@@ -184,10 +163,10 @@ RectTransform:
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: 4893208344589219966}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
@@ -217,6 +196,8 @@ MonoBehaviour:
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: []
@@ -244,6 +225,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
+ m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
@@ -274,6 +256,7 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 0}
+ m_TargetAssemblyTypeName:
m_MethodName:
m_Mode: 6
m_Arguments:
@@ -285,6 +268,7 @@ MonoBehaviour:
m_BoolArgument: 0
m_CallState: 2
- m_Target: {fileID: 0}
+ m_TargetAssemblyTypeName:
m_MethodName:
m_Mode: 6
m_Arguments:
diff --git a/Assets/Objects/UI/prefabs/Utility/BaseButton_Back.prefab b/Assets/Objects/UI/prefabs/Utility/BaseButton_Back.prefab
index ae5986e14..9cc9d3fd5 100644
--- a/Assets/Objects/UI/prefabs/Utility/BaseButton_Back.prefab
+++ b/Assets/Objects/UI/prefabs/Utility/BaseButton_Back.prefab
@@ -5,6 +5,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1368152812284078247, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
@@ -14,88 +15,88 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_RootOrder
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.w
+ propertyPath: m_AnchorMin.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_RootOrder
+ propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 1
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 1
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_Pivot.x
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_Pivot.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_firstOverflowCharacterIndex
- value: -1
+ propertyPath: m_text
+ value: Back
objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
@@ -104,13 +105,16 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_text
- value: Back
+ propertyPath: m_textInfo.characterCount
+ value: 4
objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 4
+ propertyPath: m_firstOverflowCharacterIndex
+ value: -1
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1, type: 3}
diff --git a/Assets/Objects/UI/prefabs/Utility/BaseButton_Finish.prefab b/Assets/Objects/UI/prefabs/Utility/BaseButton_Finish.prefab
index fce9fcad9..07be14195 100644
--- a/Assets/Objects/UI/prefabs/Utility/BaseButton_Finish.prefab
+++ b/Assets/Objects/UI/prefabs/Utility/BaseButton_Finish.prefab
@@ -5,6 +5,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1368152812284078247, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
@@ -14,107 +15,107 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.y
+ propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_RootOrder
- value: 0
+ propertyPath: m_SizeDelta.x
+ value: 200
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: -20
+ propertyPath: m_LocalPosition.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 20
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 200
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 1
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
+ propertyPath: m_AnchoredPosition.x
+ value: -20
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 1
+ propertyPath: m_AnchoredPosition.y
+ value: 20
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_Pivot.x
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_Pivot.y
+ propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8220169445217342336, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
@@ -122,6 +123,11 @@ PrefabInstance:
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 1
objectReference: {fileID: 0}
+ - target: {fileID: 8220169445217342336, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
+ type: 3}
+ propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+ value: 1
+ objectReference: {fileID: 0}
- target: {fileID: 8220169445217342336, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
@@ -132,11 +138,6 @@ PrefabInstance:
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: FinishMatch
objectReference: {fileID: 0}
- - target: {fileID: 8220169445217342336, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
- type: 3}
- propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
- value: 1
- objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
propertyPath: m_text
@@ -148,4 +149,7 @@ PrefabInstance:
value: 6
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1, type: 3}
diff --git a/Assets/Objects/UI/prefabs/Utility/BaseButton_Next.prefab b/Assets/Objects/UI/prefabs/Utility/BaseButton_Next.prefab
index 841b48288..e3e3e20cd 100644
--- a/Assets/Objects/UI/prefabs/Utility/BaseButton_Next.prefab
+++ b/Assets/Objects/UI/prefabs/Utility/BaseButton_Next.prefab
@@ -5,6 +5,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1368152812284078247, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
@@ -14,13 +15,13 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
@@ -29,34 +30,39 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_Pivot.x
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_Pivot.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
propertyPath: m_text
value: Next
objectReference: {fileID: 0}
+ - target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
+ type: 3}
+ propertyPath: m_textInfo.lineCount
+ value: 1
+ objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
propertyPath: m_textInfo.characterCount
@@ -67,10 +73,8 @@ PrefabInstance:
propertyPath: m_firstOverflowCharacterIndex
value: -1
objectReference: {fileID: 0}
- - target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
- type: 3}
- propertyPath: m_textInfo.lineCount
- value: 1
- objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1, type: 3}
diff --git a/Assets/Objects/UI/prefabs/Utility/BaseButton_Race.prefab b/Assets/Objects/UI/prefabs/Utility/BaseButton_Race.prefab
index 8f70cf2af..2c2a6a5e4 100644
--- a/Assets/Objects/UI/prefabs/Utility/BaseButton_Race.prefab
+++ b/Assets/Objects/UI/prefabs/Utility/BaseButton_Race.prefab
@@ -5,6 +5,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1368152812284078247, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
@@ -14,108 +15,108 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.x
- value: 0
+ propertyPath: m_Pivot.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_Pivot.y
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_RootOrder
- value: 0
+ propertyPath: m_SizeDelta.x
+ value: 200
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: -20
+ propertyPath: m_LocalPosition.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 0
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 200
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 1
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
+ propertyPath: m_AnchoredPosition.x
+ value: -20
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 1
+ propertyPath: m_AnchoredPosition.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_Pivot.x
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_Pivot.y
- value: 1
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
@@ -124,13 +125,16 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_textInfo.characterCount
- value: 4
+ propertyPath: m_textInfo.spaceCount
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_textInfo.spaceCount
- value: 0
+ propertyPath: m_textInfo.characterCount
+ value: 4
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1, type: 3}
diff --git a/Assets/Objects/UI/prefabs/Utility/BaseButton_Rematch.prefab b/Assets/Objects/UI/prefabs/Utility/BaseButton_Rematch.prefab
index 5423a5d50..2de1e2b41 100644
--- a/Assets/Objects/UI/prefabs/Utility/BaseButton_Rematch.prefab
+++ b/Assets/Objects/UI/prefabs/Utility/BaseButton_Rematch.prefab
@@ -5,6 +5,7 @@ PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1368152812284078247, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
@@ -14,107 +15,107 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.x
+ propertyPath: m_Pivot.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.y
+ propertyPath: m_Pivot.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalPosition.z
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.x
- value: -0
+ propertyPath: m_AnchorMax.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.y
- value: -0
+ propertyPath: m_AnchorMax.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.z
- value: -0
+ propertyPath: m_AnchorMin.x
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalRotation.w
- value: 1
+ propertyPath: m_AnchorMin.y
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_RootOrder
- value: 0
+ propertyPath: m_SizeDelta.x
+ value: 200
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.x
- value: 0
+ propertyPath: m_SizeDelta.y
+ value: 60
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.y
+ propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_LocalEulerAnglesHint.z
+ propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchoredPosition.x
- value: 20
+ propertyPath: m_LocalPosition.z
+ value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchoredPosition.y
- value: 20
+ propertyPath: m_LocalRotation.w
+ value: 1
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_SizeDelta.x
- value: 200
+ propertyPath: m_LocalRotation.x
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_SizeDelta.y
- value: 60
+ propertyPath: m_LocalRotation.y
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMin.x
- value: 0
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMin.y
- value: 0
+ propertyPath: m_AnchoredPosition.x
+ value: 20
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMax.x
- value: 0
+ propertyPath: m_AnchoredPosition.y
+ value: 20
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_AnchorMax.y
+ propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_Pivot.x
+ propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2656612146096480889, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
type: 3}
- propertyPath: m_Pivot.y
+ propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8568024210662664693, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1,
@@ -128,4 +129,7 @@ PrefabInstance:
value: 5
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 4d4a28cdbf9c64075b5b6cd9779ceed1, type: 3}
diff --git a/Assets/Objects/UI/prefabs/Utility/BenchMarkCanvas.prefab b/Assets/Objects/UI/prefabs/Utility/BenchMarkCanvas.prefab
index 4c67e9ba1..85595be2d 100644
--- a/Assets/Objects/UI/prefabs/Utility/BenchMarkCanvas.prefab
+++ b/Assets/Objects/UI/prefabs/Utility/BenchMarkCanvas.prefab
@@ -28,10 +28,10 @@ RectTransform:
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: 7075963741889142639}
m_Father: {fileID: 7075963740778909906}
- m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -105,11 +105,11 @@ RectTransform:
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: 7075963741021053144}
- {fileID: 7075963740509830242}
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
@@ -133,7 +133,9 @@ Canvas:
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
+ m_VertexColorAlwaysGammaSpace: 0
m_AdditionalShaderChannelsFlag: 0
+ m_UpdateRectTransformForStandalone: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
@@ -205,9 +207,9 @@ RectTransform:
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: 7075963741021053144}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
@@ -295,10 +297,10 @@ RectTransform:
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: 7075963740996157780}
m_Father: {fileID: 7075963740778909906}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
@@ -371,9 +373,9 @@ RectTransform:
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: 7075963740509830242}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
diff --git a/Assets/Objects/boats/Interceptor/Interceptor.fbx b/Assets/Objects/boats/Interceptor/Interceptor.fbx
deleted file mode 100644
index d5cfdc491..000000000
--- a/Assets/Objects/boats/Interceptor/Interceptor.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3f13e768201122675f0a90e888c377fd1bea716ad879e95069b8453e1a912342
-size 123376
diff --git a/Assets/Objects/boats/Interceptor/Interceptor.mat b/Assets/Objects/boats/Interceptor/Interceptor.mat
index 6e8fcc638..9c76d0d07 100644
--- a/Assets/Objects/boats/Interceptor/Interceptor.mat
+++ b/Assets/Objects/boats/Interceptor/Interceptor.mat
@@ -1,21 +1,38 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-6212392552803268508
+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: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Interceptor
m_Shader: {fileID: 4800000, guid: 7cc6d8245162d41df970ab2856566de3, type: 3}
- m_ShaderKeywords:
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 2200
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -87,6 +104,19 @@ Material:
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
- _Blend: 0
@@ -101,6 +131,8 @@ Material:
- _Metallic: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
+ - _QueueControl: 1
+ - _QueueOffset: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
@@ -116,3 +148,4 @@ Material:
- _Color2: {r: 1, g: 0, b: 0, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Assets/Objects/boats/Interceptor/_Interceptor.prefab b/Assets/Objects/boats/Interceptor/_Interceptor.prefab
index 66d5f2378..dc0bad98f 100644
--- a/Assets/Objects/boats/Interceptor/_Interceptor.prefab
+++ b/Assets/Objects/boats/Interceptor/_Interceptor.prefab
@@ -1,47 +1,412 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3125026613083320418
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3464085134263471136}
+ - component: {fileID: 2513851991194804495}
+ - component: {fileID: 1017375092362584558}
+ - component: {fileID: 2501009050752125051}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3464085134263471136
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3125026613083320418}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.13052616, y: 0, z: 0, w: 0.9914449}
+ m_LocalPosition: {x: 0, y: 5, z: -20}
+ m_LocalScale: {x: 0.5, y: 0.7101235, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 9080735299852188497}
+ m_LocalEulerAnglesHint: {x: 15, y: 0, z: 0}
+--- !u!20 &2513851991194804495
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3125026613083320418}
+ 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: 0
+ orthographic size: 5
+ m_Depth: -1
+ 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!81 &1017375092362584558
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3125026613083320418}
+ m_Enabled: 1
+--- !u!114 &2501009050752125051
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3125026613083320418}
+ 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!1 &3649823962821705476
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3424923805950555559}
+ - component: {fileID: 3524099766198684950}
+ - component: {fileID: 5506027710389389344}
+ - component: {fileID: 4134048856350382664}
+ m_Layer: 0
+ m_Name: Cube
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &3424923805950555559
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3649823962821705476}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: -10, y: -1, z: 0}
+ m_LocalScale: {x: 20, y: 2, z: 0.71428573}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 2444024786999144974}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180}
+--- !u!33 &3524099766198684950
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3649823962821705476}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &5506027710389389344
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3649823962821705476}
+ 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_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: 79950a27324579c439adfed4e0a9a44d, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &4134048856350382664
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3649823962821705476}
+ 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: 0
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
+--- !u!1 &8032142450470698577
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2444024786999144974}
+ - component: {fileID: 1390154897689948173}
+ - component: {fileID: 7914160230827127930}
+ - component: {fileID: 4639394316942058709}
+ m_Layer: 0
+ m_Name: Cube (1)
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!4 &2444024786999144974
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8032142450470698577}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0, y: -0, z: 1, w: 0}
+ m_LocalPosition: {x: 0, y: 1.36, z: 0}
+ m_LocalScale: {x: 0.1, y: 0.6, z: 2}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 3424923805950555559}
+ m_Father: {fileID: 9080735299852188497}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180}
+--- !u!33 &1390154897689948173
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8032142450470698577}
+ m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!23 &7914160230827127930
+MeshRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8032142450470698577}
+ 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_RenderingLayerMask: 1
+ m_RendererPriority: 0
+ m_Materials:
+ - {fileID: 2100000, guid: eb3527794c06cce40b3f411a7d3ee9ff, 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_SortingLayerID: 0
+ m_SortingLayer: 0
+ m_SortingOrder: 0
+ m_AdditionalVertexStreams: {fileID: 0}
+--- !u!65 &4639394316942058709
+BoxCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8032142450470698577}
+ 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: 0
+ serializedVersion: 3
+ m_Size: {x: 1, y: 1, z: 1}
+ m_Center: {x: 0, y: 0, z: 0}
--- !u!1001 &9085269829827428123
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
+ serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: 1553288845585282, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
propertyPath: m_Name
value: _Interceptor
objectReference: {fileID: 0}
+ - target: {fileID: 4154958958717284, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 2
+ objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
- propertyPath: m_LocalPosition.x
+ propertyPath: m_RootOrder
value: 0
objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
- propertyPath: m_LocalPosition.y
- value: 0
+ propertyPath: m_LocalScale.x
+ value: 2.2
objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
- propertyPath: m_LocalPosition.z
- value: 0
+ propertyPath: m_LocalScale.y
+ value: 3
objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
- propertyPath: m_LocalRotation.x
- value: 0
+ propertyPath: m_LocalScale.z
+ value: 1.2
objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
- propertyPath: m_LocalRotation.y
- value: 0
+ propertyPath: m_LocalPosition.x
+ value: -58.1
objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
- propertyPath: m_LocalRotation.z
- value: 0
+ propertyPath: m_LocalPosition.y
+ value: 0.6000004
+ objectReference: {fileID: 0}
+ - target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 81.4
objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
propertyPath: m_LocalRotation.w
- value: 1
+ value: -0.0005531598
objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
- propertyPath: m_RootOrder
- value: 0
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.9999999
+ objectReference: {fileID: 0}
+ - target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
@@ -49,12 +414,35 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
- value: 0
+ value: 180.063
objectReference: {fileID: 0}
- target: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
+ - target: {fileID: 4566539937980892, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 4603238648617514, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 23139903168929634, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 7dc5b4500b2ab6446908dcdad6abf2de, type: 2}
+ - target: {fileID: 54710712322113256, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_Drag
+ value: 0.1
+ objectReference: {fileID: 0}
+ - target: {fileID: 54710712322113256, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_Mass
+ value: 2500
+ objectReference: {fileID: 0}
- target: {fileID: 114135153223430406, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
type: 3}
propertyPath: wakes.Array.size
@@ -65,6 +453,11 @@ PrefabInstance:
propertyPath: wakes.Array.data[0].origin.x
value: 0.47
objectReference: {fileID: 0}
+ - target: {fileID: 114135153223430406, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: wakes.Array.data[0].origin.y
+ value: -0.12
+ objectReference: {fileID: 0}
- target: {fileID: 114135153223430406, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
type: 3}
propertyPath: wakes.Array.data[0].origin.z
@@ -80,10 +473,222 @@ PrefabInstance:
propertyPath: wakes.Array.data[1].origin.z
value: -3.55
objectReference: {fileID: 0}
- - target: {fileID: 114135153223430406, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ - target: {fileID: 199152748015587266, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
type: 3}
- propertyPath: wakes.Array.data[0].origin.y
- value: -0.12
+ propertyPath: m_Materials.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 199225191338268698, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_Materials.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 199341962634037936, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_Materials.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 199393572592775896, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_Materials.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 199628764852399946, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_Materials.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 199879863142729572, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_Materials.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 199967527911923330, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_Materials.Array.size
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 199967527911923330, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 92e3a622aaf5e4fadab4253ad1853184, type: 2}
+ - target: {fileID: 1857749394586354482, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: -0.05
+ objectReference: {fileID: 0}
+ - target: {fileID: 2901399632790975270, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 2901399632790975270, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0.000000078739085
+ objectReference: {fileID: 0}
+ - target: {fileID: 2901399632790975270, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.5666667
+ objectReference: {fileID: 0}
+ - target: {fileID: 2901399632790975270, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -2.5000017
+ objectReference: {fileID: 0}
+ - target: {fileID: 2901399632790975270, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9934388
+ objectReference: {fileID: 0}
+ - target: {fileID: 2901399632790975270, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0.11436519
+ objectReference: {fileID: 0}
+ - target: {fileID: 2901399632790975270, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.00000002564023
+ objectReference: {fileID: 0}
+ - target: {fileID: 2901399632790975270, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0.0000000029517164
+ objectReference: {fileID: 0}
+ - target: {fileID: 4301521246144889673, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: horsePower
+ value: 200
+ objectReference: {fileID: 0}
+ - target: {fileID: 4399986893398198514, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ propertyPath: m_LocalScale.z
+ value: 2
objectReference: {fileID: 0}
m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects:
+ - targetCorrespondingSourceObject: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 3464085134263471136}
+ - targetCorrespondingSourceObject: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 2444024786999144974}
+ m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 1553288845585282, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 38375215458064404}
+ - targetCorrespondingSourceObject: {fileID: 1553288845585282, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 2560287575307401612}
+ - targetCorrespondingSourceObject: {fileID: 1553288845585282, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 7411346295538081491}
m_SourcePrefab: {fileID: 100100000, guid: fc3ffb83d6eafb1489a5b23bc82d25b6, type: 3}
+--- !u!4 &9080735299852188497 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4534809148113994, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ m_PrefabInstance: {fileID: 9085269829827428123}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1 &9083998436884223129 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 1553288845585282, guid: fc3ffb83d6eafb1489a5b23bc82d25b6,
+ type: 3}
+ m_PrefabInstance: {fileID: 9085269829827428123}
+ m_PrefabAsset: {fileID: 0}
+--- !u!114 &38375215458064404
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9083998436884223129}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5d1c4e0b1822b495aa52bc52839ecb30, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_BrainParameters:
+ VectorObservationSize: 23
+ NumStackedVectorObservations: 1
+ m_ActionSpec:
+ m_NumContinuousActions: 2
+ BranchSizes:
+ VectorActionSize: 02000000
+ VectorActionDescriptions: []
+ VectorActionSpaceType: 1
+ hasUpgradedBrainParametersWithActionSpec: 1
+ m_Model: {fileID: 0}
+ m_InferenceDevice: 0
+ m_BehaviorType: 0
+ m_BehaviorName: Defence
+ TeamId: 0
+ m_UseChildSensors: 1
+ m_UseChildActuators: 1
+ m_DeterministicInference: 0
+ m_ObservableAttributeHandling: 0
+--- !u!114 &2560287575307401612
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9083998436884223129}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 92a15c9c448152e4eb10928b63837ccb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ agentParameters:
+ maxStep: 0
+ hasUpgradedFromAgentParameters: 1
+ MaxStep: 200
+ _engine: {fileID: 0}
+ enemyShips:
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ - {fileID: 0}
+ maxEnemyCount: 5
+ partnerAgent: {fileID: 0}
+ motherShip: {fileID: 0}
+ motherShipTag: MotherShip
+ webObject: {fileID: 0}
+ maxLinearVelocity: 20
+ maxAngularVelocity: 90
+ velocityControlGain: 1
+ angularVelocityControlGain: 1
+ maxLinearAcceleration: 5
+ maxAngularAcceleration: 45
+ baseThrottle: 0.5
+ minThrottle: 0.5
+ steeringSensitivity: 0.3
+ inputSmoothing: 0.2
+ showRaycasts: 1
+ enableDebugLog: 1
+ _totalReward: 0
+ _lastStepReward: 0
+--- !u!114 &7411346295538081491
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9083998436884223129}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3a5c9d521e5ef4759a8246a07d52221e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ DecisionPeriod: 5
+ TakeActionsBetweenDecisions: 1
diff --git a/Assets/Objects/boats/renegade/Materials.meta b/Assets/Objects/boats/renegade/Materials.meta
new file mode 100644
index 000000000..4abadf550
--- /dev/null
+++ b/Assets/Objects/boats/renegade/Materials.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7cce67f2f6497d746b91ca4e91545f68
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Objects/boats/renegade/Materials/AlbedoAO.mat b/Assets/Objects/boats/renegade/Materials/AlbedoAO.mat
new file mode 100644
index 000000000..12ab131c4
--- /dev/null
+++ b/Assets/Objects/boats/renegade/Materials/AlbedoAO.mat
@@ -0,0 +1,70 @@
+%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: AlbedoAO
+ m_Shader: {fileID: 4800000, guid: 7cc6d8245162d41df970ab2856566de3, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 2
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _BumpMap:
+ m_Texture: {fileID: 2800000, guid: a8c39540c3f76fa4d931108db103074f, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MRLL:
+ m_Texture: {fileID: 2800000, guid: dec66e24ca0bddf41bc6bacbbf657b04, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: aac90f3d81d202b4f8a9d2a4e00fa9ff, type: 3}
+ 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:
+ - _QueueControl: 0
+ - _QueueOffset: 0
+ m_Colors:
+ - _Color1: {r: 0.08669997, g: 0.13133055, b: 0.33999997, a: 0}
+ - _Color2: {r: 0.766, g: 0.766, b: 0.766, a: 0}
+ m_BuildTextureStacks: []
+--- !u!114 &7411976783594163066
+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
diff --git a/Assets/Objects/boats/renegade/Materials/AlbedoAO.mat.meta b/Assets/Objects/boats/renegade/Materials/AlbedoAO.mat.meta
new file mode 100644
index 000000000..6c9a77c89
--- /dev/null
+++ b/Assets/Objects/boats/renegade/Materials/AlbedoAO.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 239175a5b28666e4ca942de6a41cadec
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Objects/boats/renegade/Renegade.fbx b/Assets/Objects/boats/renegade/Renegade.fbx
deleted file mode 100644
index 2daa5d1f9..000000000
--- a/Assets/Objects/boats/renegade/Renegade.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:327e98abdcecc9db12f0a4873174d6fa6c4289385a6b01a8ba4a9f4d328f3e0d
-size 94496
diff --git a/Assets/Objects/boats/renegade/Renegade.mat b/Assets/Objects/boats/renegade/Renegade.mat
index c88db09b9..13e83ac80 100644
--- a/Assets/Objects/boats/renegade/Renegade.mat
+++ b/Assets/Objects/boats/renegade/Renegade.mat
@@ -2,20 +2,24 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Renegade
m_Shader: {fileID: 4800000, guid: 7cc6d8245162d41df970ab2856566de3, type: 3}
- m_ShaderKeywords:
+ 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:
@@ -51,6 +55,19 @@ Material:
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
- _Blend: 0
@@ -64,6 +81,7 @@ Material:
- _GlossyReflections: 0
- _Metallic: 0
- _OcclusionStrength: 1
+ - _QueueControl: 0
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.5
@@ -80,6 +98,7 @@ Material:
- _Color2: {r: 0.12388753, g: 0.9056604, b: 0.1416862, a: 0}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
--- !u!114 &6154660042868129058
MonoBehaviour:
m_ObjectHideFlags: 11
@@ -92,4 +111,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 1
+ version: 7
diff --git a/Assets/Objects/environment/Cliffs/Materials/Env_Cliff_Full_01.mat b/Assets/Objects/environment/Cliffs/Materials/Env_Cliff_Full_01.mat
index bb5decaf4..dc21ad8a4 100644
--- a/Assets/Objects/environment/Cliffs/Materials/Env_Cliff_Full_01.mat
+++ b/Assets/Objects/environment/Cliffs/Materials/Env_Cliff_Full_01.mat
@@ -12,23 +12,28 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 1
+ version: 7
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Env_Cliff_Full_01
m_Shader: {fileID: 4800000, guid: 7cd247c7cbda54323b0e395ea419af3d, type: 3}
- m_ShaderKeywords: _NORMALMAP
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords:
+ - _NORMALMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -60,6 +65,10 @@ Material:
m_Texture: {fileID: 2800000, guid: 0732d346e038a499bacca628b5dc8f4a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _SampleTexture2D_a490b3241735d68e9ee2d1f1bbfed8dc_Texture_1_Texture2D:
+ m_Texture: {fileID: 2800000, guid: 0732d346e038a499bacca628b5dc8f4a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -72,10 +81,13 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- Vector1_6E11FCEA: 0.8
- Vector1_8B35DE98: 65
- Vector1_90E376AD: 0.5
- Vector1_A492C01C: 10.3
+ - _QueueControl: 0
+ - _QueueOffset: 0
m_Colors: []
m_BuildTextureStacks: []
diff --git a/Assets/Objects/environment/Cliffs/Materials/Env_Cliffs.mat b/Assets/Objects/environment/Cliffs/Materials/Env_Cliffs.mat
index 336b127c2..831c463f1 100644
--- a/Assets/Objects/environment/Cliffs/Materials/Env_Cliffs.mat
+++ b/Assets/Objects/environment/Cliffs/Materials/Env_Cliffs.mat
@@ -12,23 +12,28 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 1
+ version: 7
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Env_Cliffs
m_Shader: {fileID: 4800000, guid: 7cd247c7cbda54323b0e395ea419af3d, type: 3}
- m_ShaderKeywords: _NORMALMAP
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords:
+ - _NORMALMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -60,6 +65,10 @@ Material:
m_Texture: {fileID: 2800000, guid: 0732d346e038a499bacca628b5dc8f4a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _SampleTexture2D_a490b3241735d68e9ee2d1f1bbfed8dc_Texture_1_Texture2D:
+ m_Texture: {fileID: 2800000, guid: 0732d346e038a499bacca628b5dc8f4a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -72,10 +81,13 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- Vector1_6E11FCEA: 0.8
- Vector1_8B35DE98: 65
- Vector1_90E376AD: 0.5
- Vector1_A492C01C: 10.3
+ - _QueueControl: 0
+ - _QueueOffset: 0
m_Colors: []
m_BuildTextureStacks: []
diff --git a/Assets/Objects/environment/Cliffs/Materials/Env_HeroCave.mat b/Assets/Objects/environment/Cliffs/Materials/Env_HeroCave.mat
index d83e9f457..993d0b296 100644
--- a/Assets/Objects/environment/Cliffs/Materials/Env_HeroCave.mat
+++ b/Assets/Objects/environment/Cliffs/Materials/Env_HeroCave.mat
@@ -2,20 +2,27 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Env_HeroCave
m_Shader: {fileID: 4800000, guid: 7cd247c7cbda54323b0e395ea419af3d, type: 3}
- m_ShaderKeywords: _GLOSSINESS_FROM_BASE_ALPHA _NORMALMAP _SPECULAR_COLOR
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords:
+ - _GLOSSINESS_FROM_BASE_ALPHA
+ - _NORMALMAP
+ - _SPECULAR_COLOR
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -47,6 +54,10 @@ Material:
m_Texture: {fileID: 2800000, guid: 0732d346e038a499bacca628b5dc8f4a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _SampleTexture2D_a490b3241735d68e9ee2d1f1bbfed8dc_Texture_1_Texture2D:
+ m_Texture: {fileID: 2800000, guid: 0732d346e038a499bacca628b5dc8f4a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -59,10 +70,26 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- Vector1_6E11FCEA: 0.8
- Vector1_8B35DE98: 65
- Vector1_90E376AD: 0.5
- Vector1_A492C01C: 10.3
+ - _QueueControl: 0
+ - _QueueOffset: 0
m_Colors: []
m_BuildTextureStacks: []
+--- !u!114 &2634058345858685300
+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
diff --git a/Assets/Objects/environment/Cliffs/Materials/Env_HeroLarge.mat b/Assets/Objects/environment/Cliffs/Materials/Env_HeroLarge.mat
index 59d1bad16..469b14f20 100644
--- a/Assets/Objects/environment/Cliffs/Materials/Env_HeroLarge.mat
+++ b/Assets/Objects/environment/Cliffs/Materials/Env_HeroLarge.mat
@@ -2,20 +2,24 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Env_HeroLarge
m_Shader: {fileID: 4800000, guid: 7cd247c7cbda54323b0e395ea419af3d, type: 3}
- m_ShaderKeywords:
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -47,6 +51,10 @@ Material:
m_Texture: {fileID: 2800000, guid: 0732d346e038a499bacca628b5dc8f4a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _SampleTexture2D_a490b3241735d68e9ee2d1f1bbfed8dc_Texture_1_Texture2D:
+ m_Texture: {fileID: 2800000, guid: 0732d346e038a499bacca628b5dc8f4a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -59,10 +67,26 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- Vector1_6E11FCEA: 0.8
- Vector1_8B35DE98: 65
- Vector1_90E376AD: 0.5
- Vector1_A492C01C: 10.3
+ - _QueueControl: 0
+ - _QueueOffset: 0
m_Colors: []
m_BuildTextureStacks: []
+--- !u!114 &2209386903114306077
+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
diff --git a/Assets/Objects/environment/Cliffs/Materials/Env_Rocks.mat b/Assets/Objects/environment/Cliffs/Materials/Env_Rocks.mat
index 578f0549b..be8354af6 100644
--- a/Assets/Objects/environment/Cliffs/Materials/Env_Rocks.mat
+++ b/Assets/Objects/environment/Cliffs/Materials/Env_Rocks.mat
@@ -1,21 +1,38 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-7029662659645193583
+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: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Env_Rocks
m_Shader: {fileID: 4800000, guid: 7cd247c7cbda54323b0e395ea419af3d, type: 3}
- m_ShaderKeywords:
+ 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:
@@ -47,6 +64,10 @@ Material:
m_Texture: {fileID: 2800000, guid: 0732d346e038a499bacca628b5dc8f4a, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _SampleTexture2D_a490b3241735d68e9ee2d1f1bbfed8dc_Texture_1_Texture2D:
+ m_Texture: {fileID: 2800000, guid: 0732d346e038a499bacca628b5dc8f4a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- unity_Lightmaps:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@@ -59,10 +80,13 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- Vector1_6E11FCEA: 0.8
- Vector1_8B35DE98: 65
- Vector1_90E376AD: 0.5
- Vector1_A492C01C: 10.3
+ - _QueueControl: 0
+ - _QueueOffset: 0
m_Colors: []
m_BuildTextureStacks: []
diff --git a/Assets/Objects/environment/Cliffs/Meshes/Env_Cave.fbx b/Assets/Objects/environment/Cliffs/Meshes/Env_Cave.fbx
deleted file mode 100644
index e32124035..000000000
--- a/Assets/Objects/environment/Cliffs/Meshes/Env_Cave.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:f0edf970533c42d0cbaabd56895ee170945f9ea27c1404f32920563af0356b3a
-size 1881856
diff --git a/Assets/Objects/environment/Cliffs/Meshes/Env_Cliff_Full_01.fbx b/Assets/Objects/environment/Cliffs/Meshes/Env_Cliff_Full_01.fbx
deleted file mode 100644
index 8a9ba95f1..000000000
--- a/Assets/Objects/environment/Cliffs/Meshes/Env_Cliff_Full_01.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:de9df6fd437099496fff63e5efe2c730ae99e767b254b2d7dd6a05270263ce60
-size 595808
diff --git a/Assets/Objects/environment/Cliffs/Meshes/Env_Cliffs.fbx b/Assets/Objects/environment/Cliffs/Meshes/Env_Cliffs.fbx
deleted file mode 100644
index 20c8ceeaf..000000000
--- a/Assets/Objects/environment/Cliffs/Meshes/Env_Cliffs.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:8151dc2dc860bc2aae433a92e3b66c036a7590b0d7de9e581a82122c1e94039b
-size 2119280
diff --git a/Assets/Objects/environment/Cliffs/Meshes/Env_Hero_Mountain.fbx b/Assets/Objects/environment/Cliffs/Meshes/Env_Hero_Mountain.fbx
deleted file mode 100644
index 80f9bc6c2..000000000
--- a/Assets/Objects/environment/Cliffs/Meshes/Env_Hero_Mountain.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:706a5be49d651c92d29e7abac1a53a3d70e9ed4f2f73969261f595a26e001bdb
-size 775872
diff --git a/Assets/Objects/environment/Cliffs/Meshes/Env_Hero_Tower.fbx b/Assets/Objects/environment/Cliffs/Meshes/Env_Hero_Tower.fbx
deleted file mode 100644
index ae1262144..000000000
--- a/Assets/Objects/environment/Cliffs/Meshes/Env_Hero_Tower.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:12645878f3f623b65810da5d6475e3f114be53b4aec9a056f17e606689e75d6b
-size 772192
diff --git a/Assets/Objects/environment/Cliffs/Meshes/Env_Rocks.fbx b/Assets/Objects/environment/Cliffs/Meshes/Env_Rocks.fbx
deleted file mode 100644
index 9bfe433f5..000000000
--- a/Assets/Objects/environment/Cliffs/Meshes/Env_Rocks.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:0343b4f0d1c9df24d7bce27790523340eb3e3d20e3fe2f6156b5311a86116d17
-size 1854448
diff --git a/Assets/Objects/environment/Clouds/CloudLayer.fbx b/Assets/Objects/environment/Clouds/CloudLayer.fbx
deleted file mode 100644
index 44c0a9ce5..000000000
--- a/Assets/Objects/environment/Clouds/CloudLayer.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cd9c0a8ec74f95c34975048bfb6e42a0e97441ae6522123f2588a8b64ddb6ab6
-size 63696
diff --git a/Assets/Objects/environment/Clouds/CloudLayer.mat b/Assets/Objects/environment/Clouds/CloudLayer.mat
index 9ff46ef41..870cc032b 100644
--- a/Assets/Objects/environment/Clouds/CloudLayer.mat
+++ b/Assets/Objects/environment/Clouds/CloudLayer.mat
@@ -2,7 +2,7 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -10,14 +10,17 @@ Material:
m_Name: CloudLayer
m_Shader: {fileID: -6465566751694194690, guid: 74509fb8cc4f14b4c847689e4ddd65ba,
type: 3}
- m_ShaderKeywords:
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3300
stringTagMap: {}
- disabledShaderPasses:
- - SHADOWCASTER
+ disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -81,6 +84,7 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- Vector1_5938df77fca14c0db6439fcfee84628c: 0
- _AlphaClip: 0
@@ -100,6 +104,7 @@ Material:
- _Metallic: 0.547
- _OcclusionStrength: 1
- _Parallax: 0.005
+ - _QueueControl: 1
- _QueueOffset: 0
- _ReceiveShadows: 1
- _Smoothness: 0.635
@@ -127,4 +132,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 4
+ version: 7
diff --git a/Assets/Objects/environment/Clouds/Clouds.FBDA.tif.meta b/Assets/Objects/environment/Clouds/Clouds.FBDA.tif.meta
index 3c3835b72..a1f159dab 100644
--- a/Assets/Objects/environment/Clouds/Clouds.FBDA.tif.meta
+++ b/Assets/Objects/environment/Clouds/Clouds.FBDA.tif.meta
@@ -1470,7 +1470,7 @@ TextureImporter:
213: -6920707464630794948
second: Clouds.FBDA_243
externalObjects: {}
- serializedVersion: 11
+ serializedVersion: 13
mipmaps:
mipMapMode: 1
enableMipMap: 1
@@ -1487,10 +1487,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
+ flipGreenChannel: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
+ ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -1529,6 +1531,8 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 1
applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
@@ -1540,6 +1544,7 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
@@ -1552,6 +1557,7 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
@@ -1564,6 +1570,7 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
@@ -1576,6 +1583,7 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
@@ -1588,6 +1596,7 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
@@ -1600,6 +1609,7 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
@@ -1612,6 +1622,7 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
@@ -1648,7 +1659,7 @@ TextureImporter:
tessellationDetail: 0.0001
bones: []
spriteID: 1688a34ef7c56efb0800000000000000
- internalID: -4618902663462221727
+ internalID: 7036826218055600575
vertices: []
indices:
edges: []
@@ -1682,7 +1693,7 @@ TextureImporter:
tessellationDetail: 0
bones: []
spriteID: 720cbdff5139e2140800000000000000
- internalID: 4696853184090193959
+ internalID: 5267090216612187275
vertices: []
indices:
edges: []
@@ -1716,7 +1727,7 @@ TextureImporter:
tessellationDetail: 0
bones: []
spriteID: a87f43b24810a5c80800000000000000
- internalID: -8333346493323479158
+ internalID: -2028122982951741611
vertices: []
indices:
edges: []
@@ -1752,7 +1763,7 @@ TextureImporter:
tessellationDetail: 0
bones: []
spriteID: 00de54e899c740f90800000000000000
- internalID: -6988323722813379328
+ internalID: -5693033590976618241
vertices: []
indices:
edges: []
@@ -1790,7 +1801,7 @@ TextureImporter:
tessellationDetail: 0
bones: []
spriteID: 0bd78d93dee62d710800000000000000
- internalID: 1716556373138374064
+ internalID: -6011895722572053554
vertices: []
indices:
edges: []
@@ -1823,7 +1834,7 @@ TextureImporter:
tessellationDetail: 0
bones: []
spriteID: 01e7d3473ea687060800000000000000
- internalID: 6951423549986668048
+ internalID: -2009903931605109925
vertices: []
indices:
edges: []
@@ -1855,7 +1866,7 @@ TextureImporter:
tessellationDetail: 0
bones: []
spriteID: 647f5b43101b8f470800000000000000
- internalID: 8428681321361307462
+ internalID: 1525974591805142018
vertices: []
indices:
edges: []
@@ -1889,7 +1900,7 @@ TextureImporter:
tessellationDetail: 0.1
bones: []
spriteID: a54da6d930639a420800000000000000
- internalID: 2641702045583332442
+ internalID: 2718705153219231221
vertices: []
indices:
edges: []
@@ -1904,9 +1915,17 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
- spritePackingTag:
+ nameFileIdTable:
+ Clouds.FBDA_0: 7036826218055600575
+ Clouds.FBDA_1: 5267090216612187275
+ Clouds.FBDA_2: -2028122982951741611
+ Clouds.FBDA_3: -5693033590976618241
+ Clouds.FBDA_4: -6011895722572053554
+ Clouds.FBDA_5: -2009903931605109925
+ Clouds.FBDA_6: 1525974591805142018
+ Clouds.FBDA_7: 2718705153219231221
+ mipmapLimitGroupName:
pSDRemoveMatte: 0
- pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Objects/environment/Clouds/Clouds.mat b/Assets/Objects/environment/Clouds/Clouds.mat
index 232e1c88d..e947ec432 100644
--- a/Assets/Objects/environment/Clouds/Clouds.mat
+++ b/Assets/Objects/environment/Clouds/Clouds.mat
@@ -2,7 +2,7 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -10,14 +10,21 @@ Material:
m_Name: Clouds
m_Shader: {fileID: -6465566751694194690, guid: db0b334ed7edc2149a5c784f34eefeba,
type: 3}
- m_ShaderKeywords: BOOLEAN_3A4FA4CB1FE54F0D8BDC5D502F6ADCB0_ON BOOLEAN_68600FB702FC441CA4969E5B54503936_ON
- BOOLEAN_9A9F210EF4D44680B8F0CB7ACD99DFBB_ON ETC1_EXTERNAL_ALPHA
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - BOOLEAN_9A9F210EF4D44680B8F0CB7ACD99DFBB_ON
+ m_InvalidKeywords:
+ - BOOLEAN_3A4FA4CB1FE54F0D8BDC5D502F6ADCB0_ON
+ - BOOLEAN_68600FB702FC441CA4969E5B54503936_ON
+ - ETC1_EXTERNAL_ALPHA
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 3600
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -37,6 +44,10 @@ Material:
m_Texture: {fileID: 2800000, guid: 7247454f970266b4c8d99e1f01e15296, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ - _Texture2DAsset_36aff2641eb842bfb8ac1025d9bb12f9_Out_0_Texture2D:
+ m_Texture: {fileID: 2800000, guid: 7247454f970266b4c8d99e1f01e15296, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
- _Texture2DAsset_bd2a7217cfc44a0095b8acce83da0833_Out_0:
m_Texture: {fileID: 2800000, guid: 7247454f970266b4c8d99e1f01e15296, type: 3}
m_Scale: {x: 1, y: 1}
@@ -53,6 +64,7 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
+ m_Ints: []
m_Floats:
- BOOLEAN_12063517206649E192703C709593BEE9: 0
- BOOLEAN_3A4FA4CB1FE54F0D8BDC5D502F6ADCB0: 1
@@ -67,8 +79,23 @@ Material:
- Vector1_2d1f70e8efb04843b1f8184ae06925e0: 119.23
- Vector1_33982692: 150
- Vector1_5f4b185241524942830132fc71554a33: 1
+ - _QueueControl: 1
+ - _QueueOffset: 0
m_Colors:
- Color_7eff2e7fc27440719d0a871a39dabdd3: {r: 1, g: 1, b: 1, a: 0}
- Vector2_65050940ec244ae3bf42db206c2dccca: {r: 0, g: 50, b: 0, a: 0}
- _Color: {r: 0, g: 0, b: 0, a: 0}
m_BuildTextureStacks: []
+--- !u!114 &5120713988704982054
+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
diff --git a/Assets/Objects/environment/Trees/Materials/Bushes.mat b/Assets/Objects/environment/Trees/Materials/Bushes.mat
index f0a760851..fdbd6f85f 100644
--- a/Assets/Objects/environment/Trees/Materials/Bushes.mat
+++ b/Assets/Objects/environment/Trees/Materials/Bushes.mat
@@ -1,8 +1,21 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-9206910958661453605
+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: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -10,14 +23,23 @@ Material:
m_Name: Bushes
m_Shader: {fileID: -6465566751694194690, guid: 4003ffa965d444d209561b52e55c61fc,
type: 3}
- m_ShaderKeywords: BOOLEAN_5C6B42CA_ON BOOLEAN_D0D03BFD_ON VERTEX_ANIMATION_ON _CORRECTNORMALS
- _NORMALMAP _VERTEXANIMATION
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - BOOLEAN_5C6B42CA_ON
+ m_InvalidKeywords:
+ - BOOLEAN_D0D03BFD_ON
+ - VERTEX_ANIMATION_ON
+ - _CORRECTNORMALS
+ - _NORMALMAP
+ - _VERTEXANIMATION
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -73,6 +95,19 @@ Material:
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:
- BOOLEAN_5C6B42CA: 1
- BOOLEAN_7021FEFA: 0
@@ -99,6 +134,8 @@ Material:
- _Mode: 1
- _OcclusionStrength: 1
- _Parallax: 0.02
+ - _QueueControl: 0
+ - _QueueOffset: 0
- _ReceiveShadows: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
@@ -114,3 +151,4 @@ Material:
- _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: []
diff --git a/Assets/Objects/environment/Trees/Materials/Trees.mat b/Assets/Objects/environment/Trees/Materials/Trees.mat
index f49d7ca14..82f18256c 100644
--- a/Assets/Objects/environment/Trees/Materials/Trees.mat
+++ b/Assets/Objects/environment/Trees/Materials/Trees.mat
@@ -1,8 +1,21 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
+--- !u!114 &-1779779989978355145
+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: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -10,14 +23,23 @@ Material:
m_Name: Trees
m_Shader: {fileID: -6465566751694194690, guid: 4003ffa965d444d209561b52e55c61fc,
type: 3}
- m_ShaderKeywords: BOOLEAN_5C6B42CA_ON BOOLEAN_D0D03BFD_ON VERTEX_ANIMATION_ON _CORRECTNORMALS
- _NORMALMAP _VERTEXANIMATION
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - BOOLEAN_5C6B42CA_ON
+ m_InvalidKeywords:
+ - BOOLEAN_D0D03BFD_ON
+ - VERTEX_ANIMATION_ON
+ - _CORRECTNORMALS
+ - _NORMALMAP
+ - _VERTEXANIMATION
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -73,6 +95,19 @@ Material:
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:
- BOOLEAN_5C6B42CA: 1
- BOOLEAN_7021FEFA: 0
@@ -99,6 +134,8 @@ Material:
- _Mode: 1
- _OcclusionStrength: 1
- _Parallax: 0.02
+ - _QueueControl: 0
+ - _QueueOffset: 0
- _ReceiveShadows: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
@@ -109,7 +146,9 @@ Material:
- _WorkflowMode: 1
- _ZWrite: 0
m_Colors:
+ - Color_C30C7CA3: {r: 1, g: 1, b: 1, a: 0}
- WindDirection: {r: 0.4, g: 0.4, b: 0, a: 0}
- _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: []
diff --git a/Assets/Objects/environment/Trees/Materials/Trees_billboards.mat b/Assets/Objects/environment/Trees/Materials/Trees_billboards.mat
index cdc1888c5..2703cde2a 100644
--- a/Assets/Objects/environment/Trees/Materials/Trees_billboards.mat
+++ b/Assets/Objects/environment/Trees/Materials/Trees_billboards.mat
@@ -2,7 +2,7 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -10,14 +10,22 @@ Material:
m_Name: Trees_billboards
m_Shader: {fileID: -6465566751694194690, guid: 4003ffa965d444d209561b52e55c61fc,
type: 3}
- m_ShaderKeywords: BOOLEAN_7021FEFA_ON BOOLEAN_D0D03BFD_ON _ALPHATEST_ON _CORRECTNORMALS
- _NORMALMAP _OCCLUSIONMAP
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - BOOLEAN_7021FEFA_ON
+ m_InvalidKeywords:
+ - BOOLEAN_D0D03BFD_ON
+ - _CORRECTNORMALS
+ - _NORMALMAP
+ - _OCCLUSIONMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -29,8 +37,38 @@ Material:
m_Texture: {fileID: 2800000, guid: cb4e6d4d6255441508cbdd9c3d4f70b9, type: 3}
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:
- BOOLEAN_5C6B42CA: 0
- BOOLEAN_7021FEFA: 1
- Vector1_19FBDA45: 0.5
- m_Colors: []
+ - _QueueControl: 0
+ - _QueueOffset: 0
+ m_Colors:
+ - Color_C30C7CA3: {r: 1, g: 1, b: 1, a: 0}
+ m_BuildTextureStacks: []
+--- !u!114 &3721902895728709073
+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
diff --git a/Assets/Objects/environment/Trees/Meshes/Bush_Large_01.fbx b/Assets/Objects/environment/Trees/Meshes/Bush_Large_01.fbx
deleted file mode 100644
index 0d40cea2b..000000000
--- a/Assets/Objects/environment/Trees/Meshes/Bush_Large_01.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:99b8d2f30db92d9f1503db36666624f02e76d5bb19855080fe9c88976484a335
-size 38640
diff --git a/Assets/Objects/environment/Trees/Meshes/PalmB_01.fbx b/Assets/Objects/environment/Trees/Meshes/PalmB_01.fbx
deleted file mode 100644
index e52dd1854..000000000
--- a/Assets/Objects/environment/Trees/Meshes/PalmB_01.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:565b0f7189381bd3d92da24fb61ac3c9a0d636b517243e8a6345c3888a40dc42
-size 70832
diff --git a/Assets/Objects/environment/Trees/Meshes/PalmB_02.fbx b/Assets/Objects/environment/Trees/Meshes/PalmB_02.fbx
deleted file mode 100644
index 3cec17c87..000000000
--- a/Assets/Objects/environment/Trees/Meshes/PalmB_02.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:3ac4e3995f5b6e6572e8ead7f29b921e97319c9a3fd03933a30dbea4ffed0cbb
-size 73280
diff --git a/Assets/Objects/environment/Trees/Meshes/Palm_01.fbx b/Assets/Objects/environment/Trees/Meshes/Palm_01.fbx
deleted file mode 100644
index 380cb7c28..000000000
--- a/Assets/Objects/environment/Trees/Meshes/Palm_01.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:c8864e3d8d87764f79d8efa6966d4658b1e3398c9b90e28e005b5b12e4a5ebe8
-size 55008
diff --git a/Assets/Objects/environment/Trees/Meshes/Palm_02.fbx b/Assets/Objects/environment/Trees/Meshes/Palm_02.fbx
deleted file mode 100644
index 5143e0114..000000000
--- a/Assets/Objects/environment/Trees/Meshes/Palm_02.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:5e4d3c98c56720ca3fd30166b7c7e9433fb059dd288b1ee99dbe391e2454cc9c
-size 50400
diff --git a/Assets/Objects/environment/Trees/Meshes/Palm_03.fbx b/Assets/Objects/environment/Trees/Meshes/Palm_03.fbx
deleted file mode 100644
index 355935773..000000000
--- a/Assets/Objects/environment/Trees/Meshes/Palm_03.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:4eb2fa31f6103f6cb03c13878e1f7f543494496b4b3acc19cbdbaadcec5edc70
-size 45280
diff --git a/Assets/Objects/props/houses/HousesJetty_LOW.fbx b/Assets/Objects/props/houses/HousesJetty_LOW.fbx
deleted file mode 100644
index 39b90e741..000000000
--- a/Assets/Objects/props/houses/HousesJetty_LOW.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6d6dc2f985e7c76d370ee629307e767c27435e1315ac6f834b31cf31b79cce00
-size 205952
diff --git a/Assets/Objects/props/houses/Materials/Matr_BuildingsJettys.mat b/Assets/Objects/props/houses/Materials/Matr_BuildingsJettys.mat
index cf7bbbcbc..e0ef9577e 100644
--- a/Assets/Objects/props/houses/Materials/Matr_BuildingsJettys.mat
+++ b/Assets/Objects/props/houses/Materials/Matr_BuildingsJettys.mat
@@ -15,7 +15,7 @@ MonoBehaviour:
version: 1
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
@@ -23,13 +23,19 @@ Material:
m_Name: Matr_BuildingsJettys
m_Shader: {fileID: -6465566751694194690, guid: 41c9ba5b3695aca429b87a5073066fc7,
type: 3}
- m_ShaderKeywords: _METALLICSPECGLOSSMAP _NORMALMAP
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords:
+ - _METALLICSPECGLOSSMAP
+ - _NORMALMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 1
- m_CustomRenderQueue: -1
+ m_CustomRenderQueue: 2500
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -93,6 +99,19 @@ Material:
m_Texture: {fileID: 2800000, guid: b2f21589b3c414cc3a05db416d43897b, type: 3}
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:
- Vector1_81866058: 1
- _AlphaClip: 0
@@ -112,6 +131,7 @@ Material:
- _NightFade: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
+ - _QueueControl: 0
- _QueueOffset: 50
- _ReceiveShadows: 1
- _Shininess: 1
@@ -129,6 +149,7 @@ Material:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
--- !u!114 &2561603144951705041
MonoBehaviour:
m_ObjectHideFlags: 11
@@ -141,4 +162,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 1
+ version: 7
diff --git a/Assets/Objects/props/props/Materials/Matr_Props.mat b/Assets/Objects/props/props/Materials/Matr_Props.mat
index 2d11eb859..7e7e3293d 100644
--- a/Assets/Objects/props/props/Materials/Matr_Props.mat
+++ b/Assets/Objects/props/props/Materials/Matr_Props.mat
@@ -12,17 +12,23 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
- version: 4
+ version: 7
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Matr_Props
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
- m_ShaderKeywords: _METALLICSPECGLOSSMAP _NORMALMAP _OCCLUSIONMAP
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords:
+ - _METALLICSPECGLOSSMAP
+ - _NORMALMAP
+ - _OCCLUSIONMAP
+ m_InvalidKeywords: []
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
@@ -30,6 +36,7 @@ Material:
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -77,14 +84,33 @@ Material:
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: 1
- _Glossiness: 0
@@ -99,13 +125,14 @@ Material:
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
+ - _SrcBlendAlpha: 1
- _Surface: 0
- _UVSec: 0
- _WorkflowMode: 1
- _ZWrite: 1
m_Colors:
- _BaseColor: {r: 0.9150943, g: 0.9150943, b: 0.9150943, a: 1}
- - _Color: {r: 0.9811321, g: 0.9811321, b: 0.9811321, a: 1}
+ - _Color: {r: 0.9150943, g: 0.9150943, b: 0.9150943, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
m_BuildTextureStacks: []
diff --git a/Assets/Objects/props/props/Materials/Matr_Props_Hue.mat b/Assets/Objects/props/props/Materials/Matr_Props_Hue.mat
index 259bb7f1e..3453f6211 100644
--- a/Assets/Objects/props/props/Materials/Matr_Props_Hue.mat
+++ b/Assets/Objects/props/props/Materials/Matr_Props_Hue.mat
@@ -2,20 +2,28 @@
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
- serializedVersion: 6
+ serializedVersion: 8
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Matr_Props_Hue
m_Shader: {fileID: 4800000, guid: e7d662204c5464355bc5f5911874653a, type: 3}
- m_ShaderKeywords: _METALLICGLOSSMAP _METALLICSPECGLOSSMAP _NORMALMAP _OCCLUSIONMAP
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords:
+ - _METALLICGLOSSMAP
+ - _METALLICSPECGLOSSMAP
+ - _NORMALMAP
+ - _OCCLUSIONMAP
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: 2200
stringTagMap: {}
disabledShaderPasses: []
+ m_LockedProperties:
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
@@ -71,6 +79,19 @@ Material:
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:
- Vector1_57F231EB: 0
- _AlphaClip: 0
@@ -88,6 +109,8 @@ Material:
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
+ - _QueueControl: 1
+ - _QueueOffset: 0
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
@@ -99,3 +122,17 @@ Material:
- _Color: {r: 0.9811321, g: 0.9811321, b: 0.9811321, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+ m_BuildTextureStacks: []
+--- !u!114 &4748325720954909337
+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
diff --git a/Assets/Objects/props/props/Meshes/Props_low.fbx b/Assets/Objects/props/props/Meshes/Props_low.fbx
deleted file mode 100644
index 2876aebd3..000000000
--- a/Assets/Objects/props/props/Meshes/Props_low.fbx
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:7cf4a11ca30c4e4fe5946bf95abfd046f12d3ee075befc8730ad0bb3ee002a2c
-size 223024
diff --git a/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/benchmark_island-static.png.meta b/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/benchmark_island-static.png.meta
index 041ae58c1..57d97c0a2 100644
--- a/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/benchmark_island-static.png.meta
+++ b/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/benchmark_island-static.png.meta
@@ -3,7 +3,7 @@ guid: b69f7136667814ffdbd894572a55a96b
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 11
+ serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,10 +20,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
+ flipGreenChannel: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
+ ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -62,6 +64,8 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
@@ -73,6 +77,20 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 0
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
@@ -88,9 +106,9 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
- spritePackingTag:
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
pSDRemoveMatte: 0
- pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/level_Island.png.meta b/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/level_Island.png.meta
index 65ae9a442..91a7194bd 100644
--- a/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/level_Island.png.meta
+++ b/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/level_Island.png.meta
@@ -3,7 +3,7 @@ guid: 5cd214bf7e19c4f83914139575476803
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 11
+ serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,10 +20,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
+ flipGreenChannel: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
+ ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -62,6 +64,8 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
@@ -73,6 +77,20 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 0
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
@@ -88,9 +106,9 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
- spritePackingTag:
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
pSDRemoveMatte: 0
- pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/main_menu.png.meta b/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/main_menu.png.meta
index 5ea89fd6f..38128e3f1 100644
--- a/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/main_menu.png.meta
+++ b/Assets/ReferenceImages/Linear/OSXEditor/Metal/None/main_menu.png.meta
@@ -3,7 +3,7 @@ guid: 8596ae1d516a74e09bba709f583564bd
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 11
+ serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,10 +20,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
+ flipGreenChannel: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
+ ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -62,6 +64,8 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
@@ -73,6 +77,20 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 0
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
@@ -88,9 +106,9 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
- spritePackingTag:
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
pSDRemoveMatte: 0
- pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/benchmark_island-static.png.meta b/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/benchmark_island-static.png.meta
index af51881ac..4fe8d387c 100644
--- a/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/benchmark_island-static.png.meta
+++ b/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/benchmark_island-static.png.meta
@@ -3,7 +3,7 @@ guid: c0078e84b794d488f9455cbe9ea63faa
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 11
+ serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,10 +20,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
+ flipGreenChannel: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
+ ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -62,6 +64,8 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
@@ -73,6 +77,20 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 0
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
@@ -88,9 +106,9 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
- spritePackingTag:
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
pSDRemoveMatte: 0
- pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/level_Island.png.meta b/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/level_Island.png.meta
index 0367266ee..5d842fdfc 100644
--- a/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/level_Island.png.meta
+++ b/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/level_Island.png.meta
@@ -3,7 +3,7 @@ guid: 205044fab159c444c85163d138f02c14
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 11
+ serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,10 +20,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
+ flipGreenChannel: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
+ ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -62,6 +64,8 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
@@ -73,6 +77,20 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 0
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
@@ -88,9 +106,9 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
- spritePackingTag:
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
pSDRemoveMatte: 0
- pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/main_menu.png.meta b/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/main_menu.png.meta
index 95edbd5e1..f8c69f364 100644
--- a/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/main_menu.png.meta
+++ b/Assets/ReferenceImages/Linear/WindowsEditor/Direct3D11/None/main_menu.png.meta
@@ -3,7 +3,7 @@ guid: 3f46f514c4f43457093db3c8add8b862
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 11
+ serializedVersion: 13
mipmaps:
mipMapMode: 0
enableMipMap: 0
@@ -20,10 +20,12 @@ TextureImporter:
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
+ flipGreenChannel: 0
isReadable: 1
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
+ ignoreMipmapLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -62,6 +64,8 @@ TextureImporter:
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 1
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
@@ -73,6 +77,20 @@ TextureImporter:
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 0
+ compressionQuality: 0
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
@@ -88,9 +106,9 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
- spritePackingTag:
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
pSDRemoveMatte: 0
- pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Resources/AppSettings.prefab b/Assets/Resources/AppSettings.prefab
index 3e51853a5..00c190437 100644
--- a/Assets/Resources/AppSettings.prefab
+++ b/Assets/Resources/AppSettings.prefab
@@ -27,12 +27,13 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3829577903138488069}
+ serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 108.12326, y: 11.028929, z: -31.28112}
m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
- m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3829577903138488074
MonoBehaviour:
@@ -165,7 +166,7 @@ AudioSource:
m_Enabled: 1
serializedVersion: 4
OutputAudioMixerGroup: {fileID: 0}
- m_audioClip: {fileID: 8300000, guid: 643024a49360c40c0a27365c40d4d58d, type: 3}
+ m_audioClip: {fileID: 8300000, guid: 888b0d97d31a414499a693638d8d818d, type: 3}
m_PlayOnAwake: 1
m_Volume: 0.5
m_Pitch: 1
diff --git a/Assets/Resources/FirstPersonCharacter.prefab b/Assets/Resources/FirstPersonCharacter.prefab
new file mode 100644
index 000000000..2c4b5ec65
--- /dev/null
+++ b/Assets/Resources/FirstPersonCharacter.prefab
@@ -0,0 +1,397 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &1203376030261627652
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1203376030261627651}
+ - component: {fileID: 1203376030261627648}
+ - component: {fileID: 1203376030261627649}
+ - component: {fileID: 1203376030261627650}
+ - component: {fileID: 9076537488727344852}
+ m_Layer: 0
+ m_Name: cm
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1203376030261627651
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376030261627652}
+ 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_Children: []
+ m_Father: {fileID: 1203376031101775135}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1203376030261627648
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376030261627652}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: ac0b09e7857660247b1477e93731de29, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &1203376030261627649
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376030261627652}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4044717213e31446939f7bd49c896ea, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_TrackedObjectOffset: {x: 0, y: 0, z: 0}
+ m_LookaheadTime: 0
+ m_LookaheadSmoothing: 10
+ m_LookaheadIgnoreY: 0
+ m_HorizontalDamping: 0.5
+ m_VerticalDamping: 0.5
+ m_ScreenX: 0.5
+ m_ScreenY: 0.5
+ m_DeadZoneWidth: 0
+ m_DeadZoneHeight: 0
+ m_SoftZoneWidth: 0.8
+ m_SoftZoneHeight: 0.8
+ m_BiasX: 0
+ m_BiasY: 0
+ m_CenterOnActivate: 1
+--- !u!114 &1203376030261627650
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376030261627652}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fa7155796051b734daa718462081dc5f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_BindingMode: 1
+ m_FollowOffset: {x: 0, y: 0, z: -10}
+ m_XDamping: 1
+ m_YDamping: 1
+ m_ZDamping: 1
+ m_AngularDampingMode: 0
+ m_PitchDamping: 0
+ m_YawDamping: 0
+ m_RollDamping: 0
+ m_AngularDamping: 0
+--- !u!114 &9076537488727344852
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376030261627652}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 68bb026fafb42b14791938953eaace77, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_NoiseProfile: {fileID: 0}
+ m_PivotOffset: {x: 0, y: 0, z: 0}
+ m_AmplitudeGain: 1
+ m_FrequencyGain: 1
+ mNoiseOffsets: {x: -938.8635, y: -285.17496, z: -509.71887}
+--- !u!1 &1203376030672308022
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1203376030672308018}
+ - component: {fileID: 1203376030672308019}
+ - component: {fileID: 1203376030672308020}
+ - component: {fileID: 1217084860333092195}
+ - component: {fileID: 1203376030672308017}
+ m_Layer: 0
+ m_Name: FirstPersonCharacter
+ m_TagString: Player
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1203376030672308018
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376030672308022}
+ 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_Children:
+ - {fileID: 1203376031101775135}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!143 &1203376030672308019
+CharacterController:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376030672308022}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_Height: 2.3200002
+ m_Radius: 0.5
+ m_SlopeLimit: 45
+ m_StepOffset: 0.3
+ m_SkinWidth: 0.08
+ m_MinMoveDistance: 0.001
+ m_Center: {x: 0, y: 1.1600001, z: 0}
+--- !u!114 &1203376030672308020
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376030672308022}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a343570c5b9740b45b62e566abd743cc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Paused: 0
+ m_Camera: {fileID: 1203376031101775135}
+ m_Input: {fileID: 1217084860333092195}
+ PlayerHeight: 1.82
+ PlayerRadius: 0.5
+ PlayerWeight: 3
+ MoveSpeed: 3
+ MaximumFallVelocity: 12
+ TurnSpeed: 180
+ EnableJump: 1
+ JumpImpulse: 7
+ PitchSpeed: 180
+ MaxPitch: 80
+--- !u!114 &1217084860333092195
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376030672308022}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e73f3aff63edd1b48a0603e93cba6fb9, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ preferLegacyInput: 0
+ move:
+ m_Name: Left Stick
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 78262303-6c30-440d-b87f-5a455bb7c221
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings:
+ - m_Name:
+ m_Id: 374a17f1-27af-435d-adcb-77f4afc0fd97
+ m_Path: /leftStick
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Left Stick
+ m_Flags: 0
+ - m_Name:
+ m_Id: ca91ff32-e98f-41f9-8d27-0865d7c7542f
+ m_Path: 2DVector
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Left Stick
+ m_Flags: 4
+ - m_Name: Up
+ m_Id: 94b42695-a265-4b17-8f05-6888706a5b41
+ m_Path: /w
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Left Stick
+ m_Flags: 8
+ - m_Name: Down
+ m_Id: 1ba0c741-3a6b-4ef0-9d5a-48e0049b09bb
+ m_Path: /s
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Left Stick
+ m_Flags: 8
+ - m_Name: Left
+ m_Id: 5f1b09fb-3c16-4955-89a6-9b80511c9160
+ m_Path: /a
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Left Stick
+ m_Flags: 8
+ - m_Name: Right
+ m_Id: 62b1165a-9579-4276-a12c-3ae37be7940d
+ m_Path: /d
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Left Stick
+ m_Flags: 8
+ look:
+ m_Name: Right Stick
+ m_Type: 0
+ m_ExpectedControlType:
+ m_Id: 03cb4cd5-eec0-4b4f-939a-43151fecb4db
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings:
+ - m_Name:
+ m_Id: ed421107-c8c8-407c-bf7a-20969f7e60af
+ m_Path: /rightStick
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Right Stick
+ m_Flags: 0
+ - m_Name:
+ m_Id: dd76736c-4d9f-42d0-ae66-878483cdce4d
+ m_Path: /Delta
+ m_Interactions:
+ m_Processors: ScaleVector2(x=0.1,y=0.1)
+ m_Groups:
+ m_Action: Right Stick
+ m_Flags: 0
+ jump:
+ m_Name: Jump
+ m_Type: 1
+ m_ExpectedControlType:
+ m_Id: f931776e-d3e9-4c3c-b50c-6612bc4d9c99
+ m_Processors:
+ m_Interactions:
+ m_SingletonActionBindings:
+ - m_Name:
+ m_Id: f8a98adf-5a04-4678-9a76-a60fbe4e7ab3
+ m_Path: /buttonSouth
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Jump
+ m_Flags: 0
+ - m_Name:
+ m_Id: 6a75d1af-654f-47a6-9a30-857ecc80a844
+ m_Path: /space
+ m_Interactions:
+ m_Processors:
+ m_Groups:
+ m_Action: Jump
+ m_Flags: 0
+ MovementHorizontalAxis: Horizontal
+ MovementVerticalAxis: Vertical
+ LookHorizontalAxis: Mouse X
+ LookVerticalAxis: Mouse Y
+ JumpButton: Jump
+--- !u!54 &1203376030672308017
+Rigidbody:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376030672308022}
+ serializedVersion: 2
+ m_Mass: 1
+ m_Drag: 0
+ m_AngularDrag: 0.05
+ m_UseGravity: 0
+ m_IsKinematic: 1
+ m_Interpolate: 2
+ m_Constraints: 0
+ m_CollisionDetection: 0
+--- !u!1 &1203376031101775104
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1203376031101775135}
+ - component: {fileID: 1203376031101775134}
+ m_Layer: 0
+ m_Name: VirtualCamera
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1203376031101775135
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376031101775104}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 1.82, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1203376030261627651}
+ m_Father: {fileID: 1203376030672308018}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1203376031101775134
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1203376031101775104}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 45e653bab7fb20e499bda25e1b646fea, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ExcludedPropertiesInInspector:
+ - m_Script
+ m_LockStageInInspector:
+ m_StreamingVersion: 20170927
+ m_Priority: 10
+ m_StandbyUpdate: 2
+ m_LookAt: {fileID: 0}
+ m_Follow: {fileID: 0}
+ m_Lens:
+ FieldOfView: 70
+ OrthographicSize: 10
+ NearClipPlane: 0.1
+ FarClipPlane: 5000
+ Dutch: 0
+ LensShift: {x: 0, y: 0}
+ m_Transitions:
+ m_BlendHint: 0
+ m_InheritPosition: 0
+ m_OnCameraLive:
+ m_PersistentCalls:
+ m_Calls: []
+ m_LegacyBlendHint: 0
+ m_ComponentOwner: {fileID: 1203376030261627651}
diff --git a/Assets/Resources/FirstPersonCharacter.prefab.meta b/Assets/Resources/FirstPersonCharacter.prefab.meta
new file mode 100644
index 000000000..4ab840785
--- /dev/null
+++ b/Assets/Resources/FirstPersonCharacter.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 51569ce51883c7e4d9dabc5321d38077
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/FullScreenFadeManager.prefab b/Assets/Resources/FullScreenFadeManager.prefab
new file mode 100644
index 000000000..f1f735787
--- /dev/null
+++ b/Assets/Resources/FullScreenFadeManager.prefab
@@ -0,0 +1,207 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &1138337785565518664
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1138337785565518665}
+ - component: {fileID: 1138337785565518667}
+ - component: {fileID: 1138337785565518666}
+ m_Layer: 5
+ m_Name: FullScreenMatte
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!224 &1138337785565518665
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1138337785565518664}
+ 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: 1138337785731963864}
+ 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 &1138337785565518667
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1138337785565518664}
+ m_CullTransparentMesh: 0
+--- !u!114 &1138337785565518666
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1138337785565518664}
+ 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, g: 0, b: 0, a: 0}
+ m_RaycastTarget: 0
+ 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 &1138337785731963871
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1138337785731963864}
+ - component: {fileID: 1138337785731963866}
+ - component: {fileID: 1138337785731963865}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &1138337785731963864
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1138337785731963871}
+ 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: 1138337785565518665}
+ m_Father: {fileID: 1138337785854297217}
+ 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!223 &1138337785731963866
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1138337785731963871}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 0
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 1
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_VertexColorAlwaysGammaSpace: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_UpdateRectTransformForStandalone: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 32765
+ m_TargetDisplay: 0
+--- !u!114 &1138337785731963865
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1138337785731963871}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!1 &1138337785854297223
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1138337785854297217}
+ - component: {fileID: 1138337785854297216}
+ m_Layer: 0
+ m_Name: FullScreenFadeManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1138337785854297217
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1138337785854297223}
+ 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: 1138337785731963864}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1138337785854297216
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1138337785854297223}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: c3c1731f7f8331345a352b2b9c05f2cb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ FullScreenFadePlane: {fileID: 1138337785565518666}
diff --git a/Assets/Resources/FullScreenFadeManager.prefab.meta b/Assets/Resources/FullScreenFadeManager.prefab.meta
new file mode 100644
index 000000000..10b5eaa94
--- /dev/null
+++ b/Assets/Resources/FullScreenFadeManager.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 723b7b3c16593624ba967539a9695ae0
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/GameManager.prefab b/Assets/Resources/GameManager.prefab
new file mode 100644
index 000000000..6f5ecb530
--- /dev/null
+++ b/Assets/Resources/GameManager.prefab
@@ -0,0 +1,148 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4873469839061497281
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1920111148660287306}
+ - component: {fileID: 583835540566580086}
+ - component: {fileID: 1406516799403283210}
+ - component: {fileID: 7752601622943950306}
+ - component: {fileID: 6925750312856378388}
+ m_Layer: 0
+ m_Name: EditorOnly - OnStart
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1920111148660287306
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4873469839061497281}
+ 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_Children: []
+ m_Father: {fileID: 908687834499952610}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &583835540566580086
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4873469839061497281}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 718c1945292acbd4497cd28bcaa94f8d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ OnStart:
+ - {fileID: 1406516799403283210}
+--- !u!114 &1406516799403283210
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4873469839061497281}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: e5b32278809154e47b5d8375352f6f8f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Name: 'If EditorOnly '
+ DisableOnPlayFromHere: 0
+ ExecutionPath: 1
+ OnExecute:
+ - {fileID: 7752601622943950306}
+ - {fileID: 6925750312856378388}
+--- !u!114 &7752601622943950306
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4873469839061497281}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 15ae69d69e7aeaf4fbfb02e7175ed5f5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Name: 'Send : MainMenuStart'
+ messageType: 0
+--- !u!114 &6925750312856378388
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4873469839061497281}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 15ae69d69e7aeaf4fbfb02e7175ed5f5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Name: 'Send : GameLevelStart'
+ messageType: 1
+--- !u!1 &7122617993820077800
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 908687834499952610}
+ - component: {fileID: 5013279253329681551}
+ m_Layer: 0
+ m_Name: GameManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &908687834499952610
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7122617993820077800}
+ 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_Children:
+ - {fileID: 1920111148660287306}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &5013279253329681551
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 7122617993820077800}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9fd2ae503e78cd14da039ced88d8e0b3, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ OnGameStart: []
+ OnLevelLoaded: []
+ OnMainMenuLoaded: []
+ MainMenuGameLevel: {fileID: 11400000, guid: d99561144ab5c0345b420674ec7d0228, type: 2}
+ MainGameLevels:
+ - {fileID: 11400000, guid: 9f2f4106fb707f94b8ba444221854f92, type: 2}
+ EnableSaveProgress: 1
+ ProgressSaveName: Progress
diff --git a/Assets/Resources/GameManager.prefab.meta b/Assets/Resources/GameManager.prefab.meta
new file mode 100644
index 000000000..efd9a4c74
--- /dev/null
+++ b/Assets/Resources/GameManager.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 379f2eef434cc4c4d8cd043cc08e80dc
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/GameSaveManager.prefab b/Assets/Resources/GameSaveManager.prefab
new file mode 100644
index 000000000..a65a98e3d
--- /dev/null
+++ b/Assets/Resources/GameSaveManager.prefab
@@ -0,0 +1,274 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4126731527077413761
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4126731527077413760}
+ - component: {fileID: 4126731527077413766}
+ - component: {fileID: 4126731527077413767}
+ m_Layer: 5
+ m_Name: Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4126731527077413760
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527077413761}
+ 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: 4126731527289085647}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 1, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: -32, y: 32}
+ m_SizeDelta: {x: 512, y: 32}
+ m_Pivot: {x: 1, y: 0}
+--- !u!222 &4126731527077413766
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527077413761}
+ m_CullTransparentMesh: 0
+--- !u!114 &4126731527077413767
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527077413761}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, 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_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 1
+ m_MinSize: 1
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: Accessing Data... Do not turn off computer or quit game.
+--- !u!1 &4126731527289085640
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4126731527289085647}
+ - component: {fileID: 4126731527289085645}
+ - component: {fileID: 4126731527289085646}
+ m_Layer: 5
+ m_Name: Canvas
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!224 &4126731527289085647
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527289085640}
+ 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: 4126731527077413760}
+ m_Father: {fileID: 4126731527728584135}
+ 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!223 &4126731527289085645
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527289085640}
+ 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: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_UpdateRectTransformForStandalone: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 0
+ m_TargetDisplay: 0
+--- !u!114 &4126731527289085646
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527289085640}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!1 &4126731527728584129
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4126731527728584135}
+ - component: {fileID: 4126731527728584128}
+ - component: {fileID: 4126731527728584132}
+ - component: {fileID: 4126731527728584133}
+ - component: {fileID: 4126731527728584134}
+ m_Layer: 0
+ m_Name: GameSaveManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &4126731527728584135
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527728584129}
+ 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: 4126731527289085647}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &4126731527728584128
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527728584129}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4a94c60800d516b4980b9f68a5ab6cb5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ UsePlayerPrefs: 0
+ savePath: /
+ systemSaveName: System.sav
+ userSaveName: User{0}.sav
+ OnLoad:
+ - {fileID: 4126731527728584133}
+ - {fileID: 4126731527728584132}
+ OnSave:
+ - {fileID: 4126731527728584133}
+ - {fileID: 4126731527728584132}
+--- !u!114 &4126731527728584132
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527728584129}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0ce142628ca19c2489cf2183fc2d934f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Name: DelayedLogic
+ delayMode: 0
+ Delay: 3
+ DelayRange: {x: 3, y: 4}
+ OnDelayComplete:
+ - {fileID: 4126731527728584134}
+ OnCanceled: []
+--- !u!114 &4126731527728584133
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527728584129}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 846d5f33f7af4014ea15adf7a92dc953, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Name: ToggleGameObjectAction
+ Targets:
+ - GameObject: {fileID: 4126731527289085640}
+ State: 1
+--- !u!114 &4126731527728584134
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4126731527728584129}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 846d5f33f7af4014ea15adf7a92dc953, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Name: ToggleGameObjectAction
+ Targets:
+ - GameObject: {fileID: 4126731527289085640}
+ State: 0
diff --git a/Assets/Resources/GameSaveManager.prefab.meta b/Assets/Resources/GameSaveManager.prefab.meta
new file mode 100644
index 000000000..1088d4f43
--- /dev/null
+++ b/Assets/Resources/GameSaveManager.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a9ab74a93653f07489a2cb00a2f49891
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/GameplayIngredientsSettings.asset b/Assets/Resources/GameplayIngredientsSettings.asset
index 30caa1313..9257fcd1a 100644
--- a/Assets/Resources/GameplayIngredientsSettings.asset
+++ b/Assets/Resources/GameplayIngredientsSettings.asset
@@ -13,13 +13,5 @@ MonoBehaviour:
m_Name: GameplayIngredientsSettings
m_EditorClassIdentifier:
m_DisableWelcomeScreenAutoStart: 0
- m_ExcludedManagers:
- - FullScreenFadeManager
- - GameSaveManager
- - ScreenshotManager
- - UIEventManager
- - VirtualCameraManager
- - LevelStreamingManager
- - GameManager
+ m_ExcludedManagers: []
m_VerboseCalls: 0
- m_AllowUpdateCalls: 0
diff --git a/Assets/Resources/GameplayIngredientsSettings.asset.meta b/Assets/Resources/GameplayIngredientsSettings.asset.meta
index b5bc72165..c6cc1ad0b 100644
--- a/Assets/Resources/GameplayIngredientsSettings.asset.meta
+++ b/Assets/Resources/GameplayIngredientsSettings.asset.meta
@@ -1,8 +1,8 @@
fileFormatVersion: 2
-guid: fdcdc91aaf24e4b94bac79297958a402
+guid: 3600fe549a077b14588c7f4a8cee3875
NativeFormatImporter:
externalObjects: {}
- mainObjectFileID: 0
+ mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:
diff --git a/Assets/Resources/LevelStreamingManager.prefab b/Assets/Resources/LevelStreamingManager.prefab
new file mode 100644
index 000000000..9f72c47ca
--- /dev/null
+++ b/Assets/Resources/LevelStreamingManager.prefab
@@ -0,0 +1,614 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &4237660105901699951
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4237660105901699950}
+ m_Layer: 5
+ m_Name: LoadingUI
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4237660105901699950
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660105901699951}
+ 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: 4237660106701817725}
+ - {fileID: 4237660106123981089}
+ - {fileID: 4237660106447583619}
+ - {fileID: 4237660107457405504}
+ m_Father: {fileID: 4237660107855997384}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 32, y: 32}
+ m_SizeDelta: {x: 480, y: 32}
+ m_Pivot: {x: 0, y: 0}
+--- !u!1 &4237660106043442134
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4237660106043442133}
+ - component: {fileID: 4237660106043442131}
+ - component: {fileID: 4237660106043442132}
+ m_Layer: 5
+ m_Name: DebugText
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4237660106043442133
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106043442134}
+ 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: 4237660107855997384}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 32, y: -32}
+ m_SizeDelta: {x: 320, y: -128}
+ m_Pivot: {x: 0, y: 1}
+--- !u!222 &4237660106043442131
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106043442134}
+ m_CullTransparentMesh: 0
+--- !u!114 &4237660106043442132
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106043442134}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text:
+--- !u!1 &4237660106123981090
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4237660106123981089}
+ - component: {fileID: 4237660106123981119}
+ - component: {fileID: 4237660106123981088}
+ m_Layer: 5
+ m_Name: Percentage
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4237660106123981089
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106123981090}
+ 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: 4237660105901699950}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 1, y: 1}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 80, y: 16}
+ m_Pivot: {x: 1, y: 1}
+--- !u!222 &4237660106123981119
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106123981090}
+ m_CullTransparentMesh: 0
+--- !u!114 &4237660106123981088
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106123981090}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 2
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 100%
+--- !u!1 &4237660106447583620
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4237660106447583619}
+ - component: {fileID: 4237660106447583617}
+ - component: {fileID: 4237660106447583618}
+ m_Layer: 5
+ m_Name: ProgressBarBG
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4237660106447583619
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106447583620}
+ 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: 4237660105901699950}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 240, y: -16}
+ m_SizeDelta: {x: 480, y: 8}
+ m_Pivot: {x: 0.5, y: 0}
+--- !u!222 &4237660106447583617
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106447583620}
+ m_CullTransparentMesh: 0
+--- !u!114 &4237660106447583618
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106447583620}
+ 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.33962262, g: 0.33962262, b: 0.33962262, a: 1}
+ m_RaycastTarget: 0
+ 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 &4237660106662749796
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4237660106662749793}
+ - component: {fileID: 4237660106662749794}
+ - component: {fileID: 4237660106662749795}
+ - component: {fileID: 4237660106662749792}
+ m_Layer: 5
+ m_Name: LevelStreamingManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4237660106662749793
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106662749796}
+ 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: 4237660107855997384}
+ 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!223 &4237660106662749794
+Canvas:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106662749796}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_RenderMode: 0
+ m_Camera: {fileID: 0}
+ m_PlaneDistance: 100
+ m_PixelPerfect: 1
+ m_ReceivesEvents: 1
+ m_OverrideSorting: 0
+ m_OverridePixelPerfect: 0
+ m_SortingBucketNormalizedSize: 0
+ m_VertexColorAlwaysGammaSpace: 0
+ m_AdditionalShaderChannelsFlag: 0
+ m_UpdateRectTransformForStandalone: 0
+ m_SortingLayerID: 0
+ m_SortingOrder: 32766
+ m_TargetDisplay: 0
+--- !u!114 &4237660106662749795
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106662749796}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_UiScaleMode: 0
+ m_ReferencePixelsPerUnit: 100
+ m_ScaleFactor: 1
+ m_ReferenceResolution: {x: 800, y: 600}
+ m_ScreenMatchMode: 0
+ m_MatchWidthOrHeight: 0
+ m_PhysicalUnit: 3
+ m_FallbackScreenDPI: 96
+ m_DefaultSpriteDPI: 96
+ m_DynamicPixelsPerUnit: 1
+ m_PresetInfoIsWorld: 0
+--- !u!114 &4237660106662749792
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106662749796}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: d9f78c0b7259f604da294b52e1208e0f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ LoadingRoot: {fileID: 4237660107855997385}
+ LoadingIcon: {fileID: 0}
+ ProgressBar: {fileID: 4237660107457405505}
+ ProgressBarContainer: {fileID: 4237660106447583620}
+ LoadingText: {fileID: 4237660106701817724}
+ PercentageText: {fileID: 4237660106123981088}
+ DelayBeforeLoad: 1
+ DelayAfterLoad: 1
+ DebugText: {fileID: 4237660106043442132}
+ EnableDebug: 0
+--- !u!1 &4237660106701817726
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4237660106701817725}
+ - component: {fileID: 4237660106701817723}
+ - component: {fileID: 4237660106701817724}
+ m_Layer: 5
+ m_Name: Loading
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4237660106701817725
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106701817726}
+ 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: 4237660105901699950}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 96, y: 16}
+ m_Pivot: {x: 0, y: 1}
+--- !u!222 &4237660106701817723
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106701817726}
+ m_CullTransparentMesh: 0
+--- !u!114 &4237660106701817724
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660106701817726}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 0
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_FontData:
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_FontSize: 14
+ m_FontStyle: 0
+ m_BestFit: 0
+ m_MinSize: 10
+ m_MaxSize: 40
+ m_Alignment: 0
+ m_AlignByGeometry: 0
+ m_RichText: 1
+ m_HorizontalOverflow: 0
+ m_VerticalOverflow: 0
+ m_LineSpacing: 1
+ m_Text: 'Loading...
+
+'
+--- !u!1 &4237660107457405505
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4237660107457405504}
+ - component: {fileID: 4237660107457405534}
+ - component: {fileID: 4237660107457405535}
+ m_Layer: 5
+ m_Name: ProgressBar
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4237660107457405504
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660107457405505}
+ 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: 4237660105901699950}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 0, y: 0.5}
+ m_AnchoredPosition: {x: 0, y: -16}
+ m_SizeDelta: {x: 40, y: 8}
+ m_Pivot: {x: 0, y: 0}
+--- !u!222 &4237660107457405534
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660107457405505}
+ m_CullTransparentMesh: 0
+--- !u!114 &4237660107457405535
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660107457405505}
+ 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: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 0
+ 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 &4237660107855997385
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4237660107855997384}
+ - component: {fileID: 4237660107855997382}
+ - component: {fileID: 4237660107855997383}
+ m_Layer: 5
+ m_Name: LoadingRoot
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 0
+--- !u!224 &4237660107855997384
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660107855997385}
+ 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: 4237660105901699950}
+ - {fileID: 4237660106043442133}
+ m_Father: {fileID: 4237660106662749793}
+ 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 &4237660107855997382
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660107855997385}
+ m_CullTransparentMesh: 0
+--- !u!114 &4237660107855997383
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4237660107855997385}
+ 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, g: 0, b: 0, a: 1}
+ m_RaycastTarget: 0
+ 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
diff --git a/Assets/Resources/LevelStreamingManager.prefab.meta b/Assets/Resources/LevelStreamingManager.prefab.meta
new file mode 100644
index 000000000..92a1bd864
--- /dev/null
+++ b/Assets/Resources/LevelStreamingManager.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 1199be26f85318642849e89bbe054aa1
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/UIEventManager.prefab b/Assets/Resources/UIEventManager.prefab
new file mode 100644
index 000000000..5c1a6d478
--- /dev/null
+++ b/Assets/Resources/UIEventManager.prefab
@@ -0,0 +1,106 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &5522188214262437396
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 6147027817872984675}
+ - component: {fileID: 4520632949099947202}
+ - component: {fileID: 7160814530007161981}
+ - component: {fileID: 4716330389292619800}
+ m_Layer: 0
+ m_Name: UIEventManager
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &6147027817872984675
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5522188214262437396}
+ 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!114 &4520632949099947202
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5522188214262437396}
+ 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!114 &7160814530007161981
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5522188214262437396}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_SendPointerHoverToParent: 1
+ m_MoveRepeatDelay: 0.5
+ m_MoveRepeatRate: 0.1
+ m_XRTrackingOrigin: {fileID: 0}
+ m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018,
+ type: 3}
+ m_DeselectOnBackgroundClick: 1
+ m_PointerBehavior: 0
+ m_CursorLockBehavior: 0
+ m_ScrollDeltaPerTick: 6
+--- !u!114 &4716330389292619800
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 5522188214262437396}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b5bc0b3023dd1f8439a43adc2d70379f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_EventSystem: {fileID: 4520632949099947202}
diff --git a/Assets/Resources/UIEventManager.prefab.meta b/Assets/Resources/UIEventManager.prefab.meta
new file mode 100644
index 000000000..d1f240217
--- /dev/null
+++ b/Assets/Resources/UIEventManager.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 855ef94b5eef84947b3261e3064bcd32
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Resources/VirtualCameraManager.prefab b/Assets/Resources/VirtualCameraManager.prefab
new file mode 100644
index 000000000..0594595d1
--- /dev/null
+++ b/Assets/Resources/VirtualCameraManager.prefab
@@ -0,0 +1,166 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3027554877427853619
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 3027554877427853612}
+ - component: {fileID: 3027554877427853613}
+ - component: {fileID: 2796896273931921891}
+ - component: {fileID: 3027554877427853618}
+ - component: {fileID: 3027554877427853615}
+ - component: {fileID: 6992723634369483367}
+ m_Layer: 0
+ m_Name: VirtualCameraManager
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &3027554877427853612
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3027554877427853619}
+ m_LocalRotation: {x: -0.2058242, y: 0.53439623, z: -0.13606744, w: -0.80841994}
+ m_LocalPosition: {x: 7.1058645, y: 4.024516, z: -5.1810875}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &3027554877427853613
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3027554877427853619}
+ 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_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: 0.1
+ far clip plane: 5000
+ field of view: 40
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: -1
+ 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!114 &2796896273931921891
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3027554877427853619}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 2a050287a9067304195c4fe5661de7e2, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!81 &3027554877427853618
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3027554877427853619}
+ m_Enabled: 1
+--- !u!114 &3027554877427853615
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3027554877427853619}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ShowDebugText: 0
+ m_ShowCameraFrustum: 1
+ m_IgnoreTimeScale: 0
+ m_WorldUpOverride: {fileID: 0}
+ m_UpdateMethod: 2
+ m_BlendUpdateMethod: 1
+ m_DefaultBlend:
+ m_Style: 1
+ m_Time: 2
+ m_CustomCurve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_CustomBlends: {fileID: 0}
+ m_CameraCutEvent:
+ m_PersistentCalls:
+ m_Calls: []
+ m_CameraActivatedEvent:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!114 &6992723634369483367
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 3027554877427853619}
+ 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_RenderPostProcessing: 0
+ m_Antialiasing: 0
+ m_AntialiasingQuality: 2
+ m_StopNaN: 0
+ m_Dithering: 0
+ m_ClearDepth: 1
+ m_AllowXRRendering: 1
+ m_RequiresDepthTexture: 0
+ m_RequiresColorTexture: 0
+ m_Version: 2
diff --git a/Assets/Resources/VirtualCameraManager.prefab.meta b/Assets/Resources/VirtualCameraManager.prefab.meta
new file mode 100644
index 000000000..51af90f04
--- /dev/null
+++ b/Assets/Resources/VirtualCameraManager.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3c96a72ce3dacc141a568f1995ee1105
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Boat/AiController.cs b/Assets/Scripts/Boat/AiController.cs
index 5e1462d4b..dcf2a5cd9 100644
--- a/Assets/Scripts/Boat/AiController.cs
+++ b/Assets/Scripts/Boat/AiController.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using UnityEngine;
using System.Collections;
using UnityEngine.AI;
@@ -26,13 +26,50 @@ public class AiController : BaseController
private WaypointGroup.Waypoint[] _wPs;
+ [Header("Auto Start")]
+ [Tooltip("레이스 시작 없이도 자동으로 움직이기 시작합니다")]
+ public bool autoStart = false;
+
+ [Tooltip("자동 시작 대기 시간 (초)")]
+ public float autoStartDelay = 1f;
+
private void Start ()
{
RaceManager.raceStarted += StartRace;
+
+ // 자동 시작 모드일 때
+ if (autoStart)
+ {
+ StartCoroutine(AutoStartCoroutine());
+ }
+ }
+
+ private IEnumerator AutoStartCoroutine()
+ {
+ // WaypointGroup이 준비될 때까지 대기
+ while (WaypointGroup.Instance == null)
+ {
+ yield return null;
+ }
+
+ yield return new WaitForSeconds(autoStartDelay);
+
+ // 레이스가 시작되지 않았어도 움직이기 시작
+ if (!RaceManager.RaceStarted)
+ {
+ Debug.Log($"[AiController] {gameObject.name}: 자동 시작 모드로 움직이기 시작");
+ StartRace(true);
+ }
}
private void StartRace(bool start)
{
+ if (WaypointGroup.Instance == null)
+ {
+ Debug.LogWarning($"[AiController] {gameObject.name}: WaypointGroup.Instance가 null입니다!");
+ return;
+ }
+
AssignWp(WaypointGroup.Instance.GetWaypoint(0));
InvokeRepeating(nameof(CalculatePath), 1f, 1f);
}
diff --git a/Assets/Scripts/Boat/AIcontroller.cs.meta b/Assets/Scripts/Boat/AiController.cs.meta
similarity index 100%
rename from Assets/Scripts/Boat/AIcontroller.cs.meta
rename to Assets/Scripts/Boat/AiController.cs.meta
diff --git a/Assets/Scripts/Boat/Engine.cs b/Assets/Scripts/Boat/Engine.cs
index 45e5f757e..478738e5c 100644
--- a/Assets/Scripts/Boat/Engine.cs
+++ b/Assets/Scripts/Boat/Engine.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using UnityEngine;
using Unity.Collections;
using Unity.Mathematics;
@@ -16,7 +16,7 @@ public class Engine : MonoBehaviour
//engine stats
public float steeringTorque = 5f;
- public float horsePower = 18f;
+ public float horsePower = 5800f;
private NativeArray _point; // engine submerged check
private float3[] _heights = new float3[1]; // engine submerged check
private float3[] _normals = new float3[1]; // engine submerged check
@@ -28,6 +28,12 @@ public class Engine : MonoBehaviour
private float _turnVel;
private float _currentAngle;
+ // 에피소드 시작 시 _yHeight 조건 무시용 카운터 (향후 사용 예정)
+ #pragma warning disable CS0414
+ private int _skipHeightCheckFrames = 0;
+ #pragma warning restore CS0414
+ private const int SKIP_FRAMES_ON_RESET = 5; // 5프레임 동안 조건 무시
+
private void Awake()
{
if(engineSound)
@@ -42,33 +48,125 @@ private void Awake()
private void FixedUpdate()
{
- VelocityMag = RB.velocity.sqrMagnitude; // get the sqr mag
- engineSound.pitch = Mathf.Max(VelocityMag * 0.01f, 0.3f); // use some magice numbers to control the pitch of the engine sound
+ // ⚠️ RB null 체크
+ if (RB == null)
+ {
+ return;
+ }
+
+ // ⚠️ NaN 방지: Rigidbody rotation 체크 및 리셋
+ if (RB != null)
+ {
+ Quaternion rbRotation = RB.rotation;
+ if (float.IsNaN(rbRotation.x) || float.IsNaN(rbRotation.y) ||
+ float.IsNaN(rbRotation.z) || float.IsNaN(rbRotation.w))
+ {
+ Debug.LogError($"[Engine] ⚠️ Rigidbody rotation이 NaN입니다! 리셋합니다. {gameObject.name}");
+ RB.rotation = Quaternion.identity;
+ RB.angularVelocity = Vector3.zero;
+ transform.rotation = Quaternion.identity;
+ _currentAngle = 0f;
+ _turnVel = 0f;
+ }
+
+ // ⚠️ NaN 방지: Rigidbody position 체크
+ Vector3 rbPosition = RB.position;
+ if (float.IsNaN(rbPosition.x) || float.IsNaN(rbPosition.y) || float.IsNaN(rbPosition.z))
+ {
+ Debug.LogError($"[Engine] ⚠️ Rigidbody position이 NaN입니다! 리셋합니다. {gameObject.name}");
+ RB.position = transform.position;
+ RB.velocity = Vector3.zero;
+ }
+
+ // ⚠️ NaN 방지: Rigidbody velocity 체크
+ Vector3 rbVelocity = RB.velocity;
+ if (float.IsNaN(rbVelocity.x) || float.IsNaN(rbVelocity.y) || float.IsNaN(rbVelocity.z))
+ {
+ Debug.LogWarning($"[Engine] ⚠️ Rigidbody velocity가 NaN입니다! 리셋합니다. {gameObject.name}");
+ RB.velocity = Vector3.zero;
+ }
+ }
+
+ VelocityMag = RB != null ? RB.velocity.sqrMagnitude : 0f; // get the sqr mag
+ if (engineSound != null)
+ {
+ engineSound.pitch = Mathf.Max(VelocityMag * 0.01f, 0.3f); // use some magice numbers to control the pitch of the engine sound
+ }
// Get the water level from the engines position and store it
+ // ⚠️ NativeArray가 생성되어 있는지 확인 (메모리 에러 방지)
+ if (!_point.IsCreated)
+ {
+ return;
+ }
+
_point[0] = transform.TransformPoint(enginePosition);
GerstnerWavesJobs.UpdateSamplePoints(ref _point, _guid);
GerstnerWavesJobs.GetData(_guid, ref _heights, ref _normals);
_yHeight = _heights[0].y - _point[0].y;
+
+ // ⚠️ NaN 방지: _yHeight 체크
+ if (float.IsNaN(_yHeight) || float.IsInfinity(_yHeight))
+ {
+ _yHeight = 0f;
+ }
}
private void OnDisable()
{
- _point.Dispose();
+ // ⚠️ NativeArray가 생성되어 있는지 확인 후 Dispose (중복 해제 방지)
+ if (_point.IsCreated)
+ {
+ _point.Dispose();
+ }
}
+ private void OnDestroy()
+ {
+ // ⚠️ OnDestroy에서도 안전하게 Dispose (이중 안전장치)
+ if (_point.IsCreated)
+ {
+ _point.Dispose();
+ }
+ }
+
+ ///
+ /// 에피소드 리셋 시 호출 - 몇 프레임 동안 _yHeight 조건 무시
+ ///
+ public void OnEpisodeReset()
+ {
+ _skipHeightCheckFrames = SKIP_FRAMES_ON_RESET;
+ _yHeight = 0f; // 수면 위로 가정
+ }
+
///
/// Controls the acceleration of the boat
///
/// Acceleration modifier, adds force in the 0-1 range
public void Accelerate(float modifier)
{
- if (_yHeight > -0.1f) // if the engine is deeper than 0.1
+ // ⚠️ NaN 방지: modifier 값 검증
+ if (float.IsNaN(modifier) || float.IsInfinity(modifier))
+ {
+ modifier = 0f;
+ }
+
+ modifier = Mathf.Clamp(modifier, 0f, 1f); // clamp for reasonable values
+
+ // ⚠️ _yHeight 조건 완전 무시 (학습 안정성 테스트)
+ // 원래 조건: if (_yHeight > -0.1f && RB != null)
+ if (RB != null)
{
- modifier = Mathf.Clamp(modifier, 0f, 1f); // clamp for reasonable values
var forward = RB.transform.forward;
forward.y = 0f;
forward.Normalize();
+
+ // ⚠️ NaN 방지: 벡터 검증
+ if (float.IsNaN(forward.x) || float.IsNaN(forward.y) || float.IsNaN(forward.z))
+ {
+ forward = Vector3.forward;
+ }
+
RB.AddForce(horsePower * modifier * forward, ForceMode.Acceleration); // add force forward based on input and horsepower
RB.AddRelativeTorque(-Vector3.right * modifier, ForceMode.Acceleration);
}
@@ -80,19 +178,98 @@ public void Accelerate(float modifier)
/// Steering modifier, positive for right, negative for negative
public void Turn(float modifier)
{
- if (_yHeight > -0.1f) // if the engine is deeper than 0.1
+ // ⚠️ NaN 방지: modifier 값 검증
+ if (float.IsNaN(modifier) || float.IsInfinity(modifier))
+ {
+ modifier = 0f;
+ }
+
+ modifier = Mathf.Clamp(modifier, -1f, 1f); // clamp for reasonable values
+
+ // ⚠️ _yHeight 조건 완전 무시 (학습 안정성 테스트)
+ // 원래 조건: if (_yHeight > -0.1f && RB != null)
+ if (RB != null)
{
- modifier = Mathf.Clamp(modifier, -1f, 1f); // clamp for reasonable values
- RB.AddRelativeTorque(new Vector3(0f, steeringTorque, -steeringTorque * 0.5f) * modifier, ForceMode.Acceleration); // add torque based on input and torque amount
+ // ⚠️ NaN 방지: torque 벡터 검증
+ // Z축 Roll 제거: 선회 시 기울어지지 않아 직진 성능 유지
+ Vector3 torque = new Vector3(0f, steeringTorque, 0f) * modifier;
+ if (float.IsNaN(torque.x) || float.IsNaN(torque.y) || float.IsNaN(torque.z))
+ {
+ torque = Vector3.zero;
+ }
+ RB.AddRelativeTorque(torque, ForceMode.Acceleration); // add torque based on input and torque amount
}
+ // ⚠️ NaN 방지: _currentAngle과 _turnVel 검증
+ if (float.IsNaN(_currentAngle) || float.IsInfinity(_currentAngle))
+ {
+ _currentAngle = 0f;
+ }
+ if (float.IsNaN(_turnVel) || float.IsInfinity(_turnVel))
+ {
+ _turnVel = 0f;
+ }
+
+ // ⚠️ NaN 방지: Time.fixedDeltaTime 사용 (Time.fixedTime 대신)
+ float deltaTime = Time.fixedDeltaTime;
+ if (deltaTime <= 0f || float.IsNaN(deltaTime) || float.IsInfinity(deltaTime))
+ {
+ deltaTime = 0.02f; // 기본값
+ }
+
+ float targetAngle = 60f * -modifier;
+ if (float.IsNaN(targetAngle) || float.IsInfinity(targetAngle))
+ {
+ targetAngle = 0f;
+ }
+
_currentAngle = Mathf.SmoothDampAngle(_currentAngle,
- 60f * -modifier,
+ targetAngle,
ref _turnVel,
0.5f,
10f,
- Time.fixedTime);
- transform.localEulerAngles = new Vector3(0f, _currentAngle, 0f);
+ deltaTime);
+
+ // ⚠️ 최종 NaN 체크
+ if (float.IsNaN(_currentAngle) || float.IsInfinity(_currentAngle))
+ {
+ _currentAngle = 0f;
+ }
+
+ // ⚠️ 각도 범위 제한
+ _currentAngle = Mathf.Clamp(_currentAngle, -180f, 180f);
+
+ // ⚠️ 최종 NaN 체크 후 transform 설정
+ if (float.IsNaN(_currentAngle) || float.IsInfinity(_currentAngle))
+ {
+ _currentAngle = 0f;
+ }
+
+ Vector3 eulerAngles = new Vector3(0f, _currentAngle, 0f);
+
+ // ⚠️ NaN 방지: eulerAngles 검증
+ if (float.IsNaN(eulerAngles.x) || float.IsNaN(eulerAngles.y) || float.IsNaN(eulerAngles.z))
+ {
+ eulerAngles = Vector3.zero;
+ _currentAngle = 0f;
+ }
+
+ transform.localEulerAngles = eulerAngles;
+
+ // ⚠️ NaN 방지: transform.rotation도 체크
+ Quaternion currentRotation = transform.rotation;
+ if (float.IsNaN(currentRotation.x) || float.IsNaN(currentRotation.y) ||
+ float.IsNaN(currentRotation.z) || float.IsNaN(currentRotation.w))
+ {
+ Debug.LogError($"[Engine] ⚠️ transform.rotation이 NaN입니다! 리셋합니다. {gameObject.name}");
+ transform.rotation = Quaternion.identity;
+ _currentAngle = 0f;
+ if (RB != null)
+ {
+ RB.rotation = Quaternion.identity;
+ RB.angularVelocity = Vector3.zero;
+ }
+ }
}
// Draw some helper gizmos
diff --git a/Assets/Scripts/Boat/HumanController.cs b/Assets/Scripts/Boat/HumanController.cs
index 2ef098c5b..873a13ca9 100644
--- a/Assets/Scripts/Boat/HumanController.cs
+++ b/Assets/Scripts/Boat/HumanController.cs
@@ -8,6 +8,11 @@ namespace BoatAttack
///
public class HumanController : BaseController
{
+ [Header("Input Settings")]
+ [Range(0.1f, 2.0f)]
+ [Tooltip("조종 감도 조절 (낮을수록 느림, 높을수록 빠름)")]
+ public float steeringSensitivity = 0.3f;
+
private InputControls _controls;
private float _throttle;
@@ -69,8 +74,16 @@ private void SelectTime(InputAction.CallbackContext context)
void FixedUpdate()
{
+ // 학습 모드일 때는 플레이어 입력 무시
+ if (GameModeManager.IsTrainingMode)
+ {
+ return;
+ }
+
engine.Accelerate(_throttle);
- engine.Turn(_steering);
+ // 감도 조절 적용 (결과값을 -1~1 범위로 제한)
+ var adjustedSteering = Mathf.Clamp(_steering * steeringSensitivity, -1f, 1f);
+ engine.Turn(adjustedSteering);
}
}
}
diff --git a/Assets/Scripts/Camera/CameraManager.cs b/Assets/Scripts/Camera/CameraManager.cs
index 9a322b8f0..efa39d383 100644
--- a/Assets/Scripts/Camera/CameraManager.cs
+++ b/Assets/Scripts/Camera/CameraManager.cs
@@ -1,5 +1,6 @@
-using System.Collections.Generic;
+using System.Collections.Generic;
using UnityEngine;
+using UnityEngine.InputSystem;
using UnityEngine.Playables;
using UnityEngine.UI;
using Cinemachine;
@@ -28,7 +29,10 @@ private void Start()
private void Update()
{
- if (Input.GetKeyDown(KeyCode.Space))
+ Keyboard keyboard = Keyboard.current;
+ if (keyboard == null) return;
+
+ if (keyboard.spaceKey.wasPressedThisFrame)
{
if (_camModes == CameraModes.Cutscene)
StaticCams();
@@ -36,14 +40,23 @@ private void Update()
PlayCutscene();
}
- if (Input.GetKeyDown(KeyCode.LeftArrow))
+ if (keyboard.leftArrowKey.wasPressedThisFrame)
NextStaticCam();
- if (Input.GetKeyDown(KeyCode.RightArrow))
+ if (keyboard.rightArrowKey.wasPressedThisFrame)
PrevStaticCam();
- if (Input.GetKeyDown(KeyCode.H) || (Input.touchCount > 0 && Input.touches[0].tapCount == 2))
+ // H 키 또는 터치 이벤트 (터치는 Input System에서 별도 처리 필요)
+ if (keyboard.hKey.wasPressedThisFrame)
UI.SetActive(!UI.activeSelf);
+
+ // 터치 이벤트는 Touchscreen.current 사용 (필요시)
+ // if (Touchscreen.current != null && Touchscreen.current.touches.Count > 0)
+ // {
+ // var touch = Touchscreen.current.touches[0];
+ // if (touch.tapCount.ReadValue() == 2)
+ // UI.SetActive(!UI.activeSelf);
+ // }
}
public void PlayCutscene()
{
diff --git a/Assets/Scripts/Connect_python.meta b/Assets/Scripts/Connect_python.meta
new file mode 100644
index 000000000..73df16633
--- /dev/null
+++ b/Assets/Scripts/Connect_python.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 39dc8ffcd78456c468c2156bba0074b6
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Connect_python/03.03.1.RollerBall.py b/Assets/Scripts/Connect_python/03.03.1.RollerBall.py
new file mode 100644
index 000000000..9c5b09187
--- /dev/null
+++ b/Assets/Scripts/Connect_python/03.03.1.RollerBall.py
@@ -0,0 +1,291 @@
+
+import numpy as np
+import torch
+import torch.nn as nn
+import torch.optim as optim
+from mlagents_envs.environment import UnityEnvironment
+from mlagents_envs.base_env import ActionTuple
+from mlagents_envs.side_channel.engine_configuration_channel import EngineConfigurationChannel
+from torch.distributions import Normal
+from collections import deque
+from collections import defaultdict
+
+# 0. 하이퍼파라미터 설정
+LEARNING_RATE = 0.0003
+GAMMA = 0.99
+LAMBDA = 0.95
+EPS_CLIP = 0.2
+K_EPOCHS = 3
+BATCH_SIZE = 64
+TRAIN_HORIZON = 2048
+TOTAL_ITERATIONS = 1000 # 학습 반복 횟수
+
+# 1. PPO 네트워크 정의 (Actor-Critic)
+class PPO(nn.Module):
+ def __init__(self, state_dim, action_dim):
+ super(PPO, self).__init__()
+
+ # Actor Network: 상태 -> 행동 (평균)
+ self.actor = nn.Sequential(
+ nn.Linear(state_dim, 64),
+ nn.Tanh(),
+ nn.Linear(64, 64),
+ nn.Tanh(),
+ nn.Linear(64, action_dim)
+ )
+ self.log_std = nn.Parameter(torch.zeros(1, action_dim)) # 표준편차는 학습 가능한 파라미터
+
+ # Critic Network: 상태 -> 가치
+ self.critic = nn.Sequential(
+ nn.Linear(state_dim, 64),
+ nn.Tanh(),
+ nn.Linear(64, 64),
+ nn.Tanh(),
+ nn.Linear(64, 1)
+ )
+
+ def forward(self):
+ raise NotImplementedError
+
+ def get_action_and_value(self, state, action=None):
+ mean = self.actor(state)
+ std = self.log_std.exp().expand_as(mean)
+ dist = Normal(mean, std)
+
+ if action is None:
+ action = dist.sample()
+
+ action_log_prob = dist.log_prob(action).sum(axis=-1, keepdim=True)
+ entropy = dist.entropy().sum(axis=-1, keepdim=True)
+ value = self.critic(state)
+
+ return action, action_log_prob, entropy, value
+
+# 2. 메인 학습 루프
+def main():
+ print("Unity 환경에 연결 중...")
+
+ # 엔진 설정 채널 (TimeScale)
+ engine_config_channel = EngineConfigurationChannel()
+ env = UnityEnvironment(file_name=None, base_port=5004, side_channels=[engine_config_channel])
+
+ try:
+ env.reset()
+ engine_config_channel.set_configuration_parameters(time_scale=20.0)
+
+ behavior_name = list(env.behavior_specs)[0]
+ spec = env.behavior_specs[behavior_name]
+
+ obs_dim = spec.observation_specs[0].shape[0]
+ action_dim = spec.action_spec.continuous_size
+
+ print(f"Observation Dimension: {obs_dim}")
+ print(f"Action Dimension: {action_dim}")
+
+ model = PPO(obs_dim, action_dim)
+ optimizer = optim.Adam(model.parameters(), lr=LEARNING_RATE)
+
+ # --- ONNX Export Helper Function (Unity ML-Agents 호환 포맷) ---
+ def save_onnx_model(save_path):
+ model.eval()
+
+ class FullExport(nn.Module):
+ def __init__(self, actor, action_dim):
+ super(FullExport, self).__init__()
+ self.actor = actor
+ self.action_dim = action_dim
+
+ # 상수 텐서들 (ML-Agents 스펙 - Type Matching을 위해 Float32 사용)
+ self.register_buffer('version_number', torch.tensor([3], dtype=torch.float32))
+ self.register_buffer('memory_size', torch.tensor([0], dtype=torch.float32))
+ self.register_buffer('continuous_action_output_shape', torch.tensor([action_dim], dtype=torch.float32))
+
+ def forward(self, obs_0):
+ # Actor Inference (Mean Action)
+ continuous_actions = self.actor(obs_0)
+
+ # Deterministic Action도 동일하게 Mean 사용
+ deterministic_continuous_actions = continuous_actions
+
+ return (
+ self.version_number,
+ self.memory_size,
+ continuous_actions,
+ self.continuous_action_output_shape,
+ deterministic_continuous_actions
+ )
+
+ export_module = FullExport(model.actor, action_dim)
+ dummy_input = torch.randn(1, obs_dim)
+
+ # 출력 이름 순서는 Unity ML-Agents가 기대하는 순서와 같거나 이름으로 매핑됨
+ input_names = ['obs_0']
+ output_names = [
+ 'version_number',
+ 'memory_size',
+ 'continuous_actions',
+ 'continuous_action_output_shape',
+ 'deterministic_continuous_actions'
+ ]
+
+ torch.onnx.export(
+ export_module,
+ dummy_input,
+ save_path,
+ export_params=True,
+ opset_version=9,
+ do_constant_folding=True,
+ input_names=input_names,
+ output_names=output_names,
+ dynamic_axes={
+ 'obs_0': {0: 'batch'},
+ 'continuous_actions': {0: 'batch'},
+ 'deterministic_continuous_actions': {0: 'batch'}
+ }
+ )
+ model.train()
+ print(f"Saved Unity-compatible ONNX model to {save_path}")
+ # -------------------------------------------------------------
+
+ print("학습 시작! (Multi-Agent & Best Model 저장 지원)")
+
+ score_history = deque(maxlen=100)
+ current_ep_reward = defaultdict(float)
+ best_score = -float('inf')
+
+ for iteration in range(TOTAL_ITERATIONS):
+ env.reset()
+ trajectories = {}
+ b_states, b_actions, b_logprobs, b_advantages, b_returns = [], [], [], [], []
+
+ decision_steps, terminal_steps = env.get_steps(behavior_name)
+
+ for t in range(TRAIN_HORIZON):
+ if len(decision_steps) > 0:
+ obs = decision_steps.obs[0]
+ curr_states = torch.FloatTensor(obs)
+
+ with torch.no_grad():
+ actions, log_probs, _, values = model.get_action_and_value(curr_states)
+
+ actions_np = actions.numpy()
+ env.set_actions(behavior_name, ActionTuple(continuous=actions_np))
+
+ for i, agent_id in enumerate(decision_steps.agent_id):
+ # Reward Tracking
+ r = decision_steps[agent_id].reward
+ current_ep_reward[agent_id] += r
+
+ if agent_id not in trajectories: trajectories[agent_id] = []
+ if len(trajectories[agent_id]) > 0:
+ trajectories[agent_id][-1][4] = r
+
+ trajectories[agent_id].append([
+ curr_states[i], actions[i], log_probs[i], values[i], 0.0
+ ])
+
+ env.step()
+ next_decision_steps, next_terminal_steps = env.get_steps(behavior_name)
+
+ # Terminal Steps
+ for agent_id in next_terminal_steps.agent_id:
+ final_reward = next_terminal_steps[agent_id].reward
+
+ # Reward Tracking (End of Episode)
+ current_ep_reward[agent_id] += final_reward
+ score_history.append(current_ep_reward[agent_id])
+ current_ep_reward[agent_id] = 0.0 # Reset
+
+ if agent_id in trajectories and len(trajectories[agent_id]) > 0:
+ trajectories[agent_id][-1][4] = final_reward
+
+ traj = trajectories[agent_id]
+ states, acts, lprobs, vals, rews = zip(*traj)
+
+ vals = torch.stack(vals).squeeze()
+ if vals.dim() == 0: vals = vals.unsqueeze(0)
+
+ advs = []
+ gae = 0
+ next_val = 0
+
+ for i in reversed(range(len(rews))):
+ delta = rews[i] + GAMMA * next_val - vals[i]
+ gae = delta + GAMMA * LAMBDA * gae
+ advs.insert(0, gae)
+ next_val = vals[i]
+
+ b_states.extend(states)
+ b_actions.extend(acts)
+ b_logprobs.extend(lprobs)
+ b_advantages.extend(advs)
+ b_returns.extend([a + v.item() for a, v in zip(advs, vals)])
+
+ trajectories[agent_id] = []
+
+ decision_steps = next_decision_steps
+ terminal_steps = next_terminal_steps
+
+ if len(b_states) > BATCH_SIZE:
+ states_t = torch.stack(b_states)
+ actions_t = torch.stack(b_actions)
+ logprobs_t = torch.stack(b_logprobs)
+ advantages_t = torch.tensor(b_advantages)
+ returns_t = torch.tensor(b_returns)
+
+ # Normalize Advantages
+ advantages_t = (advantages_t - advantages_t.mean()) / (advantages_t.std() + 1e-8)
+
+ # Epoch Check
+ for _ in range(K_EPOCHS):
+ indices = torch.randperm(len(states_t))
+ for i in range(0, len(states_t), BATCH_SIZE):
+ idx = indices[i:i+BATCH_SIZE]
+ if len(idx) < BATCH_SIZE: continue
+
+ mb_states = states_t[idx]
+ mb_actions = actions_t[idx]
+ mb_logprobs = logprobs_t[idx]
+ mb_advs = advantages_t[idx]
+ mb_rets = returns_t[idx]
+
+ _, new_logprobs, entropy, new_vals = model.get_action_and_value(mb_states, mb_actions)
+
+ ratio = (new_logprobs - mb_logprobs).exp()
+ surr1 = ratio * mb_advs
+ surr2 = torch.clamp(ratio, 1.0 - EPS_CLIP, 1.0 + EPS_CLIP) * mb_advs
+
+ actor_loss = -torch.min(surr1, surr2).mean()
+ critic_loss = 0.5 * ((new_vals.squeeze() - mb_rets) ** 2).mean()
+ entropy_loss = -0.01 * entropy.mean()
+
+ loss = actor_loss + critic_loss + entropy_loss
+
+ optimizer.zero_grad()
+ loss.backward()
+ optimizer.step()
+
+ # --- Check Improvement & Save ---
+ avg_score = sum(score_history) / len(score_history) if len(score_history) > 0 else 0
+
+ if len(score_history) >= 10 and avg_score > best_score:
+ best_score = avg_score
+ save_onnx_model(f"RollerBall_PPO_Best.onnx")
+ print(f"Iteration {iteration+1} - New Best Score: {avg_score:.2f} (Saved to RollerBall_PPO_Best.onnx)")
+ else:
+ print(f"Iteration {iteration+1} - Score: {avg_score:.2f} (Best: {best_score:.2f})")
+ else:
+ print(f"Iteration {iteration+1} - 데이터 수집 중... ({len(b_states)} steps)")
+
+ print("최종 모델 저장 중...")
+ save_onnx_model("RollerBall_PPO_Final.onnx")
+ print("완료.")
+
+ except KeyboardInterrupt:
+ print("\n학습 중단됨 (KeyboardInterrupt).")
+ finally:
+ env.close()
+ print("Unity 환경 연결 해제됨.")
+
+if __name__ == "__main__":
+ main()
diff --git a/Assets/scenes/demo_Island.unity.meta b/Assets/Scripts/Connect_python/03.03.1.RollerBall.py.meta
similarity index 74%
rename from Assets/scenes/demo_Island.unity.meta
rename to Assets/Scripts/Connect_python/03.03.1.RollerBall.py.meta
index 9141298f6..5efc086a4 100644
--- a/Assets/scenes/demo_Island.unity.meta
+++ b/Assets/Scripts/Connect_python/03.03.1.RollerBall.py.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: b3bf1324da98a41e796a5881dd3812eb
+guid: 1b41bcf716b1bd343b1c19f2876102f2
DefaultImporter:
externalObjects: {}
userData:
diff --git a/Assets/Scripts/Connect_python/PositionSideChannel.cs b/Assets/Scripts/Connect_python/PositionSideChannel.cs
new file mode 100644
index 000000000..e5012bb5a
--- /dev/null
+++ b/Assets/Scripts/Connect_python/PositionSideChannel.cs
@@ -0,0 +1,99 @@
+using System;
+using System.Collections.Generic;
+using Unity.MLAgents.SideChannels;
+using UnityEngine;
+
+///
+/// Unity에서 Python으로 객체 위치 정보를 전송하는 커스텀 Side Channel
+///
+public class PositionSideChannel : SideChannel
+{
+ private Dictionary positionData = new Dictionary();
+ private object dataLock = new object();
+ private static bool hasLoggedFirstMessage = false;
+
+ public PositionSideChannel()
+ {
+ ChannelId = new Guid("621f0a70-4f87-11d2-a976-00c04f8e1488");
+ }
+
+ ///
+ /// 객체 위치를 설정
+ ///
+ public void SetPosition(string objectName, Vector3 position)
+ {
+ lock (dataLock)
+ {
+ positionData[objectName] = position;
+ }
+ }
+
+ ///
+ /// 현재 저장된 위치 데이터를 가져옴
+ ///
+ public Dictionary GetPositions()
+ {
+ lock (dataLock)
+ {
+ return new Dictionary(positionData);
+ }
+ }
+
+ ///
+ /// Python에서 Unity로 메시지를 보낼 때 사용 (현재는 불필요)
+ ///
+ protected override void OnMessageReceived(IncomingMessage msg)
+ {
+ // Python에서 Unity로 메시지를 보낼 때 사용
+ }
+
+ ///
+ /// 저장된 모든 위치 데이터를 Python으로 전송
+ ///
+ public void SendPositionsToPython()
+ {
+ lock (dataLock)
+ {
+ if (positionData.Count > 0)
+ {
+ using (var msgOut = new OutgoingMessage())
+ {
+ // 메시지 형식: [객체 개수] [객체1 이름] [x] [y] [z] [객체2 이름] [x] [y] [z] ...
+ msgOut.WriteInt32(positionData.Count);
+ foreach (var kvp in positionData)
+ {
+ msgOut.WriteString(kvp.Key);
+ msgOut.WriteFloat32(kvp.Value.x);
+ msgOut.WriteFloat32(kvp.Value.y);
+ msgOut.WriteFloat32(kvp.Value.z);
+ }
+
+ // 중요: QueueMessageToSend는 Unity ML-Agents가 env.step() 호출 시 메시지를 전송합니다.
+ // 하지만 Unity C#에서 생성한 Side Channel이 Python과 연결되지 않으면 메시지가 전달되지 않습니다.
+ QueueMessageToSend(msgOut);
+
+ // 디버깅: 첫 메시지 전송 시 로그 출력
+ if (!hasLoggedFirstMessage)
+ {
+ Debug.Log($"[PositionSideChannel] ✅ 첫 메시지 전송 시도! 객체 수: {positionData.Count}, ChannelId: {ChannelId}");
+ Debug.Log($"[PositionSideChannel] ⚠️ Python의 on_message_received가 호출되는지 확인하세요!");
+ foreach (var kvp in positionData)
+ {
+ Debug.Log($" - {kvp.Key}: ({kvp.Value.x:F2}, {kvp.Value.y:F2}, {kvp.Value.z:F2})");
+ }
+ hasLoggedFirstMessage = true;
+ }
+ }
+ }
+ else
+ {
+ // 디버깅: 데이터가 없을 때도 로그 출력
+ if (Time.frameCount % 120 == 0) // 약 2초마다
+ {
+ Debug.LogWarning($"[PositionSideChannel] 위치 데이터가 없습니다! (Count: {positionData.Count})");
+ }
+ }
+ }
+ }
+}
+
diff --git a/Assets/NavMeshComponents/Editor/NavMeshLinkEditor.cs.meta b/Assets/Scripts/Connect_python/PositionSideChannel.cs.meta
old mode 100755
new mode 100644
similarity index 69%
rename from Assets/NavMeshComponents/Editor/NavMeshLinkEditor.cs.meta
rename to Assets/Scripts/Connect_python/PositionSideChannel.cs.meta
index 7811af49e..ae1a2d061
--- a/Assets/NavMeshComponents/Editor/NavMeshLinkEditor.cs.meta
+++ b/Assets/Scripts/Connect_python/PositionSideChannel.cs.meta
@@ -1,8 +1,7 @@
fileFormatVersion: 2
-guid: ece1e865d1ad84587872fe8580ab5a20
-timeCreated: 1477036743
-licenseType: Pro
+guid: 045b868e8814c9e42b4d187a5d608a27
MonoImporter:
+ externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
diff --git a/Assets/Scripts/Connect_python/UnityPositionSender.cs b/Assets/Scripts/Connect_python/UnityPositionSender.cs
new file mode 100644
index 000000000..5f2203fc4
--- /dev/null
+++ b/Assets/Scripts/Connect_python/UnityPositionSender.cs
@@ -0,0 +1,211 @@
+using UnityEngine;
+using Unity.MLAgents;
+using Unity.MLAgents.SideChannels;
+using System.Collections;
+
+///
+/// Unity 씬의 객체 위치를 수집하여 Python으로 전송하는 스크립트
+/// 이 스크립트를 빈 GameObject에 추가하고 추적할 객체들을 설정하세요.
+///
+public class UnityPositionSender : MonoBehaviour
+{
+ [Tooltip("추적할 GameObject들 (비어있으면 자동으로 찾음)")]
+ public GameObject[] trackedObjects;
+
+ [Tooltip("위치 업데이트 간격 (초)")]
+ public float updateInterval = 0.05f; // 50ms
+
+ [Tooltip("자동으로 특정 태그를 가진 객체들을 찾을지 여부")]
+ public bool autoFindByTag = false;
+
+ [Tooltip("자동 찾기 시 사용할 태그")]
+ public string targetTag = "Untagged";
+
+ [Tooltip("자동으로 특정 타입의 컴포넌트를 가진 객체들을 찾을지 여부")]
+ public bool autoFindByComponent = false;
+
+ [Tooltip("자동 찾기 시 사용할 컴포넌트 타입 (예: Rigidbody, Collider 등)")]
+ public string componentType = "Rigidbody";
+
+ private PositionSideChannel positionChannel;
+ private float lastUpdateTime = 0f;
+ private static PositionSideChannel staticChannel; // 싱글톤 패턴
+
+ // FixedUpdate를 사용하므로 fixedTime을 사용해야 함
+
+ void Start()
+ {
+ // PositionSideChannel 초기화 (싱글톤 패턴)
+ if (staticChannel == null)
+ {
+ staticChannel = new PositionSideChannel();
+ Debug.Log($"[UnityPositionSender] PositionSideChannel 초기화 완료. ChannelId: {staticChannel.ChannelId}");
+ Debug.Log("[UnityPositionSender] Python 측에서 같은 UUID로 Side Channel을 등록했는지 확인하세요.");
+
+ // 중요: Unity ML-Agents의 Side Channel은 Python에서 등록하면 Unity가 자동으로 인식합니다.
+ // Unity C#에서는 같은 UUID로 Side Channel을 생성하고 메시지를 보내기만 하면 됩니다.
+ // 하지만 실제로는 Unity C#에서도 명시적으로 등록해야 할 수 있습니다.
+ // Academy가 초기화될 때까지 대기한 후 등록 시도
+ StartCoroutine(WaitForAcademyAndRegister());
+ }
+ positionChannel = staticChannel;
+
+ // 추적할 객체 설정
+ SetupTrackedObjects();
+
+ if (trackedObjects == null || trackedObjects.Length == 0)
+ {
+ Debug.LogWarning("[UnityPositionSender] 추적할 객체가 없습니다!");
+ }
+ else
+ {
+ Debug.Log($"[UnityPositionSender] {trackedObjects.Length}개의 객체를 추적합니다.");
+ }
+ }
+
+ void SetupTrackedObjects()
+ {
+ // 수동으로 설정된 객체가 있으면 사용
+ if (trackedObjects != null && trackedObjects.Length > 0)
+ {
+ return;
+ }
+
+ System.Collections.Generic.List foundObjects =
+ new System.Collections.Generic.List();
+
+ // 태그로 찾기
+ if (autoFindByTag && !string.IsNullOrEmpty(targetTag))
+ {
+ GameObject[] taggedObjects = GameObject.FindGameObjectsWithTag(targetTag);
+ foundObjects.AddRange(taggedObjects);
+ Debug.Log($"[UnityPositionSender] 태그 '{targetTag}'로 {taggedObjects.Length}개 객체 발견");
+ }
+
+ // 컴포넌트로 찾기
+ if (autoFindByComponent && !string.IsNullOrEmpty(componentType))
+ {
+ System.Type compType = System.Type.GetType(componentType);
+ if (compType == null)
+ {
+ // Unity 네임스페이스에서 찾기 시도
+ compType = System.Type.GetType($"UnityEngine.{componentType}");
+ }
+
+ if (compType != null)
+ {
+ // FindObjectsOfType의 제네릭 버전 사용 또는 명시적 캐스팅
+ Object[] foundComponents = FindObjectsOfType(compType);
+ foreach (Object obj in foundComponents)
+ {
+ Component comp = obj as Component;
+ if (comp != null && comp.gameObject != null)
+ {
+ foundObjects.Add(comp.gameObject);
+ }
+ }
+ Debug.Log($"[UnityPositionSender] 컴포넌트 '{componentType}'로 {foundComponents.Length}개 객체 발견");
+ }
+ else
+ {
+ Debug.LogWarning($"[UnityPositionSender] 컴포넌트 타입 '{componentType}'를 찾을 수 없습니다.");
+ }
+ }
+
+ // 기본값: 씬의 모든 활성 GameObject 찾기 (선택사항)
+ if (foundObjects.Count == 0 && !autoFindByTag && !autoFindByComponent)
+ {
+ Debug.Log("[UnityPositionSender] 추적할 객체를 수동으로 설정하거나 자동 찾기 옵션을 활성화하세요.");
+ }
+
+ trackedObjects = foundObjects.ToArray();
+ }
+
+ void FixedUpdate()
+ {
+ // FixedUpdate 사용: ML-Agents의 물리 엔진 주기와 동기화
+ // Update() 대신 FixedUpdate()를 사용하면 데드락 문제를 피할 수 있음
+ if (positionChannel == null)
+ {
+ return;
+ }
+
+ // 업데이트 간격 체크
+ if (Time.fixedTime - lastUpdateTime < updateInterval)
+ {
+ return;
+ }
+ lastUpdateTime = Time.fixedTime;
+
+ // 각 객체의 위치 수집
+ int validObjectCount = 0;
+ foreach (GameObject obj in trackedObjects)
+ {
+ if (obj == null)
+ {
+ continue;
+ }
+
+ Vector3 position = obj.transform.position;
+ string key = obj.name;
+
+ // 위치 데이터 설정
+ positionChannel.SetPosition(key, position);
+ validObjectCount++;
+ }
+
+ // 디버깅: 주기적으로 로그 출력
+ if (Time.frameCount % 120 == 0) // 약 2초마다 (60fps 기준)
+ {
+ Debug.Log($"[UnityPositionSender] 추적 중인 객체 수: {validObjectCount}, 총 객체 수: {trackedObjects?.Length ?? 0}");
+ }
+
+ // 모든 위치 데이터를 Python으로 전송
+ if (positionChannel != null && validObjectCount > 0)
+ {
+ positionChannel.SendPositionsToPython();
+ }
+ }
+
+ private IEnumerator WaitForAcademyAndRegister()
+ {
+ // Academy가 초기화될 때까지 대기
+ int maxWaitFrames = 120; // 최대 2초 대기 (60fps 기준)
+ int frameCount = 0;
+
+ while (Academy.Instance == null && frameCount < maxWaitFrames)
+ {
+ yield return null;
+ frameCount++;
+ }
+
+ if (Academy.Instance != null)
+ {
+ Debug.Log("[UnityPositionSender] Academy 인스턴스 확인 완료.");
+
+ // Unity ML-Agents의 Side Channel은 Python에서 등록하면 Unity가 자동으로 인식합니다.
+ // Unity C#에서는 같은 UUID로 Side Channel을 생성하고 메시지를 보내기만 하면 됩니다.
+ // 하지만 실제로는 Unity C#에서도 명시적으로 등록해야 할 수 있습니다.
+ // 현재 Unity ML-Agents 버전에서는 Academy.SideChannels가 없으므로,
+ // Python 측에서 등록한 Side Channel을 Unity가 자동으로 인식하는지 확인해야 합니다.
+
+ Debug.Log($"[UnityPositionSender] Side Channel 등록 상태 확인:");
+ Debug.Log($" - ChannelId: {staticChannel.ChannelId}");
+ Debug.Log($" - Python 측 UUID와 일치하는지 확인: 621f0a70-4f87-11d2-a976-00c04f8e1488");
+ }
+ else
+ {
+ Debug.LogWarning("[UnityPositionSender] Academy 인스턴스를 찾을 수 없습니다. ML-Agents Academy가 씬에 있는지 확인하세요.");
+ }
+ }
+
+ void OnDestroy()
+ {
+ // Side Channel 정리
+ // Unity ML-Agents는 Python 연결이 끊기면 자동으로 처리됩니다.
+ if (staticChannel != null && positionChannel == staticChannel)
+ {
+ staticChannel = null;
+ }
+ }
+}
diff --git a/Assets/NavMeshComponents/Editor/NavMeshComponentsGUIUtility.cs.meta b/Assets/Scripts/Connect_python/UnityPositionSender.cs.meta
old mode 100755
new mode 100644
similarity index 69%
rename from Assets/NavMeshComponents/Editor/NavMeshComponentsGUIUtility.cs.meta
rename to Assets/Scripts/Connect_python/UnityPositionSender.cs.meta
index 2f296208a..f0b0e92ef
--- a/Assets/NavMeshComponents/Editor/NavMeshComponentsGUIUtility.cs.meta
+++ b/Assets/Scripts/Connect_python/UnityPositionSender.cs.meta
@@ -1,8 +1,7 @@
fileFormatVersion: 2
-guid: 77fba670b979046f18d52d751e0d4659
-timeCreated: 1480524815
-licenseType: Pro
+guid: 01fe9c6492fbb934ab05a44a04e9ecb3
MonoImporter:
+ externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
diff --git a/Assets/Scripts/Connect_python/activate_venv.bat b/Assets/Scripts/Connect_python/activate_venv.bat
new file mode 100644
index 000000000..5a4661b06
--- /dev/null
+++ b/Assets/Scripts/Connect_python/activate_venv.bat
@@ -0,0 +1,17 @@
+@echo off
+REM 가상환경 활성화 스크립트 (Windows Batch)
+
+cd /d "%~dp0"
+
+if not exist "venv" (
+ echo 오류: 가상환경이 존재하지 않습니다.
+ echo 먼저 setup_venv.bat을 실행하여 가상환경을 생성하세요.
+ pause
+ exit /b 1
+)
+
+call venv\Scripts\activate.bat
+
+echo 가상환경이 활성화되었습니다.
+echo.
+
diff --git a/Assets/Scripts/Connect_python/activate_venv.bat.meta b/Assets/Scripts/Connect_python/activate_venv.bat.meta
new file mode 100644
index 000000000..6803f2a38
--- /dev/null
+++ b/Assets/Scripts/Connect_python/activate_venv.bat.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 3878d3c304ab94543a692c790980e52b
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Connect_python/activate_venv.ps1 b/Assets/Scripts/Connect_python/activate_venv.ps1
new file mode 100644
index 000000000..3b0c10eef
--- /dev/null
+++ b/Assets/Scripts/Connect_python/activate_venv.ps1
@@ -0,0 +1,15 @@
+# 가상환경 활성화 스크립트 (PowerShell)
+
+Set-Location $PSScriptRoot
+
+if (-not (Test-Path "venv")) {
+ Write-Host "오류: 가상환경이 존재하지 않습니다." -ForegroundColor Red
+ Write-Host "먼저 setup_venv.ps1을 실행하여 가상환경을 생성하세요." -ForegroundColor Yellow
+ exit 1
+}
+
+& "venv\Scripts\Activate.ps1"
+
+Write-Host "가상환경이 활성화되었습니다." -ForegroundColor Green
+Write-Host ""
+
diff --git a/Assets/Scripts/Connect_python/activate_venv.ps1.meta b/Assets/Scripts/Connect_python/activate_venv.ps1.meta
new file mode 100644
index 000000000..93cb37d39
--- /dev/null
+++ b/Assets/Scripts/Connect_python/activate_venv.ps1.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 823899e54831dd649995ccf1f5e982c0
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Connect_python/realtime_position_plotter.py b/Assets/Scripts/Connect_python/realtime_position_plotter.py
new file mode 100644
index 000000000..28747cc4f
--- /dev/null
+++ b/Assets/Scripts/Connect_python/realtime_position_plotter.py
@@ -0,0 +1,512 @@
+"""
+Unity 실행 중인 객체들의 위치를 실시간으로 plot하는 스크립트
+"""
+
+import numpy as np
+import matplotlib.pyplot as plt
+import matplotlib.animation as animation
+import matplotlib.font_manager as fm
+from mlagents_envs.environment import UnityEnvironment
+from mlagents_envs.side_channel.side_channel import SideChannel, IncomingMessage
+import uuid
+import threading
+import time
+import warnings
+
+class PositionSideChannel(SideChannel):
+ """Unity에서 위치 정보를 받는 커스텀 Side Channel"""
+
+ def __init__(self):
+ super().__init__(uuid.UUID("621f0a70-4f87-11d2-a976-00c04f8e1488"))
+ self.position_data = {}
+ self.lock = threading.Lock()
+
+ def on_message_received(self, msg: IncomingMessage) -> None:
+ """Unity에서 메시지를 받을 때 호출됨 - 이 함수가 호출되는지 확인!"""
+ print(f"🔔 [PositionSideChannel] on_message_received 호출됨!") # 무조건 출력
+ try:
+ with self.lock:
+ # 메시지 형식: [객체 개수] [객체1 이름] [x] [y] [z] [객체2 이름] [x] [y] [z] ...
+ count = msg.read_int32()
+ print(f"🔔 [PositionSideChannel] 메시지에서 읽은 객체 수: {count}")
+
+ self.position_data = {}
+ for i in range(count):
+ obj_name = msg.read_string()
+ x = msg.read_float32()
+ y = msg.read_float32()
+ z = msg.read_float32()
+ self.position_data[obj_name] = (x, y, z)
+ print(f"🔔 [PositionSideChannel] 객체 {i+1}: {obj_name} = ({x:.2f}, {y:.2f}, {z:.2f})")
+
+ # 디버깅: 첫 메시지 수신 시 로그 출력
+ if count > 0 and not hasattr(self, '_first_message_logged'):
+ print(f"[PositionSideChannel] ✅ 첫 메시지 수신! 객체 수: {count}")
+ for name, pos in self.position_data.items():
+ print(f" - {name}: ({pos[0]:.2f}, {pos[1]:.2f}, {pos[2]:.2f})")
+ self._first_message_logged = True
+ elif count > 0:
+ # 주기적으로 메시지 수신 확인
+ if not hasattr(self, '_message_count'):
+ self._message_count = 0
+ self._message_count += 1
+ if self._message_count % 60 == 0: # 약 3초마다
+ print(f"[PositionSideChannel] 메시지 수신 중... (총 {self._message_count}개, 현재 객체 수: {count})")
+ except Exception as e:
+ print(f"❌ PositionSideChannel 메시지 수신 오류: {e}")
+ print(f" 메시지 타입: {type(msg)}")
+ print(f" 메시지 속성: {dir(msg)}")
+ import traceback
+ traceback.print_exc()
+
+ def get_positions(self):
+ """현재 위치 데이터를 안전하게 반환"""
+ with self.lock:
+ return dict(self.position_data)
+
+
+class UnityPositionPlotter:
+ """Unity 객체 위치를 실시간으로 plot하는 클래스"""
+
+ def __init__(self, port=5004, update_interval=50):
+ """
+ Args:
+ port: Unity ML-Agents 연결 포트
+ update_interval: 그래프 업데이트 간격 (밀리초)
+ """
+ self.port = port
+ self.update_interval = update_interval
+ self.env = None
+
+ # Side Channel 생성 (UnityEnvironment 생성 전에 반드시 생성해야 함)
+ self.position_channel = PositionSideChannel()
+ print(f"[초기화] PositionSideChannel 생성 완료. UUID: {self.position_channel.channel_id}")
+
+ self.behavior_name = None
+
+ # Plot 관련 변수
+ self.fig = None
+ self.ax = None
+ self.positions_history = {} # {객체명: [(x, z), ...]}
+ self.max_history = 100 # 최대 저장할 위치 개수
+
+ # 성능 최적화: Line2D 객체들을 미리 생성
+ self.trajectory_lines = {} # {객체명: Line2D} - 궤적 선
+ self.marker_points = {} # {객체명: Line2D} - 현재 위치 마커
+ self.legend_handles = [] # 범례 핸들
+ self.colors = None # 색상 배열
+
+ # Unity 환경 스텝을 별도 스레드에서 실행
+ self.env_thread = None
+ self.running = False
+ self.env_lock = threading.Lock()
+
+ def connect_unity(self, timeout=60, max_retries=3):
+ """Unity 환경에 연결 (재시도 로직 포함)"""
+ print(f"Unity 환경에 연결 중... (포트: {self.port})")
+ print("주의: Unity 에디터에서 Play 버튼을 누른 후 Python 스크립트를 실행하세요!")
+ print("또는 Python 스크립트를 먼저 실행한 후 Unity에서 Play 버튼을 누르세요.")
+
+ for attempt in range(max_retries):
+ try:
+ print(f"\n연결 시도 {attempt + 1}/{max_retries}...")
+
+ # UnityEnvironment 생성 (타임아웃 설정)
+ # 중요: side_channels는 UnityEnvironment 생성 시 반드시 전달해야 함
+ # 생성 후에 등록하면 인식되지 않음!
+ print(f"[연결] UnityEnvironment 생성 중... Side Channel UUID: {self.position_channel.channel_id}")
+ self.env = UnityEnvironment(
+ file_name=None,
+ base_port=self.port,
+ side_channels=[self.position_channel], # 생성 시점에 전달 필수!
+ timeout_wait=timeout
+ )
+
+ print("✅ UnityEnvironment 생성 완료.")
+ print(f" → Side Channel이 UnityEnvironment에 등록되었습니다.")
+ print(" → Unity 연결 대기 중...")
+ print("\n ⚠️ 중요: Unity 설정 확인!")
+ print(" Unity 씬에 다음이 있는지 확인하세요:")
+ print(" 1. ML-Agents Academy GameObject")
+ print(" 2. Agent GameObject (Behavior Parameters 포함)")
+ print(" 3. Unity에서 Play 버튼 클릭")
+ print(" 4. Unity Console에 에러가 없는지 확인")
+ print(f"\n → Unity 초기화 응답 대기 중... (최대 {timeout}초)")
+ print(" Unity가 응답하지 않으면 타임아웃 후 재시도합니다...")
+
+ # reset() 호출로 초기화 (이 부분에서 Unity 응답을 기다림)
+ # 타임아웃은 UnityEnvironment 생성 시 설정한 timeout_wait를 사용
+ try:
+ print(" → env.reset() 시도 중... Unity 에디터가 Play 상태여야 합니다.")
+ self.env.reset()
+ print(" ✅ Unity 초기화 완료!")
+ print(f" → PositionSideChannel UUID: {self.position_channel.channel_id}")
+
+ # 중요: reset() 직후 강제로 한 스텝 진행해서 데이터 흐름 물꼬 트기
+ # 이렇게 하면 Unity의 Side Channel 메시지가 Python으로 전달됨
+ print(" → 데이터 흐름 시작을 위해 env.step() 호출 중...")
+ self.env.step()
+ print(" ✅ 초기 스텝 완료!")
+ except Exception as reset_error:
+ error_str = str(reset_error)
+ print(f"\n ❌ Unity 초기화 실패: {error_str}")
+
+ # 더 자세한 에러 메시지 제공
+ if "timeout" in error_str.lower() or "took too long" in error_str.lower():
+ print("\n 🔍 타임아웃 원인 분석:")
+ print(" Unity가 Python에 연결하지 못했습니다.")
+ print("\n 📋 확인 체크리스트:")
+ print(" □ Unity에서 Play 버튼을 눌렀나요?")
+ print(" □ Unity 씬에 ML-Agents Academy가 있나요?")
+ print(" □ Unity 씬에 Agent가 있나요?")
+ print(" □ Agent에 Behavior Parameters 컴포넌트가 있나요?")
+ print(" □ Unity Console에 에러 메시지가 있나요?")
+ print(" □ 포트 5004가 다른 프로그램에 의해 사용 중인가요?")
+ raise Exception(
+ f"Unity 응답 타임아웃 ({timeout}초 초과).\n"
+ "Unity가 Python에 연결하지 못했습니다.\n"
+ "자세한 내용은 UNITY_SETUP_CHECK.md 파일을 참고하세요."
+ )
+ else:
+ raise Exception(f"Unity 초기화 실패: {reset_error}")
+
+ # Behavior 이름 가져오기
+ if len(self.env.behavior_specs) == 0:
+ raise Exception("Behavior가 없습니다. Unity 씬에 Agent가 있는지 확인하세요.")
+
+ self.behavior_name = list(self.env.behavior_specs)[0]
+ print(f"✅ 연결 성공! Behavior: {self.behavior_name}")
+ print(" → 그래프 창을 여는 중...")
+ return True
+
+ except Exception as e:
+ error_msg = str(e)
+ print(f"❌ 연결 실패 (시도 {attempt + 1}/{max_retries}): {error_msg}")
+
+ if attempt < max_retries - 1:
+ wait_time = 2 * (attempt + 1) # 2초, 4초, 6초...
+ print(f"{wait_time}초 후 재시도...")
+ time.sleep(wait_time)
+ else:
+ print("\n" + "="*60)
+ print("❌ 연결 실패 원인 진단:")
+ print("="*60)
+ print("\n[필수 확인 사항]")
+ print("1. Unity 에디터가 실행 중인가요?")
+ print("2. Unity에서 Play 버튼을 눌렀나요? (Play 모드가 활성화되어야 함)")
+ print("3. Unity 씬에 ML-Agents Academy가 있나요?")
+ print(" → Hierarchy에서 'Academy' 또는 'ML-Agents' GameObject 확인")
+ print("4. Unity 씬에 Agent가 있나요?")
+ print(" → Hierarchy에서 Agent GameObject 확인")
+ print("5. Agent에 Behavior Parameters 컴포넌트가 있나요?")
+ print(" → Agent 선택 → Inspector에서 'Behavior Parameters' 확인")
+ print("\n[추가 확인 사항]")
+ print(f"6. 포트 {self.port}가 다른 프로그램에 의해 사용 중인가요?")
+ print(" → PowerShell에서 확인: netstat -ano | findstr :5004")
+ print("7. Unity Console에 에러 메시지가 있나요?")
+ print(" → Unity Console 창 확인 (Window → General → Console)")
+ print("\n[Unity Console에서 확인할 메시지]")
+ print(" ✅ '[UnityPositionSender] PositionSideChannel 초기화 완료'")
+ print(" ✅ ML-Agents 관련 에러 메시지")
+ print("="*60)
+
+ # 이전 연결 시도 정리
+ if self.env is not None:
+ try:
+ self.env.close()
+ except:
+ pass
+ self.env = None
+
+ return False
+
+ return False
+
+ def setup_plot(self):
+ """matplotlib 그래프 설정"""
+ self.fig, self.ax = plt.subplots(figsize=(10, 10))
+ self.ax.set_xlabel('X 위치', fontsize=12)
+ self.ax.set_ylabel('Z 위치', fontsize=12)
+ self.ax.set_title('Unity 객체 위치 실시간 추적', fontsize=14)
+ self.ax.grid(True, alpha=0.3)
+ self.ax.set_aspect('equal', adjustable='box')
+
+ # 한글 폰트 설정 (Windows)
+ # tkinter 폰트 경고 억제
+ warnings.filterwarnings('ignore', category=UserWarning, module='tkinter')
+
+ # 한글 폰트 찾기 및 설정
+ korean_fonts = ['Malgun Gothic', 'NanumGothic', 'Nanum Gothic', 'Gulim', 'Batang']
+ font_found = False
+
+ for font_name in korean_fonts:
+ try:
+ # 폰트가 시스템에 있는지 확인
+ font_list = [f.name for f in fm.fontManager.ttflist]
+ if font_name in font_list:
+ plt.rcParams['font.family'] = font_name
+ font_found = True
+ break
+ except:
+ continue
+
+ if not font_found:
+ # 기본 폰트로 폴백
+ plt.rcParams['font.family'] = 'DejaVu Sans'
+
+ plt.rcParams['axes.unicode_minus'] = False
+
+ # 초기 빈 데이터로 Line2D 객체들 생성 (성능 최적화)
+ # 실제 데이터가 들어오면 set_data()로 업데이트만 하면 됨
+ self.trajectory_lines = {}
+ self.marker_points = {}
+ self.legend_handles = []
+
+ def _unity_step_loop(self):
+ """Unity 환경 스텝을 별도 스레드에서 실행 (GUI 블로킹 방지)"""
+ step_count = 0
+ last_position_count = 0
+
+ while self.running:
+ try:
+ with self.env_lock:
+ if self.env is not None and self.behavior_name is not None:
+ # Unity 환경 스텝 진행
+ # 주의: Behavior Type이 "Heuristic Only"면 행동을 보내지 않아도 됩니다.
+ self.env.step()
+ step_count += 1
+
+ # Side Channel 메시지 처리 확인
+ current_positions = self.position_channel.get_positions()
+ current_count = len(current_positions)
+
+ # 디버깅: 주기적으로 스텝 수 및 위치 데이터 출력
+ if step_count % 60 == 0: # 약 3초마다
+ print(f"[디버그] Unity 스텝 진행 중... (총 {step_count} 스텝)")
+ print(f"[디버그] 현재 위치 데이터 개수: {current_count}")
+ if current_count > 0:
+ print(f"[디버그] 위치 데이터 샘플: {list(current_positions.items())[:2]}")
+ elif last_position_count > 0:
+ print(f"⚠️ [경고] 이전에는 {last_position_count}개였는데 지금은 0개입니다!")
+
+ last_position_count = current_count
+
+ time.sleep(0.02) # 약 50 FPS (Unity와 동기화)
+ except Exception as e:
+ if self.running: # 종료 중이 아닐 때만 에러 출력
+ print(f"Unity 스텝 오류: {e}")
+ import traceback
+ traceback.print_exc()
+ break
+
+ def update_plot(self, frame):
+ """그래프 업데이트 함수 (animation callback) - 성능 최적화 버전"""
+ if self.env is None:
+ return
+
+ try:
+ # Side Channel에서 위치 데이터 읽기 (스레드 안전)
+ positions = self.position_channel.get_positions()
+
+ # 디버깅: 위치 데이터 확인
+ if frame % 60 == 0: # 약 3초마다 출력
+ print(f"[디버그] 받은 위치 데이터 개수: {len(positions)}")
+ if len(positions) > 0:
+ print(f"[디버그] 위치 데이터 샘플: {list(positions.items())[:3]}")
+
+ # 위치 히스토리 업데이트
+ for obj_name, (x, y, z) in positions.items():
+ if obj_name not in self.positions_history:
+ self.positions_history[obj_name] = []
+
+ # XZ 평면에 투영 (Unity는 Y가 위쪽)
+ self.positions_history[obj_name].append((x, z))
+
+ # 최대 개수 제한
+ if len(self.positions_history[obj_name]) > self.max_history:
+ self.positions_history[obj_name].pop(0)
+
+ # 색상 배열 업데이트 (새 객체가 추가되었을 때)
+ if len(self.positions_history) > 0:
+ if self.colors is None or len(self.colors) < len(self.positions_history):
+ self.colors = plt.cm.tab10(np.linspace(0, 1, len(self.positions_history)))
+
+ # set_data() 방식으로 업데이트 (성능 최적화)
+ # 기존 Line2D 객체의 데이터만 업데이트하므로 ax.clear()보다 훨씬 빠름
+ active_objects = []
+
+ for idx, (obj_name, history) in enumerate(self.positions_history.items()):
+ if len(history) == 0:
+ continue
+
+ active_objects.append(obj_name)
+ xs, zs = zip(*history)
+ color = self.colors[idx] if self.colors is not None else 'blue'
+
+ # 궤적 선 업데이트 또는 생성
+ if obj_name not in self.trajectory_lines:
+ line, = self.ax.plot([], [], '-', color=color, alpha=0.5, linewidth=1)
+ self.trajectory_lines[obj_name] = line
+
+ self.trajectory_lines[obj_name].set_data(xs, zs)
+
+ # 현재 위치 마커 업데이트 또는 생성
+ if obj_name not in self.marker_points:
+ marker, = self.ax.plot([], [], 'o', color=color, markersize=8, label=obj_name)
+ self.marker_points[obj_name] = marker
+
+ self.marker_points[obj_name].set_data([xs[-1]], [zs[-1]])
+ self.marker_points[obj_name].set_color(color)
+
+ # 사용하지 않는 객체의 Line2D 제거
+ for obj_name in list(self.trajectory_lines.keys()):
+ if obj_name not in active_objects:
+ self.trajectory_lines[obj_name].remove()
+ del self.trajectory_lines[obj_name]
+ if obj_name in self.marker_points:
+ self.marker_points[obj_name].remove()
+ del self.marker_points[obj_name]
+
+ # 축 범위 자동 조정
+ if active_objects:
+ all_xs = []
+ all_zs = []
+ for obj_name in active_objects:
+ if obj_name in self.positions_history and len(self.positions_history[obj_name]) > 0:
+ xs, zs = zip(*self.positions_history[obj_name])
+ all_xs.extend(xs)
+ all_zs.extend(zs)
+
+ if all_xs and all_zs:
+ margin = 0.1 # 10% 여백
+ x_range = max(all_xs) - min(all_xs) if len(set(all_xs)) > 1 else 1.0
+ z_range = max(all_zs) - min(all_zs) if len(set(all_zs)) > 1 else 1.0
+
+ self.ax.set_xlim(min(all_xs) - x_range * margin, max(all_xs) + x_range * margin)
+ self.ax.set_ylim(min(all_zs) - z_range * margin, max(all_zs) + z_range * margin)
+
+ # 타이틀 업데이트
+ title = f'Unity 객체 위치 실시간 추적 (객체 수: {len(active_objects)})'
+ self.ax.set_title(title, fontsize=14)
+
+ # 범례 업데이트
+ if active_objects:
+ handles = [self.marker_points[obj_name] for obj_name in active_objects if obj_name in self.marker_points]
+ if handles:
+ self.ax.legend(handles, active_objects, loc='upper right', fontsize=8)
+ else:
+ # 데이터가 없을 때 메시지 표시
+ if not hasattr(self, '_waiting_text') or self._waiting_text is None:
+ self._waiting_text = self.ax.text(0.5, 0.5,
+ '위치 데이터를 기다리는 중...\nUnity에서 객체를 추적하고 있는지 확인하세요.',
+ ha='center', va='center', transform=self.ax.transAxes, fontsize=12)
+ elif active_objects:
+ self._waiting_text.remove()
+ self._waiting_text = None
+
+ except Exception as e:
+ print(f"업데이트 오류: {e}")
+ import traceback
+ traceback.print_exc()
+
+ def start_plotting(self):
+ """실시간 plotting 시작"""
+ if self.env is None:
+ print("Unity에 연결되지 않았습니다!")
+ return
+
+ print("\n그래프 설정 중...")
+ self.setup_plot()
+ print(" → 그래프 창 준비 완료")
+
+ # Unity 환경 스텝을 별도 스레드에서 실행 (GUI 블로킹 방지)
+ self.running = True
+ self.env_thread = threading.Thread(target=self._unity_step_loop, daemon=True)
+ self.env_thread.start()
+ print(" → Unity 환경 스텝 스레드 시작됨 (GUI 블로킹 방지)")
+
+ print("\n" + "="*60)
+ print("✅ 실시간 plotting 시작!")
+ print("="*60)
+ print("그래프 창이 곧 열립니다...")
+ print("종료하려면 그래프 창을 닫으세요.")
+ print("="*60 + "\n")
+
+ # Animation 시작
+ ani = animation.FuncAnimation(
+ self.fig,
+ self.update_plot,
+ interval=self.update_interval,
+ blit=False, # set_data() 사용 시 blit=False 권장
+ cache_frame_data=False
+ )
+
+ # matplotlib 창 표시 (블로킹)
+ plt.show()
+
+ # 창이 닫히면 스레드 종료
+ print("\n그래프 창이 닫혔습니다. 종료 중...")
+ self.running = False
+
+ def cleanup(self):
+ """리소스 정리"""
+ # Unity 스텝 스레드 종료
+ self.running = False
+ if self.env_thread is not None:
+ self.env_thread.join(timeout=2.0) # 최대 2초 대기
+
+ # Unity 환경 종료
+ if self.env is not None:
+ with self.env_lock:
+ self.env.close()
+ print("Unity 연결 해제됨")
+
+
+def main():
+ """메인 함수"""
+ import argparse
+
+ parser = argparse.ArgumentParser(description='Unity 객체 위치 실시간 plot')
+ parser.add_argument('--port', type=int, default=5004, help='Unity ML-Agents 포트 (기본: 5004)')
+ parser.add_argument('--interval', type=int, default=50, help='업데이트 간격(ms) (기본: 50)')
+ parser.add_argument('--timeout', type=int, default=60, help='연결 타임아웃(초) (기본: 60)')
+ parser.add_argument('--retries', type=int, default=3, help='최대 재시도 횟수 (기본: 3)')
+ args = parser.parse_args()
+
+ print("="*60)
+ print("Unity 객체 위치 실시간 Plotter")
+ print("="*60)
+ print("\n사용 방법:")
+ print("방법 1: Python 스크립트를 먼저 실행한 후 Unity에서 Play 버튼 클릭")
+ print("방법 2: Unity에서 Play 버튼을 먼저 누른 후 Python 스크립트 실행")
+ print("\n연결을 기다리는 중...")
+ print("="*60 + "\n")
+
+ plotter = UnityPositionPlotter(port=args.port, update_interval=args.interval)
+
+ if not plotter.connect_unity(timeout=args.timeout, max_retries=args.retries):
+ print("\n❌ Unity 연결에 실패했습니다.")
+ print("\n문제 해결 체크리스트:")
+ print(" □ Unity 에디터가 실행 중인가요?")
+ print(" □ Unity에서 Play 버튼을 눌렀나요?")
+ print(" □ Unity 씬에 ML-Agents Academy가 있나요?")
+ print(" □ Unity 씬에 Agent가 있나요?")
+ print(" □ Agent의 Behavior Parameters가 올바르게 설정되어 있나요?")
+ print(" □ 포트 5004가 다른 프로그램에 의해 사용 중이 아닌가요?")
+ print("\nUnity Console의 에러 메시지를 확인하세요.")
+ return
+
+ try:
+ plotter.start_plotting()
+ except KeyboardInterrupt:
+ print("\n사용자에 의해 중단되었습니다.")
+ except Exception as e:
+ print(f"\n오류 발생: {e}")
+ import traceback
+ traceback.print_exc()
+ finally:
+ plotter.cleanup()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/Assets/Scripts/Connect_python/realtime_position_plotter.py.meta b/Assets/Scripts/Connect_python/realtime_position_plotter.py.meta
new file mode 100644
index 000000000..7b51dfde1
--- /dev/null
+++ b/Assets/Scripts/Connect_python/realtime_position_plotter.py.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0c8c52c352b090d4c88f711a40e03293
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Connect_python/venv.meta b/Assets/Scripts/Connect_python/venv.meta
new file mode 100644
index 000000000..ed6f2fcfd
--- /dev/null
+++ b/Assets/Scripts/Connect_python/venv.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 44a0f2166e3fb1140941d7b444d98e5c
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense.meta b/Assets/Scripts/Defense.meta
new file mode 100644
index 000000000..3ec499644
--- /dev/null
+++ b/Assets/Scripts/Defense.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: d73691185f73e5c4b9ab2272d378cac5
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/Defence.onnx b/Assets/Scripts/Defense/Defence.onnx
new file mode 100644
index 000000000..f139ac9e3
Binary files /dev/null and b/Assets/Scripts/Defense/Defence.onnx differ
diff --git a/Assets/Scripts/Defense/Defence.onnx.meta b/Assets/Scripts/Defense/Defence.onnx.meta
new file mode 100644
index 000000000..cee0c8bc0
--- /dev/null
+++ b/Assets/Scripts/Defense/Defence.onnx.meta
@@ -0,0 +1,16 @@
+fileFormatVersion: 2
+guid: bd45346d45aae2b4a8427413273c7d98
+ScriptedImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 2
+ userData:
+ assetBundleName:
+ assetBundleVariant:
+ script: {fileID: 11500000, guid: 683b6cb6d0a474744822c888b46772c9, type: 3}
+ optimizeModel: 1
+ forceArbitraryBatchSize: 1
+ treatErrorsAsWarnings: 0
+ importMode: 1
+ weightsTypeMode: 0
+ activationTypeMode: 0
diff --git a/Assets/Scripts/Defense/DefenseEnvController.cs b/Assets/Scripts/Defense/DefenseEnvController.cs
new file mode 100644
index 000000000..3e33aee7a
--- /dev/null
+++ b/Assets/Scripts/Defense/DefenseEnvController.cs
@@ -0,0 +1,2075 @@
+using UnityEngine;
+using Unity.MLAgents;
+using Cinemachine;
+using System.Linq;
+
+namespace BoatAttack
+{
+ ///
+ /// 커리큘럼 학습 단계
+ ///
+ public enum TrainingStage
+ {
+ Stage1_Formation, // 대형 유지 학습
+ Stage2_Capture, // 포획 보상 학습
+ Stage3_Tactical // 전술 기동 학습
+ }
+
+ ///
+ /// 방어 환경 컨트롤러 (중앙 허브 버전)
+ /// - 모든 에피소드 재시작 로직을 중앙에서 관리
+ /// - 그룹 보상 분배 및 환경 관리
+ /// - 선박 위치 리셋 및 적군 추적
+ /// - 에피소드 시작/종료 관리
+ /// - 커리큘럼 학습 단계별 보상 제어
+ ///
+ public class DefenseEnvController : MonoBehaviour
+ {
+ [Header("Training Stage")]
+ [Tooltip("현재 학습 단계 (Stage1: 대형유지, Stage2: 포획, Stage3: 전술기동)")]
+ public TrainingStage currentStage = TrainingStage.Stage1_Formation;
+
+ [Tooltip("Stage1에서 적군 비활성화")]
+ public bool disableEnemiesInStage1 = true;
+
+ [Tooltip("Stage1에서 활성화할 적군 수 (disableEnemiesInStage1이 false일 때)")]
+ [Range(0, 5)]
+ public int stage1EnemyCount = 0;
+
+ [Tooltip("Stage2에서 활성화할 적군 수")]
+ [Range(1, 5)]
+ public int stage2EnemyCount = 1;
+
+ [Tooltip("Stage3에서 활성화할 적군 수")]
+ [Range(1, 5)]
+ public int stage3EnemyCount = 1;
+
+ [Header("Agents")]
+ [Tooltip("방어 에이전트 1")]
+ public DefenseAgent defenseAgent1;
+
+ [Tooltip("방어 에이전트 2")]
+ public DefenseAgent defenseAgent2;
+
+ [Header("Components")]
+ [Tooltip("SimpleMultiAgentGroup (선택사항 - 없으면 개별 보상으로 fallback)")]
+ public SimpleMultiAgentGroup m_AgentGroup;
+
+ [Tooltip("보상 계산기")]
+ public DefenseRewardCalculator rewardCalculator;
+
+ [Header("Settings")]
+ [Tooltip("보상 계산 주기 (프레임 단위, 1 = 매 프레임)")]
+ public int rewardCalculationInterval = 1;
+
+ [Tooltip("최대 환경 스텝 수 (에피소드가 이 스텝 수에 도달하면 자동 종료)")]
+ public int maxEnvironmentSteps = 5000;
+
+ [Tooltip("모선 참조")]
+ public GameObject motherShip;
+
+ [Tooltip("적군 선박들")]
+ public GameObject[] enemyShips = new GameObject[5];
+
+ [Tooltip("Web 오브젝트")]
+ public GameObject webObject;
+
+ [Header("Spawn Positions")]
+ [Tooltip("방어 선박 1 초기 위치")]
+ public Vector3 defense1SpawnPos = new Vector3(-115f, -8f, -10f);
+
+ [Tooltip("방어 선박 1 초기 각도 (Euler 각도)")]
+ public Vector3 defense1SpawnRot = new Vector3(0f, 0f, 0f);
+
+ [Tooltip("방어 선박 2 초기 위치")]
+ public Vector3 defense2SpawnPos = new Vector3(0f, -8f, -6f);
+
+ [Tooltip("방어 선박 2 초기 각도 (Euler 각도)")]
+ public Vector3 defense2SpawnRot = new Vector3(0f, 0f, 0f);
+
+ [Tooltip("Web 오브젝트 위치 (2대 중간)")]
+ public Vector3 webSpawnPos = new Vector3(0f, 0.8f, 0f);
+
+ [Header("Episode End Conditions")]
+ [Tooltip("Web/MotherShip 충돌 최대 허용 횟수 (이 횟수 이상 충돌 시 에피소드 종료)")]
+ public int maxCollisionCount = 1;
+
+ [Header("Random Spawn Settings")]
+ [Tooltip("랜덤 스폰 범위 (기존 위치에서 반경 내 원형 영역)")]
+ public float spawnRange = 30f;
+
+ [Tooltip("랜덤 스폰 활성화 (에피소드 시작 시 랜덤 위치로 재생성)")]
+ public bool enableRandomSpawn = true;
+
+ [Tooltip("아군 선박 랜덤 시작 각도 범위 (±도)")]
+ public float defenseRandomAngleRange = 30f;
+
+ [Header("Enemy Path Randomization")]
+ [Tooltip("적군 경로 랜덤화 활성화")]
+ public bool enableEnemyPathRandomization = true;
+
+ [Tooltip("적군 경로 랜덤 할당 활성화 (리셋 시 attack_track 중 랜덤 선택)")]
+ public bool enableRandomPathAssignment = true;
+
+ [Header("Explosion Settings")]
+ [Tooltip("폭발 효과 Prefab (War FX)")]
+ public GameObject explosionPrefab;
+
+ [Tooltip("폭발 효과 크기 배율")]
+ [Range(5f, 50f)]
+ public float explosionScale = 23f;
+
+ [Tooltip("폭발 효과 지속 시간 (초) - 이 시간 후 에피소드 재시작")]
+ public float explosionDuration = 2.0f;
+
+ [Header("Episode End Conditions")]
+ [Tooltip("모든 적군 선박 파괴 시 에피소드 종료")]
+ public bool endEpisodeOnAllEnemiesDestroyed = true;
+
+ [Tooltip("아군 간 최대 허용 거리 (이 거리 초과 시 에피소드 종료)")]
+ public float maxAllyDistance = 120f; // Stage1 최적거리(50m) + 대형붕괴거리(100m) 사이 여유
+
+ [Tooltip("아군 간 최소 허용 거리 (이 거리 미만 시 에피소드 종료)")]
+ public float minAllyDistance = 4f;
+
+ [Header("Weather Randomization")]
+ [Tooltip("에피소드 시작 시 날씨(파도/바람) 랜덤화 활성화")]
+ public bool randomizeWeatherOnEpisode = false;
+
+ [Tooltip("환경 컨트롤러 (날씨 랜덤화용)")]
+ public EnvironmentController environmentController;
+
+ [Header("Multi-Environment")]
+ [Tooltip("환경 루트 Transform (Island Level 등). 비어있으면 부모 또는 자기 자신 사용")]
+ public Transform environmentRoot;
+
+ [Header("Reward Monitor (Read Only)")]
+ [SerializeField] private float _currentEpisodeReward = 0f;
+ [SerializeField] private float _lastStepReward = 0f;
+ [SerializeField] private int _currentStep = 0;
+ [SerializeField] private int _totalCollisions = 0;
+
+ private int _resetTimer = 0; // FixedUpdate 기반 타이머
+ private bool _episodeActive = false;
+ private bool _episodeEnding = false; // 에피소드 종료 중 플래그 (중복 호출 방지)
+
+ // 에피소드 추적
+ private int _episodeNumber = 0; // 에피소드 번호 (재시작 확인용)
+
+ // 충돌 횟수 추적 (Web + MotherShip 통합 카운트)
+ private int _totalCollisionCount = 0; // 총 충돌 횟수 (Web + MotherShip 합산)
+
+ // 중복 충돌 방지 (같은 적군 선박이 짧은 시간 내 여러 번 충돌하는 것 방지)
+ private float _collisionCooldown = 2.0f; // 충돌 쿨다운 시간 (초)
+ private System.Collections.Generic.Dictionary _collisionCooldownTimes = new System.Collections.Generic.Dictionary();
+
+ // 위치 리셋 관련
+ private int _lastResetFrame = -1; // 중복 리셋 방지용
+ private bool _isResettingPositions = false; // 위치 리셋 코루틴 실행 중 플래그
+ private WebCollisionDetector _webDetector;
+
+ // 원래 위치 및 각도 저장 (랜덤 스폰용)
+ private Vector3 _originalDefense1Pos;
+ private Vector3 _originalDefense2Pos;
+ private Quaternion _originalDefense1Rot;
+ private Quaternion _originalDefense2Rot;
+
+ // 씬의 모든 attack_track 경로 (랜덤 할당용)
+ private CinemachineSmoothPath[] _availableAttackPaths;
+
+ // 각 경로별 원본 웨이포인트 저장 (랜덤화용)
+ private Vector3[][] _allOriginalWaypoints;
+
+ // 아군 선박 좌/우 위치 추적 (위치 교차 감지용)
+ // 에피소드 시작 시 agent1이 agent2의 왼쪽에 있으면 true
+ private bool _agent1StartsOnLeft = true;
+ private System.Collections.Generic.Dictionary _originalEnemyPositions =
+ new System.Collections.Generic.Dictionary();
+ private System.Collections.Generic.Dictionary _originalBoatPositions =
+ new System.Collections.Generic.Dictionary(); // 태그가 "boat"인 모든 선박의 초기 위치
+ private System.Collections.Generic.Dictionary _originalBoatRotations =
+ new System.Collections.Generic.Dictionary(); // 태그가 "boat"인 모든 선박의 초기 각도
+
+ // 적군 선박 (attack_boat 태그) 관리
+ private System.Collections.Generic.List _attackBoats = new System.Collections.Generic.List();
+ private System.Collections.Generic.Dictionary _attackBoatInitialPositions = new System.Collections.Generic.Dictionary();
+ private System.Collections.Generic.Dictionary _attackBoatInitialPaths = new System.Collections.Generic.Dictionary();
+ private System.Collections.Generic.Dictionary _attackBoatPrefabs = new System.Collections.Generic.Dictionary(); // 원본 attack_boat 프리팹 저장 (재생성용, 이름을 키로 사용)
+ private System.Collections.Generic.Dictionary _attackBoatInitialPositionsByName = new System.Collections.Generic.Dictionary(); // 이름 기반 초기 위치 저장 (재생성용)
+ private System.Collections.Generic.Dictionary _attackBoatInitialPathsByName = new System.Collections.Generic.Dictionary(); // 이름 기반 초기 경로 저장 (재생성용)
+ private System.Collections.Generic.HashSet _destroyedAttackBoatNames = new System.Collections.Generic.HashSet(); // 파괴된 attack_boat 이름 추적
+ private int _initialAttackBoatCount = 0;
+
+ // Inspector에서 Stage 변경 시 자동 적용 (에디터 전용)
+ private TrainingStage _lastStage;
+
+ #region Multi-Environment Helpers
+
+ ///
+ /// 환경 루트 Transform 반환 (멀티 환경 학습용)
+ /// environmentRoot → 부모 → 자기 자신 순서로 fallback
+ ///
+ private Transform GetEnvironmentRoot()
+ {
+ if (environmentRoot != null) return environmentRoot;
+ if (transform.parent != null) return transform.parent;
+ return transform;
+ }
+
+ ///
+ /// 현재 환경 내에서만 특정 태그의 GameObject를 찾기 (다른 환경의 오브젝트 제외)
+ ///
+ private GameObject[] FindGameObjectsWithTagInEnvironment(string tag)
+ {
+ var root = GetEnvironmentRoot();
+ var allWithTag = GameObject.FindGameObjectsWithTag(tag);
+ var result = new System.Collections.Generic.List();
+ foreach (var obj in allWithTag)
+ {
+ if (obj != null && obj.transform.IsChildOf(root))
+ result.Add(obj);
+ }
+ return result.ToArray();
+ }
+
+ ///
+ /// 현재 환경 내에서만 특정 태그의 단일 GameObject를 찾기
+ ///
+ private GameObject FindGameObjectWithTagInEnvironment(string tag)
+ {
+ var root = GetEnvironmentRoot();
+ var allWithTag = GameObject.FindGameObjectsWithTag(tag);
+ foreach (var obj in allWithTag)
+ {
+ if (obj != null && obj.transform.IsChildOf(root))
+ return obj;
+ }
+ return null;
+ }
+
+ ///
+ /// 현재 환경 내에서만 컴포넌트 검색 (다른 환경의 컴포넌트 제외)
+ ///
+ private T[] FindComponentsInEnvironment() where T : Component
+ {
+ return GetEnvironmentRoot().GetComponentsInChildren(true);
+ }
+
+ #endregion
+
+ private void OnValidate()
+ {
+ // Play 모드에서만 실행
+ if (!Application.isPlaying)
+ return;
+
+ // Stage가 변경되었는지 확인
+ if (_lastStage != currentStage)
+ {
+ _lastStage = currentStage;
+
+ ApplyStageSettings();
+ }
+ }
+
+ private void Start()
+ {
+ // 초기 Stage 저장
+ _lastStage = currentStage;
+
+ // SimpleMultiAgentGroup 초기화
+ if (m_AgentGroup == null)
+ {
+ m_AgentGroup = new SimpleMultiAgentGroup();
+ }
+
+ // 에이전트 등록 (SimpleMultiAgentGroup이 있는 경우만)
+ if (m_AgentGroup != null)
+ {
+ if (defenseAgent1 != null)
+ m_AgentGroup.RegisterAgent(defenseAgent1);
+ if (defenseAgent2 != null)
+ m_AgentGroup.RegisterAgent(defenseAgent2);
+
+ }
+
+ // RewardCalculator 초기화
+ if (rewardCalculator == null)
+ {
+ rewardCalculator = GetComponent();
+ }
+
+ // Stage별 적군 활성화/비활성화
+ ApplyStageSettings();
+
+ // 모선 찾기 (환경 내에서만 검색)
+ if (motherShip == null)
+ {
+ motherShip = FindGameObjectWithTagInEnvironment("MotherShip");
+ }
+
+ // MotherShipCollisionDetector에 envController 할당
+ if (motherShip != null)
+ {
+ var motherShipDetector = motherShip.GetComponent();
+ if (motherShipDetector != null)
+ {
+ motherShipDetector.envController = this;
+ }
+ }
+
+ // WebCollisionDetector 설정
+ if (webObject != null)
+ {
+ _webDetector = webObject.GetComponent();
+ if (_webDetector == null)
+ {
+ _webDetector = webObject.AddComponent();
+ }
+ _webDetector.envController = this;
+
+ // DynamicWeb에도 envController 할당
+ var dynamicWeb = webObject.GetComponent();
+ if (dynamicWeb != null)
+ {
+ dynamicWeb.envController = this;
+ }
+ }
+
+ // 에이전트 페어링
+ if (defenseAgent1 != null && defenseAgent2 != null)
+ {
+ defenseAgent1.partnerAgent = defenseAgent2;
+ defenseAgent2.partnerAgent = defenseAgent1;
+
+ defenseAgent1.webObject = webObject;
+ defenseAgent2.webObject = webObject;
+
+ // 모선 참조 할당 (멀티 환경에서 올바른 모선을 사용하도록)
+ if (motherShip != null)
+ {
+ defenseAgent1.motherShip = motherShip;
+ defenseAgent2.motherShip = motherShip;
+ }
+
+ // 적군 배열 설정
+ if (enemyShips != null && enemyShips.Length > 0)
+ {
+ defenseAgent1.enemyShips = enemyShips;
+ defenseAgent2.enemyShips = enemyShips;
+ }
+ }
+
+ // 원점 = 실제 에이전트의 현재 위치 사용 (멀티 환경 호환)
+ // 환경을 복제하면 에이전트도 함께 이동하므로, 실제 위치를 저장해야 올바른 리셋 좌표를 사용
+ _originalDefense1Pos = (defenseAgent1 != null) ? defenseAgent1.transform.position : defense1SpawnPos;
+ _originalDefense2Pos = (defenseAgent2 != null) ? defenseAgent2.transform.position : defense2SpawnPos;
+
+ // 회전도 실제 에이전트 각도 사용 (fallback: 인스펙터 값)
+ _originalDefense1Rot = (defenseAgent1 != null) ? defenseAgent1.transform.rotation : Quaternion.Euler(defense1SpawnRot);
+ _originalDefense2Rot = (defenseAgent2 != null) ? defenseAgent2.transform.rotation : Quaternion.Euler(defense2SpawnRot);
+
+ // 태그가 "boat"인 모든 GameObject의 초기 위치 및 각도 저장 (WAKE 제외, 환경 내에서만)
+ _originalBoatPositions.Clear();
+ _originalBoatRotations.Clear();
+ GameObject[] allBoats = FindGameObjectsWithTagInEnvironment("boat");
+ foreach (var boat in allBoats)
+ {
+ // WAKE 객체는 제외 (파도 효과 등)
+ if (boat != null && !boat.name.Contains("WAKE") && !boat.name.Contains("Wake") && !_originalBoatPositions.ContainsKey(boat))
+ {
+ _originalBoatPositions[boat] = boat.transform.position;
+ _originalBoatRotations[boat] = boat.transform.rotation;
+ }
+ }
+
+ // 적군 원래 위치 저장
+ if (enemyShips != null)
+ {
+ foreach (var enemy in enemyShips)
+ {
+ if (enemy != null && !_originalEnemyPositions.ContainsKey(enemy))
+ {
+ _originalEnemyPositions[enemy] = enemy.transform.position;
+ }
+ }
+ }
+
+ // attack_boat 태그를 가진 모든 적군 선박 찾기 및 초기 위치 저장
+ FindAndSaveAttackBoats();
+
+ // 씬의 모든 attack_track 경로 수집 및 원본 웨이포인트 저장
+ FindAllAttackTrackPaths();
+ SaveOriginalWaypoints();
+
+ // 첫 에피소드 시작 (PushBlockEnvController 패턴)
+ ResetScene();
+
+ }
+
+ ///
+ /// PushBlockEnvController 패턴: FixedUpdate에서 타이머 관리
+ ///
+ private void FixedUpdate()
+ {
+ // 에피소드가 종료 중이면 타이머 증가하지 않음
+ if (_episodeEnding)
+ return;
+
+ // 에피소드가 활성화되지 않았으면 타이머만 증가하지 않음 (종료 조건은 체크 가능)
+ if (!_episodeActive)
+ return;
+
+ _resetTimer++;
+
+ // 최대 스텝 수 체크 (PushBlockEnvController 패턴)
+ if (_resetTimer >= maxEnvironmentSteps && maxEnvironmentSteps > 0)
+ {
+ RestartEpisode("MaxEnvironmentSteps");
+ return;
+ }
+
+ // 아군 간 거리 체크 (최대/최소)
+ if (defenseAgent1 != null && defenseAgent2 != null)
+ {
+ Vector3 pos1 = defenseAgent1.transform.position;
+ Vector3 pos2 = defenseAgent2.transform.position;
+ float allyDist = Vector3.Distance(pos1, pos2);
+
+ // 최대 거리 초과 체크
+ if (maxAllyDistance > 0f && allyDist > maxAllyDistance)
+ {
+ RestartEpisode("AllyDistanceExceeded", rewardCalculator.collisionPenalty);
+ return;
+ }
+
+ // 최소 거리 미달 체크
+ if (minAllyDistance > 0f && allyDist < minAllyDistance)
+ {
+ RestartEpisode("AllyDistanceTooClose", rewardCalculator.collisionPenalty);
+ return;
+ }
+
+ // 위치 교차 체크 (왼쪽/오른쪽 위치가 바뀌면 페널티)
+ bool agent1CurrentlyOnLeft = pos1.x < pos2.x;
+ if (agent1CurrentlyOnLeft != _agent1StartsOnLeft)
+ {
+ RestartEpisode("PositionSwapped", rewardCalculator.collisionPenalty);
+ return;
+ }
+ }
+
+ // 보상 계산 주기 확인
+ if (_resetTimer % rewardCalculationInterval != 0)
+ return;
+
+ if (defenseAgent1 == null || defenseAgent2 == null || rewardCalculator == null)
+ return;
+
+ // 상태 수집 → 보상 계산 (대형 유지 + 적 접근 + 시간 페널티)
+ var agent1State = rewardCalculator.GetAgentState(defenseAgent1);
+ var agent2State = rewardCalculator.GetAgentState(defenseAgent2);
+ float stepReward = rewardCalculator.CalculateStepReward(
+ agent1State, agent2State, enemyShips, webObject);
+
+ // Inspector 모니터링
+ _lastStepReward = stepReward;
+ _currentEpisodeReward += stepReward;
+ _currentStep = _resetTimer;
+ _totalCollisions = _totalCollisionCount;
+
+ // 그룹 보상 부여 (대형 유지 + 적 접근 + 시간 페널티)
+ if (Mathf.Abs(stepReward) > 0.0001f)
+ {
+ if (m_AgentGroup != null)
+ {
+ m_AgentGroup.AddGroupReward(stepReward);
+ }
+ else
+ {
+ if (defenseAgent1 != null)
+ defenseAgent1.AddReward(stepReward);
+ if (defenseAgent2 != null)
+ defenseAgent2.AddReward(stepReward);
+ }
+ }
+
+ // 개별 보상: 헤딩 정렬 (에이전트가 적을 향하면 보상)
+ float heading1 = rewardCalculator.CalculateIndividualHeadingReward(agent1State, enemyShips);
+ float heading2 = rewardCalculator.CalculateIndividualHeadingReward(agent2State, enemyShips);
+ if (heading1 > 0f && defenseAgent1 != null)
+ defenseAgent1.AddReward(heading1);
+ if (heading2 > 0f && defenseAgent2 != null)
+ defenseAgent2.AddReward(heading2);
+ }
+
+ #region 중앙 허브: 통합 에피소드 재시작 로직
+
+ ///
+ /// 통합 에피소드 재시작 메서드 (중앙 허브)
+ /// 모든 에피소드 재시작 로직을 여기서 처리합니다.
+ ///
+ /// 에피소드 종료 이유 (디버깅용)
+ /// 최종 보상 (선택사항)
+ public void RestartEpisode(string reason = "Unknown", float? finalReward = null)
+ {
+ // 중복 호출 방지
+ if (_episodeEnding)
+ {
+ return;
+ }
+
+ // 충돌 횟수 초기화 (에피소드 종료 시 즉시 리셋)
+ _totalCollisionCount = 0;
+ _collisionCooldownTimes.Clear();
+
+ // Inspector 모니터 초기화
+ _currentEpisodeReward = 0f;
+ _lastStepReward = 0f;
+ _currentStep = 0;
+ _totalCollisions = 0;
+
+ // 에피소드 번호 증가 및 로그 출력
+ _episodeNumber++;
+
+ // 타이머도 여기서 명시적으로 리셋 (안전장치)
+ _resetTimer = 0;
+
+ // 1단계: 에피소드 종료 플래그 설정
+ _episodeEnding = true;
+
+ // 2단계: 최종 보상 부여 (있는 경우)
+ if (finalReward.HasValue)
+ {
+ if (m_AgentGroup != null)
+ {
+ m_AgentGroup.AddGroupReward(finalReward.Value);
+ }
+ else
+ {
+ if (defenseAgent1 != null)
+ defenseAgent1.AddReward(finalReward.Value);
+ if (defenseAgent2 != null)
+ defenseAgent2.AddReward(finalReward.Value);
+ }
+ }
+
+ // 3단계: 에이전트 에피소드 종료
+ if (m_AgentGroup != null)
+ {
+ m_AgentGroup.EndGroupEpisode();
+ }
+ else
+ {
+ if (defenseAgent1 != null)
+ {
+ defenseAgent1.EndEpisode();
+ }
+ if (defenseAgent2 != null)
+ {
+ defenseAgent2.EndEpisode();
+ }
+ }
+
+ // 5단계: 환경 리셋
+ ResetScene();
+ }
+
+ ///
+ /// PushBlockEnvController 패턴: 환경 리셋 (ML-Agents가 OnEpisodeBegin을 자동 호출)
+ /// RestartEpisode()에서 호출됩니다.
+ ///
+ public void ResetScene()
+ {
+
+ // 충돌 횟수 리셋
+ _totalCollisionCount = 0;
+
+ // 기존 리셋 코루틴 중지 및 플래그 초기화
+ StopAllCoroutines();
+ _isResettingPositions = false;
+ _lastResetFrame = -1; // 프레임 체크 초기화
+
+ // 에피소드 종료 플래그를 먼저 리셋하여 다음 FixedUpdate()에서 타이머가 증가하지 않도록 함
+ _episodeEnding = false;
+
+ // 에피소드는 코루틴 완료 후 활성화 (초기에는 false로 시작)
+ _episodeActive = false;
+
+ _resetTimer = 0;
+
+ // 파괴된 적군 선박 목록 초기화 (에피소드 재시작 시)
+ _destroyedAttackBoatNames.Clear();
+
+ // RewardCalculator 리셋
+ if (rewardCalculator != null)
+ {
+ rewardCalculator.Reset();
+ }
+
+ // Stage 설정 적용 (에피소드 시작 시마다)
+ ApplyStageSettings();
+
+ // 날씨 랜덤화 (에피소드 시작 시)
+ if (randomizeWeatherOnEpisode && environmentController != null)
+ {
+ environmentController.RandomizeWeather();
+ }
+
+ // 적군 경로 웨이포인트 랜덤화 (선박 리셋 전에 호출)
+ RandomizeEnemyWaypoints();
+
+ // attack_boat의 대기 중인 Invoke 취소 (폭발 등)
+ CancelAttackBoatPendingActions();
+
+ // 모든 선박 리셋
+ ResetPositionsOnly();
+
+ }
+
+ #endregion
+
+ ///
+ /// 에피소드 시작 (ML-Agents가 자동으로 호출, 환경 리셋은 ResetScene에서 처리)
+ ///
+ public void OnEpisodeBegin()
+ {
+ // 모든 WAKE 객체 제거 및 WakeGenerator 비활성화
+ DestroyAllWakeObjects();
+ }
+
+ ///
+ /// 에피소드 종료 (레거시 호환성 - RestartEpisode()로 리다이렉트)
+ ///
+ public void OnEpisodeEnd()
+ {
+ RestartEpisode("OnEpisodeEnd");
+ }
+
+ ///
+ /// 적 포획 성공 처리 (중앙 허브로 리다이렉트)
+ ///
+ public void OnEnemyCaptured(Vector3 enemyPosition)
+ {
+ // 에피소드가 종료 중이면 무시
+ if (_episodeEnding)
+ return;
+
+ RestartEpisode("EnemyCaptured", rewardCalculator.captureReward);
+ }
+
+ ///
+ /// 적군이 Web에 충돌 시 처리 - 적군과 아군 모두 원점으로 리셋
+ /// 충돌 횟수가 maxCollisionCount 이상이면 에피소드 종료
+ ///
+ public void OnEnemyHitWeb(GameObject enemyBoat)
+ {
+ // 에피소드가 종료 중이면 무시
+ if (_episodeEnding)
+ return;
+
+ if (enemyBoat == null)
+ return;
+
+ // 중복 충돌 방지: 같은 적군 선박이 쿨다운 시간 내에 다시 충돌하면 무시
+ float currentTime = Time.time;
+ if (_collisionCooldownTimes.ContainsKey(enemyBoat))
+ {
+ float lastCollisionTime = _collisionCooldownTimes[enemyBoat];
+ if (currentTime - lastCollisionTime < _collisionCooldown)
+ {
+ return;
+ }
+ }
+
+ // 충돌 시간 기록
+ _collisionCooldownTimes[enemyBoat] = currentTime;
+
+ // 통합 충돌 횟수 증가 (Web + MotherShip 합산)
+ _totalCollisionCount++;
+
+ float reward = rewardCalculator.captureReward;
+
+ // 통합 충돌 횟수가 maxCollisionCount 이상이면 에피소드 종료
+ if (_totalCollisionCount >= maxCollisionCount)
+ {
+ RestartEpisode("WebCollisionLimit", reward);
+ return;
+ }
+
+ // 충돌 횟수가 maxCollisionCount 미만이면 보상 부여 후 해당 적군만 리셋
+ if (m_AgentGroup != null)
+ {
+ m_AgentGroup.AddGroupReward(reward);
+ }
+ else
+ {
+ if (defenseAgent1 != null)
+ defenseAgent1.AddReward(reward);
+ if (defenseAgent2 != null)
+ defenseAgent2.AddReward(reward);
+ }
+
+ // 적군 선박을 원점으로 리셋 (모선 충돌과 동일한 메커니즘 사용)
+ ResetSingleAttackBoat(enemyBoat);
+
+ // 아군 선박 위치 리셋은 에피소드 종료 시에만 수행 (mid-episode 리셋 비활성화)
+ // ResetDefenseAgentsToOrigin();
+
+ // WebDetector 리셋
+ if (_webDetector != null)
+ {
+ _webDetector.ResetDetector();
+ }
+ }
+
+ ///
+ /// 아군 선박이 Web과 충돌 시 처리 (페널티 + 에피소드 종료)
+ ///
+ public void OnAllyHitWeb(GameObject allyShip, float penalty)
+ {
+ if (_episodeEnding)
+ return;
+
+ // 페널티 부여 후 에피소드 종료
+ RestartEpisode("AllyHitWeb", penalty);
+ }
+
+ ///
+ /// 아군 선박들을 원점으로 리셋
+ ///
+ private void ResetDefenseAgentsToOrigin()
+ {
+ // 두 선박이 동일한 랜덤 각도를 바라보도록 한 번만 생성
+ float sharedRandomAngle = enableRandomSpawn
+ ? Random.Range(-defenseRandomAngleRange, defenseRandomAngleRange)
+ : 0f;
+
+ // 두 선박이 동일한 위치 오프셋을 공유
+ Vector3 sharedOffset = GetSharedRandomOffset();
+
+ ResetDefenseAgentPosition(defenseAgent1, _originalDefense1Pos, _originalDefense1Rot, sharedRandomAngle, sharedOffset);
+ ResetDefenseAgentPosition(defenseAgent2, _originalDefense2Pos, _originalDefense2Rot, sharedRandomAngle, sharedOffset);
+ }
+
+ ///
+ /// 모선 충돌 처리 - 해당 공격선만 원점으로 리셋
+ /// 충돌 횟수가 maxCollisionCount 이상이면 에피소드 종료
+ ///
+ public void OnMotherShipCollision(GameObject enemyBoat)
+ {
+ // 에피소드가 종료 중이면 무시
+ if (_episodeEnding)
+ return;
+
+ if (enemyBoat == null)
+ return;
+
+ // 중복 충돌 방지: 같은 적군 선박이 쿨다운 시간 내에 다시 충돌하면 무시
+ float currentTime = Time.time;
+ if (_collisionCooldownTimes.ContainsKey(enemyBoat))
+ {
+ float lastCollisionTime = _collisionCooldownTimes[enemyBoat];
+ if (currentTime - lastCollisionTime < _collisionCooldown)
+ {
+ return;
+ }
+ }
+
+ // 충돌 시간 기록
+ _collisionCooldownTimes[enemyBoat] = currentTime;
+
+ // 통합 충돌 횟수 증가 (Web + MotherShip 합산)
+ _totalCollisionCount++;
+
+ float penalty = rewardCalculator.motherShipHitPenalty;
+
+ // 통합 충돌 횟수가 maxCollisionCount 이상이면 에피소드 종료
+ if (_totalCollisionCount >= maxCollisionCount)
+ {
+ RestartEpisode("MotherShipCollisionLimit", penalty);
+ return;
+ }
+
+ // 충돌 횟수 미만이면 페널티 부여 + 해당 공격선만 리셋
+ if (m_AgentGroup != null)
+ {
+ m_AgentGroup.AddGroupReward(penalty);
+ }
+ else
+ {
+ if (defenseAgent1 != null)
+ defenseAgent1.AddReward(penalty);
+ if (defenseAgent2 != null)
+ defenseAgent2.AddReward(penalty);
+ }
+
+ ResetSingleAttackBoat(enemyBoat);
+ }
+
+ ///
+ /// 단일 공격선을 원점으로 리셋 (비활성화 없이 위치만 리셋 - Water System 호환)
+ ///
+ private void ResetSingleAttackBoat(GameObject attackBoat)
+ {
+ if (attackBoat == null)
+ return;
+
+ string boatName = attackBoat.name.Replace("(Clone)", "");
+
+ // 1. Rigidbody 속도 초기화 + Sleep (비활성화 없이)
+ Rigidbody rb = attackBoat.GetComponent();
+ if (rb != null)
+ {
+ rb.velocity = Vector3.zero;
+ rb.angularVelocity = Vector3.zero;
+ rb.Sleep(); // 물리 시뮬레이션 일시 정지
+ }
+
+ // 2. 원점 위치로 이동
+ Vector3 initialPos = Vector3.zero;
+ if (_attackBoatInitialPositionsByName.ContainsKey(boatName))
+ {
+ initialPos = _attackBoatInitialPositionsByName[boatName];
+ }
+ else if (_attackBoatInitialPositions.ContainsKey(attackBoat))
+ {
+ initialPos = _attackBoatInitialPositions[attackBoat];
+ }
+
+ attackBoat.transform.position = initialPos;
+ attackBoat.transform.rotation = Quaternion.identity;
+
+ // Engine 리셋 (Gerstner 파도 안정화 전까지 _yHeight 조건 무시)
+ var boat = attackBoat.GetComponent();
+ if (boat != null && boat.engine != null)
+ {
+ boat.engine.OnEpisodeReset();
+ }
+
+ // 3. Cinemachine Dolly Cart 리셋 (랜덤 경로 할당 또는 원래 경로 복원)
+ Cinemachine.CinemachineDollyCart dollyCart = attackBoat.GetComponent();
+ if (dollyCart != null)
+ {
+ CinemachinePathBase assignedPath = null;
+
+ if (enableRandomPathAssignment)
+ {
+ assignedPath = GetRandomAttackPath();
+ }
+
+ // 랜덤 경로가 없으면 원래 경로 fallback
+ if (assignedPath == null && _attackBoatInitialPathsByName.ContainsKey(boatName))
+ {
+ assignedPath = _attackBoatInitialPathsByName[boatName];
+ }
+
+ if (assignedPath != null)
+ {
+ dollyCart.m_Path = assignedPath;
+ }
+ dollyCart.m_Position = 0f;
+ }
+ }
+
+ ///
+ /// 아군 충돌 처리 (아군-아군 또는 아군-모선 충돌)
+ /// 에피소드 종료 + 페널티 부여
+ ///
+ public void OnFriendlyCollision()
+ {
+ // 에피소드가 종료 중이면 무시
+ if (_episodeEnding)
+ return;
+
+ // RestartEpisode를 통해 일관된 방식으로 에피소드 종료
+ // 패널티 부여 + EndGroupEpisode + ResetScene 모두 처리됨
+ RestartEpisode("FriendlyCollision", rewardCalculator.collisionPenalty);
+ }
+
+ #region DefenseBoatManager 통합 기능
+
+ ///
+ /// 적군 선박 파괴 요청 (DynamicWeb, WebCollisionDetector에서 호출)
+ /// 중앙 허브: 모든 파괴 로직을 중앙에서 관리
+ ///
+ public void RequestAttackBoatDestruction(GameObject attackBoat)
+ {
+ if (attackBoat == null)
+ return;
+
+ // 이미 파괴 요청이 처리되었는지 확인
+ string boatName = attackBoat.name.Replace("(Clone)", "");
+ if (_destroyedAttackBoatNames.Contains(boatName))
+ {
+ return;
+ }
+
+ // 다음 프레임에 파괴 처리 (물리 콜백 제약 회피)
+ StartCoroutine(DestroyAttackBoatNextFrame(attackBoat));
+ }
+
+ ///
+ /// 다음 프레임에 attack_boat 파괴 처리 (물리 콜백 제약 회피)
+ ///
+ private System.Collections.IEnumerator DestroyAttackBoatNextFrame(GameObject attackBoat)
+ {
+ // 다음 프레임까지 대기 (물리 콜백이 끝난 후)
+ yield return null;
+
+ if (attackBoat == null)
+ {
+ yield break;
+ }
+
+ // 파괴 처리
+ OnAttackBoatDestroyed(attackBoat);
+
+ // attack_boat 파괴
+ Destroy(attackBoat);
+ }
+
+ ///
+ /// 적군 선박이 파괴되었을 때 호출 (내부에서만 호출)
+ /// 중앙 허브: 모든 파괴 정보를 중앙에서 관리
+ ///
+ private void OnAttackBoatDestroyed(GameObject destroyedBoat)
+ {
+ if (destroyedBoat == null)
+ return;
+
+ // 파괴된 선박의 이름 저장 (파괴 후에도 추적 가능하도록)
+ string boatName = destroyedBoat.name.Replace("(Clone)", "");
+ _destroyedAttackBoatNames.Add(boatName);
+
+ // 초기 적군 선박 수가 0이면 다시 찾기 (Start()에서 찾지 못했을 수 있음)
+ if (_initialAttackBoatCount == 0)
+ {
+ FindAndSaveAttackBoats();
+ }
+
+ // 파괴된 선박을 리스트에서 제거
+ _attackBoats.Remove(destroyedBoat);
+
+ // null이거나 파괴된 객체 제거
+ _attackBoats.RemoveAll(boat => boat == null);
+
+ // 현재 활성화된 적군 선박 수 확인 (환경 내에서 직접 찾기, 파괴된 선박 제외)
+ GameObject[] allAttackBoatsInScene = FindGameObjectsWithTagInEnvironment("attack_boat");
+ // 파괴된 선박 이름을 기준으로 제외
+ int activeCount = allAttackBoatsInScene.Count(boat =>
+ boat != null &&
+ !_destroyedAttackBoatNames.Contains(boat.name.Replace("(Clone)", ""))
+ );
+
+ // _attackBoats 리스트에서 활성화된 선박 수 확인
+ int activeInList = _attackBoats.Count(boat =>
+ boat != null &&
+ boat.activeSelf &&
+ !_destroyedAttackBoatNames.Contains(boat.name.Replace("(Clone)", ""))
+ );
+
+ // 모든 적군 선박이 파괴되었는지 확인
+ // 조건: 초기 적군 수가 0보다 크고, 씬에 활성화된 적군이 0개이고, 리스트에도 활성화된 선박이 0개
+ if (endEpisodeOnAllEnemiesDestroyed && _initialAttackBoatCount > 0 && activeCount == 0 && activeInList == 0)
+ {
+ // 에피소드가 이미 종료 중인 경우 중복 호출 방지
+ if (_episodeEnding)
+ {
+ return;
+ }
+
+ // 통합 에피소드 재시작 메서드 호출
+ RestartEpisode("AllEnemiesDestroyed");
+ }
+ }
+
+ ///
+ /// attack_boat 태그를 가진 모든 적군 선박 찾기 및 초기 위치 저장
+ /// 중앙 허브: 모든 적군 선박 정보를 중앙에서 관리
+ ///
+ private void FindAndSaveAttackBoats()
+ {
+ _attackBoats.Clear();
+ _attackBoatInitialPositions.Clear();
+ _attackBoatInitialPaths.Clear();
+ // 프리팹 딕셔너리와 이름 기반 딕셔너리는 초기화하지 않음 (에피소드 재시작 시 재사용)
+
+ // 현재 환경 내의 attack_boat 태그를 가진 객체 찾기 (멀티 환경 호환)
+ GameObject[] foundBoats = FindGameObjectsWithTagInEnvironment("attack_boat");
+
+ // enemyShips 배열 자동 동기화 (인스펙터에 할당된 것과 씬의 실제 객체를 동기화)
+ if (enemyShips == null || enemyShips.Length == 0 || enemyShips.All(e => e == null))
+ {
+ enemyShips = new GameObject[foundBoats.Length];
+ for (int i = 0; i < foundBoats.Length; i++)
+ {
+ enemyShips[i] = foundBoats[i];
+ }
+ }
+
+ foreach (var boat in foundBoats)
+ {
+ if (boat != null && !_attackBoats.Contains(boat))
+ {
+ _attackBoats.Add(boat);
+ Vector3 initialPos = boat.transform.position;
+ _attackBoatInitialPositions[boat] = initialPos;
+
+ // 원본 객체를 프리팹으로 저장 (파괴 후 재생성용)
+ // 이름을 키로 사용하여 같은 이름의 객체를 재생성할 수 있도록 함
+ string boatName = boat.name.Replace("(Clone)", ""); // Clone 접미사 제거
+
+ // 이름 기반 초기 위치 저장 (재생성용)
+ if (!_attackBoatInitialPositionsByName.ContainsKey(boatName))
+ {
+ _attackBoatInitialPositionsByName[boatName] = initialPos;
+ }
+
+ if (!_attackBoatPrefabs.ContainsKey(boatName))
+ {
+ // 원본 객체를 복제하여 프리팹으로 저장 (씬에 숨김)
+ GameObject prefabCopy = Instantiate(boat);
+ prefabCopy.name = boatName; // Clone 접미사 제거
+ prefabCopy.SetActive(false); // 비활성화하여 숨김
+ prefabCopy.hideFlags = HideFlags.HideInHierarchy | HideFlags.DontSave; // Hierarchy에서 숨기고 저장하지 않음
+ _attackBoatPrefabs[boatName] = prefabCopy;
+ }
+
+ // Cinemachine Dolly Cart의 Path 저장
+ CinemachineDollyCart dollyCart = boat.GetComponent();
+ if (dollyCart != null)
+ {
+ _attackBoatInitialPaths[boat] = dollyCart.m_Path;
+ // 이름 기반 경로 저장 (재생성용)
+ if (!_attackBoatInitialPathsByName.ContainsKey(boatName))
+ {
+ _attackBoatInitialPathsByName[boatName] = dollyCart.m_Path;
+ }
+ }
+ else
+ {
+ _attackBoatInitialPaths[boat] = null;
+ if (!_attackBoatInitialPathsByName.ContainsKey(boatName))
+ {
+ _attackBoatInitialPathsByName[boatName] = null;
+ }
+ }
+ }
+ }
+
+ _initialAttackBoatCount = _attackBoats.Count;
+ }
+
+ ///
+ /// 위치만 리셋 (외부에서 호출 가능, ML-Agents 에피소드 재시작 시 사용)
+ /// 모든 선박을 비활성화 → 위치 리셋 → 활성화
+ ///
+ public void ResetPositionsOnly()
+ {
+ // 코루틴이 이미 실행 중이면 중복 호출 방지
+ if (_isResettingPositions)
+ {
+ return;
+ }
+
+ // 중복 호출 방지 (같은 프레임에서 여러 번 호출되는 것 방지)
+ if (_lastResetFrame == Time.frameCount)
+ {
+ return;
+ }
+
+ _lastResetFrame = Time.frameCount;
+
+ // 코루틴 실행 중 플래그 설정 (코루틴 시작 전에 설정하여 중복 실행 방지)
+ _isResettingPositions = true;
+
+ // _originalBoatPositions 업데이트 (새로 생성된 boat가 있을 수 있음)
+ UpdateOriginalBoatPositions();
+
+ // 코루틴으로 비활성화 → 리셋 → 활성화 순서로 진행
+ StartCoroutine(ResetPositionsWithDeactivation());
+ }
+
+ ///
+ /// _originalBoatPositions 딕셔너리 업데이트 (새로 생성된 boat 추가)
+ ///
+ private void UpdateOriginalBoatPositions()
+ {
+ GameObject[] allBoats = FindGameObjectsWithTagInEnvironment("boat");
+
+ int addedCount = 0;
+ foreach (var boat in allBoats)
+ {
+ // WAKE 객체는 제외 (파도 효과 등)
+ if (boat != null && !boat.name.Contains("WAKE") && !boat.name.Contains("Wake") && !_originalBoatPositions.ContainsKey(boat))
+ {
+ _originalBoatPositions[boat] = boat.transform.position;
+ _originalBoatRotations[boat] = boat.transform.rotation;
+ addedCount++;
+ }
+ }
+
+ // null이거나 WAKE인 항목 제거
+ var keysToRemove = new System.Collections.Generic.List();
+ foreach (var boat in _originalBoatPositions.Keys)
+ {
+ if (boat == null || boat.name.Contains("WAKE") || boat.name.Contains("Wake"))
+ {
+ keysToRemove.Add(boat);
+ }
+ }
+ foreach (var boat in keysToRemove)
+ {
+ _originalBoatPositions.Remove(boat);
+ _originalBoatRotations.Remove(boat);
+ }
+ }
+
+ ///
+ /// 위치 리셋 코루틴 - 모든 선박 비활성화 없이 위치만 리셋 (Water System 호환)
+ ///
+ private System.Collections.IEnumerator ResetPositionsWithDeactivation()
+ {
+
+ // 모든 WAKE 객체 제거 및 WakeGenerator 비활성화
+ DestroyAllWakeObjects();
+
+ // ========================================
+ // 1. 아군 선박(DefenseAgent) 위치 리셋 (비활성화 없이)
+ // ========================================
+
+ // 두 선박이 동일한 랜덤 각도를 바라보도록 한 번만 생성
+ float sharedRandomAngle = enableRandomSpawn
+ ? Random.Range(-defenseRandomAngleRange, defenseRandomAngleRange)
+ : 0f;
+
+ // 두 선박이 동일한 위치 오프셋을 공유
+ Vector3 sharedOffset = GetSharedRandomOffset();
+
+ ResetDefenseAgentPosition(defenseAgent1, _originalDefense1Pos, _originalDefense1Rot, sharedRandomAngle, sharedOffset);
+ ResetDefenseAgentPosition(defenseAgent2, _originalDefense2Pos, _originalDefense2Rot, sharedRandomAngle, sharedOffset);
+
+ // 아군 선박 좌/우 위치 기록 (위치 교차 감지용)
+ if (defenseAgent1 != null && defenseAgent2 != null)
+ {
+ Vector3 pos1 = defenseAgent1.transform.position;
+ Vector3 pos2 = defenseAgent2.transform.position;
+ // X축 기준으로 좌/우 판단 (pos1.x < pos2.x면 agent1이 왼쪽)
+ _agent1StartsOnLeft = pos1.x < pos2.x;
+ }
+
+ // ========================================
+ // 2. 적군 선박들 위치 리셋 (비활성화 없이 - Water System Dictionary 충돌 방지)
+ // ========================================
+ ResetAttackBoatsToOrigin();
+
+ // WebDetector 리셋
+ if (_webDetector != null)
+ {
+ _webDetector.ResetDetector();
+ }
+
+ yield return null;
+
+ // 코루틴 실행 완료 플래그 해제 및 에피소드 활성화
+ _isResettingPositions = false;
+ _episodeActive = true;
+ }
+
+ ///
+ /// 아군 선박 위치만 리셋 (비활성화 없이)
+ /// originalPos = Start() 시점의 실제 에이전트 위치 (멀티 환경 호환)
+ /// sharedPositionOffset = 두 에이전트가 공유하는 위치 오프셋
+ ///
+ private void ResetDefenseAgentPosition(DefenseAgent agent, Vector3 originalPos, Quaternion originalRot, float sharedRandomAngle, Vector3 sharedPositionOffset)
+ {
+ if (agent == null)
+ return;
+
+ // 공유 오프셋 적용 (두 에이전트가 동일한 오프셋 사용)
+ Vector3 targetPos = originalPos + sharedPositionOffset;
+
+ // 랜덤 스폰: 각도만 적용 (위치는 이미 공유 오프셋으로 적용됨)
+ Quaternion targetRot = originalRot;
+ if (enableRandomSpawn)
+ {
+ targetRot = originalRot * Quaternion.Euler(0f, sharedRandomAngle, 0f);
+ }
+
+ // Rigidbody 속도 초기화 + Sleep
+ if (agent.TryGetComponent(out var rb))
+ {
+ rb.velocity = Vector3.zero;
+ rb.angularVelocity = Vector3.zero;
+ rb.Sleep(); // 물리 시뮬레이션 일시 정지 (누적된 힘 제거)
+ }
+
+ // 위치와 회전 설정
+ agent.transform.position = targetPos;
+ agent.transform.rotation = targetRot;
+
+ // Engine 리셋 (Gerstner 파도 안정화 전까지 _yHeight 조건 무시)
+ if (agent._engine != null)
+ {
+ agent._engine.OnEpisodeReset();
+ }
+ }
+
+ ///
+ /// 모든 적군 선박 (attack_boat 태그)을 원점으로 리셋
+ /// 에피소드 재시작 시 호출되며, 파괴된 적군 선박도 다시 생성
+ /// Stage 설정에 따라 재생성 수 제한
+ ///
+ private void ResetAttackBoatsToOrigin()
+ {
+ // null이거나 파괴된 객체 제거
+ _attackBoats.RemoveAll(boat => boat == null);
+
+ // Stage에 따른 목표 적군 수 결정
+ int stageTargetCount = GetActiveEnemyCountForStage();
+
+ // Stage1에서 적군 0대면 재생성 스킵
+ if (stageTargetCount == 0)
+ {
+ return;
+ }
+
+ // 현재 환경 내의 attack_boat 다시 찾기 (멀티 환경 호환)
+ GameObject[] allAttackBoatsInScene = FindGameObjectsWithTagInEnvironment("attack_boat");
+
+ // 파괴된 attack_boat 재생성
+ int recreatedCount = 0;
+
+ // Stage 설정에 맞는 적군 수만큼만 재생성
+ int targetCount = Mathf.Min(
+ stageTargetCount,
+ _initialAttackBoatCount > 0 ? _initialAttackBoatCount : _attackBoatPrefabs.Count
+ );
+
+ foreach (var kvp in _attackBoatPrefabs)
+ {
+ string boatName = kvp.Key;
+ GameObject prefab = kvp.Value;
+
+ if (prefab == null) continue;
+
+ // 씬에서 같은 이름의 객체를 찾을 수 있는지 확인
+ bool foundInScene = false;
+ GameObject existingBoat = null;
+ foreach (var boat in allAttackBoatsInScene)
+ {
+ if (boat == null) continue;
+ string sceneBoatName = boat.name.Replace("(Clone)", "");
+ if (sceneBoatName == boatName)
+ {
+ foundInScene = true;
+ existingBoat = boat;
+ break;
+ }
+ }
+
+ // 씬에 없으면 재생성 필요 (단, 목표 수 초과 시 스킵)
+ if (!foundInScene && recreatedCount < targetCount)
+ {
+ // 프리팹에서 재생성 (환경 루트 아래에 배치하여 멀티 환경 호환)
+ GameObject recreatedBoat = Instantiate(prefab, GetEnvironmentRoot());
+ recreatedBoat.name = boatName; // 원본 이름 유지
+ recreatedBoat.tag = "attack_boat"; // 태그 설정
+ recreatedBoat.SetActive(true); // 활성화
+
+ // 초기 위치 찾기 (이름 기반 Dictionary에서 찾기)
+ Vector3 initialPos = Vector3.zero;
+ if (_attackBoatInitialPositionsByName.ContainsKey(boatName))
+ {
+ initialPos = _attackBoatInitialPositionsByName[boatName];
+ }
+
+ recreatedBoat.transform.position = initialPos;
+ recreatedBoat.transform.rotation = Quaternion.identity;
+
+ // Cinemachine Dolly Cart 리셋 (랜덤 경로 할당)
+ CinemachineDollyCart dollyCart = recreatedBoat.GetComponent();
+ if (dollyCart != null)
+ {
+ CinemachinePathBase assignedPath = enableRandomPathAssignment ? GetRandomAttackPath() : null;
+
+ if (assignedPath == null && _attackBoatInitialPathsByName.ContainsKey(boatName))
+ {
+ assignedPath = _attackBoatInitialPathsByName[boatName];
+ }
+
+ if (assignedPath != null)
+ {
+ dollyCart.m_Path = assignedPath;
+ dollyCart.m_Position = 0f;
+ }
+ }
+
+ // Rigidbody 리셋
+ Rigidbody rb = recreatedBoat.GetComponent();
+ if (rb != null)
+ {
+ rb.velocity = Vector3.zero;
+ rb.angularVelocity = Vector3.zero;
+ }
+
+ // 리스트에 추가
+ _attackBoats.Add(recreatedBoat);
+ _attackBoatInitialPositions[recreatedBoat] = initialPos;
+ if (dollyCart != null)
+ {
+ _attackBoatInitialPaths[recreatedBoat] = dollyCart.m_Path;
+ }
+
+ // 이름 기반 Dictionary도 업데이트 (재생성된 객체용)
+ if (!_attackBoatInitialPositionsByName.ContainsKey(boatName))
+ {
+ _attackBoatInitialPositionsByName[boatName] = initialPos;
+ }
+ if (dollyCart != null && !_attackBoatInitialPathsByName.ContainsKey(boatName))
+ {
+ _attackBoatInitialPathsByName[boatName] = dollyCart.m_Path;
+ }
+
+ recreatedCount++;
+ }
+ }
+
+ // 씬의 모든 attack_boat를 _attackBoats 리스트에 추가 (없는 경우만)
+ foreach (var boat in allAttackBoatsInScene)
+ {
+ if (boat != null && !_attackBoats.Contains(boat))
+ {
+ _attackBoats.Add(boat);
+
+ // 초기 위치/경로 저장 (아직 저장되지 않은 경우)
+ if (!_attackBoatInitialPositions.ContainsKey(boat))
+ {
+ Vector3 initialPos = boat.transform.position;
+ _attackBoatInitialPositions[boat] = initialPos;
+
+ // 원본 프리팹 저장
+ string boatName = boat.name.Replace("(Clone)", "");
+
+ // 이름 기반 초기 위치 저장
+ if (!_attackBoatInitialPositionsByName.ContainsKey(boatName))
+ {
+ _attackBoatInitialPositionsByName[boatName] = initialPos;
+ }
+
+ if (!_attackBoatPrefabs.ContainsKey(boatName))
+ {
+ GameObject prefabCopy = Instantiate(boat);
+ prefabCopy.name = boatName;
+ prefabCopy.SetActive(false);
+ prefabCopy.hideFlags = HideFlags.HideInHierarchy | HideFlags.DontSave;
+ _attackBoatPrefabs[boatName] = prefabCopy;
+ }
+
+ // Cinemachine Dolly Cart의 Path 저장
+ CinemachineDollyCart dollyCart = boat.GetComponent();
+ if (dollyCart != null)
+ {
+ _attackBoatInitialPaths[boat] = dollyCart.m_Path;
+ // 이름 기반 경로 저장
+ if (!_attackBoatInitialPathsByName.ContainsKey(boatName))
+ {
+ _attackBoatInitialPathsByName[boatName] = dollyCart.m_Path;
+ }
+ }
+ else
+ {
+ _attackBoatInitialPaths[boat] = null;
+ if (!_attackBoatInitialPathsByName.ContainsKey(boatName))
+ {
+ _attackBoatInitialPathsByName[boatName] = null;
+ }
+ }
+ }
+ }
+ }
+
+ // 초기 선박 수 확인 및 업데이트
+ // 재생성 후 총 선박 수가 초기 수보다 적으면 문제
+ if (_attackBoats.Count < _initialAttackBoatCount && _initialAttackBoatCount > 0)
+ {
+ // 부족한 만큼 더 재생성 시도
+ int missingCount = _initialAttackBoatCount - _attackBoats.Count;
+ int additionalRecreated = 0;
+
+ foreach (var kvp in _attackBoatPrefabs)
+ {
+ if (additionalRecreated >= missingCount) break;
+
+ string boatName = kvp.Key;
+ GameObject prefab = kvp.Value;
+
+ if (prefab == null) continue;
+
+ // 이미 리스트에 있는지 확인
+ bool alreadyInList = false;
+ foreach (var boat in _attackBoats)
+ {
+ if (boat != null)
+ {
+ string listBoatName = boat.name.Replace("(Clone)", "");
+ if (listBoatName == boatName)
+ {
+ alreadyInList = true;
+ break;
+ }
+ }
+ }
+
+ if (!alreadyInList)
+ {
+ // 재생성 (환경 루트 아래에 배치하여 멀티 환경 호환)
+ GameObject recreatedBoat = Instantiate(prefab, GetEnvironmentRoot());
+ recreatedBoat.name = boatName;
+ recreatedBoat.tag = "attack_boat";
+ recreatedBoat.SetActive(true);
+
+ Vector3 initialPos = _attackBoatInitialPositionsByName.ContainsKey(boatName)
+ ? _attackBoatInitialPositionsByName[boatName]
+ : Vector3.zero;
+
+ recreatedBoat.transform.position = initialPos;
+ recreatedBoat.transform.rotation = Quaternion.identity;
+
+ CinemachineDollyCart dollyCart = recreatedBoat.GetComponent();
+ if (dollyCart != null)
+ {
+ CinemachinePathBase assignedPath = enableRandomPathAssignment ? GetRandomAttackPath() : null;
+
+ if (assignedPath == null && _attackBoatInitialPathsByName.ContainsKey(boatName))
+ {
+ assignedPath = _attackBoatInitialPathsByName[boatName];
+ }
+
+ if (assignedPath != null)
+ {
+ dollyCart.m_Path = assignedPath;
+ dollyCart.m_Position = 0f;
+ }
+ }
+
+ Rigidbody rb = recreatedBoat.GetComponent();
+ if (rb != null)
+ {
+ rb.velocity = Vector3.zero;
+ rb.angularVelocity = Vector3.zero;
+ }
+
+ _attackBoats.Add(recreatedBoat);
+ _attackBoatInitialPositions[recreatedBoat] = initialPos;
+ if (dollyCart != null)
+ {
+ _attackBoatInitialPaths[recreatedBoat] = dollyCart.m_Path;
+ }
+
+ additionalRecreated++;
+ }
+ }
+
+ recreatedCount += additionalRecreated;
+ }
+
+ // 초기 선박 수 업데이트 (씬에 있는 선박 수가 더 많으면)
+ if (_attackBoats.Count > _initialAttackBoatCount)
+ {
+ _initialAttackBoatCount = _attackBoats.Count;
+ }
+
+ // 모든 선박을 원점(초기 위치)으로 리셋 (비활성화/활성화 없이 - Water System 호환)
+ int resetCount = 0;
+ foreach (var boat in _attackBoats)
+ {
+ if (boat == null) continue;
+
+ // 비활성화된 선박은 건너뛰지 않고 위치만 리셋
+ // (SetActive 호출하지 않음 - Water System Dictionary 충돌 방지)
+
+ // Rigidbody 리셋 (활성화 상태에서만 동작)
+ if (boat.activeSelf)
+ {
+ Rigidbody rb = boat.GetComponent();
+ if (rb != null)
+ {
+ rb.velocity = Vector3.zero;
+ rb.angularVelocity = Vector3.zero;
+ }
+ }
+
+ // 초기 위치로 리셋 (이름 기반으로 찾기)
+ Vector3 spawnPos;
+ string boatName = boat.name.Replace("(Clone)", "");
+
+ if (_attackBoatInitialPositionsByName.ContainsKey(boatName))
+ {
+ spawnPos = _attackBoatInitialPositionsByName[boatName];
+ if (!_attackBoatInitialPositions.ContainsKey(boat))
+ {
+ _attackBoatInitialPositions[boat] = spawnPos;
+ }
+ }
+ else if (_attackBoatInitialPositions.ContainsKey(boat))
+ {
+ spawnPos = _attackBoatInitialPositions[boat];
+ _attackBoatInitialPositionsByName[boatName] = spawnPos;
+ }
+ else
+ {
+ spawnPos = boat.transform.position;
+ _attackBoatInitialPositions[boat] = spawnPos;
+ _attackBoatInitialPositionsByName[boatName] = spawnPos;
+ }
+
+ // Cinemachine Dolly Cart 리셋 (랜덤 경로 할당 또는 원래 경로 복원)
+ CinemachineDollyCart dollyCart = boat.GetComponent();
+ if (dollyCart != null)
+ {
+ CinemachinePathBase assignedPath = null;
+
+ if (enableRandomPathAssignment)
+ {
+ assignedPath = GetRandomAttackPath();
+ }
+
+ // 랜덤 경로가 없으면 원래 경로 fallback
+ if (assignedPath == null)
+ {
+ if (_attackBoatInitialPathsByName.ContainsKey(boatName))
+ {
+ assignedPath = _attackBoatInitialPathsByName[boatName];
+ }
+ else if (_attackBoatInitialPaths.ContainsKey(boat) && _attackBoatInitialPaths[boat] != null)
+ {
+ assignedPath = _attackBoatInitialPaths[boat];
+ _attackBoatInitialPathsByName[boatName] = assignedPath;
+ }
+ }
+
+ if (assignedPath != null)
+ {
+ dollyCart.m_Path = assignedPath;
+ dollyCart.m_Position = 0f;
+
+ if (dollyCart.m_Speed < 0)
+ {
+ dollyCart.m_Speed = Mathf.Abs(dollyCart.m_Speed);
+ }
+
+ Vector3 pathStartPos = assignedPath.EvaluatePositionAtUnit(0f, CinemachinePathBase.PositionUnits.PathUnits);
+ boat.transform.position = pathStartPos;
+ }
+ else
+ {
+ boat.transform.position = spawnPos;
+ }
+ }
+ else
+ {
+ // Dolly Cart가 없으면 저장된 위치 사용
+ boat.transform.position = spawnPos;
+ }
+
+ boat.transform.rotation = Quaternion.identity;
+
+ resetCount++;
+ }
+ }
+
+ ///
+ /// 씬에 있는 모든 WAKE(Clone) 객체를 찾아서 파괴하고, WakeGenerator 컴포넌트를 완전히 비활성화
+ ///
+ private void DestroyAllWakeObjects()
+ {
+ int destroyedCount = 0;
+
+ // 현재 환경 내의 Wake(Clone) 오브젝트만 찾아서 파괴 (멀티 환경 호환)
+ var envRoot = GetEnvironmentRoot();
+ Transform[] allTransforms = envRoot.GetComponentsInChildren(true);
+ foreach (var t in allTransforms)
+ {
+ if (t != null && t.gameObject.name.Contains("Wake") && (t.gameObject.name.Contains("Clone") || t.gameObject.name.Contains("(Clone)")))
+ {
+ Destroy(t.gameObject);
+ destroyedCount++;
+ }
+ }
+
+ // 현재 환경 내의 WakeGenerator만 찾아서 비활성화하고 코루틴 중지 (멀티 환경 호환)
+ WakeGenerator[] allWakeGenerators = envRoot.GetComponentsInChildren(true);
+ foreach (var wakeGen in allWakeGenerators)
+ {
+ if (wakeGen != null)
+ {
+ // 모든 코루틴 중지
+ wakeGen.StopAllCoroutines();
+ // 컴포넌트 비활성화
+ wakeGen.enabled = false;
+ }
+ }
+
+ }
+
+ ///
+ /// 위치 리셋 - 아군 선박은 비활성화 없이 위치만 리셋
+ ///
+ private void ResetPositions()
+ {
+ // 모든 WAKE(Clone) 객체 제거
+ DestroyAllWakeObjects();
+
+ // ========================================
+ // 아군 선박(DefenseAgent)은 비활성화 없이 위치만 리셋
+ // ========================================
+ float sharedAngle = enableRandomSpawn
+ ? Random.Range(-defenseRandomAngleRange, defenseRandomAngleRange)
+ : 0f;
+
+ // 두 선박이 동일한 위치 오프셋을 공유
+ Vector3 sharedOffset = GetSharedRandomOffset();
+
+ ResetDefenseAgentPosition(defenseAgent1, _originalDefense1Pos, _originalDefense1Rot, sharedAngle, sharedOffset);
+ ResetDefenseAgentPosition(defenseAgent2, _originalDefense2Pos, _originalDefense2Rot, sharedAngle, sharedOffset);
+
+ // Web 위치 설정 (2대 중간)
+ if (webObject != null && defenseAgent1 != null && defenseAgent2 != null)
+ {
+ Vector3 webPos = (defenseAgent1.transform.position + defenseAgent2.transform.position) / 2f;
+ webPos.y = webSpawnPos.y;
+ webObject.transform.position = webPos;
+ }
+ else if (webObject != null)
+ {
+ webObject.transform.position = webSpawnPos;
+ }
+ }
+
+ ///
+ /// 아군 선박 2대가 공유하는 랜덤 오프셋 계산 (위치 동기화용)
+ ///
+ private Vector3 GetSharedRandomOffset()
+ {
+ if (!enableRandomSpawn)
+ return Vector3.zero;
+
+ // 원형 영역 내 균등 분포 (극좌표 사용)
+ float randomAngle = Random.Range(0f, 360f) * Mathf.Deg2Rad;
+ float randomRadius = Mathf.Sqrt(Random.Range(0f, 1f)) * spawnRange;
+
+ return new Vector3(randomRadius * Mathf.Cos(randomAngle), 0f, randomRadius * Mathf.Sin(randomAngle));
+ }
+
+ ///
+ /// 기존 위치에서 랜덤 스폰 위치 생성 (적군 경로용)
+ ///
+ private Vector3 GetRandomSpawnPosition(Vector3 originalPos)
+ {
+ // 원형 영역 내 균등 분포 (극좌표 사용)
+ float randomAngle = Random.Range(0f, 360f) * Mathf.Deg2Rad;
+ float randomRadius = Mathf.Sqrt(Random.Range(0f, 1f)) * spawnRange; // sqrt로 균등 분포
+
+ float randomX = originalPos.x + randomRadius * Mathf.Cos(randomAngle);
+ float randomZ = originalPos.z + randomRadius * Mathf.Sin(randomAngle);
+ return new Vector3(randomX, originalPos.y, randomZ);
+ }
+
+ ///
+ /// 모든 attack_boat의 대기 중인 Invoke/코루틴 취소 (에피소드 리셋 시)
+ /// AttackBoatDisabler 등의 지연된 동작이 리셋 후에도 실행되는 것을 방지
+ ///
+ private void CancelAttackBoatPendingActions()
+ {
+ foreach (var boat in _attackBoats)
+ {
+ if (boat == null || !boat.activeSelf) continue;
+
+ // AttackBoatDisabler의 Invoke 취소
+ var disabler = boat.GetComponent();
+ if (disabler != null)
+ {
+ disabler.CancelInvoke();
+ }
+
+ // 모든 MonoBehaviour의 Invoke 취소
+ var behaviours = boat.GetComponents();
+ foreach (var mb in behaviours)
+ {
+ if (mb != null && mb.enabled)
+ {
+ mb.CancelInvoke();
+ }
+ }
+ }
+ }
+
+ ///
+ /// 씬에서 "attack_track"을 이름에 포함하는 모든 오브젝트의 CinemachineSmoothPath를 수집
+ ///
+ private void FindAllAttackTrackPaths()
+ {
+ var paths = new System.Collections.Generic.List();
+
+ // 현재 환경 내의 CinemachineSmoothPath 중 이름에 "attacktrack"이 포함된 것을 수집 (멀티 환경 호환)
+ var allPaths = FindComponentsInEnvironment();
+ foreach (var path in allPaths)
+ {
+ string lowerName = path.gameObject.name.ToLower();
+ if (lowerName.Contains("attacktrack") || lowerName.Contains("attack_track"))
+ {
+ paths.Add(path);
+ }
+ }
+
+ _availableAttackPaths = paths.ToArray();
+ }
+
+ ///
+ /// 랜덤 attack_track 경로 반환
+ ///
+ private CinemachinePathBase GetRandomAttackPath()
+ {
+ if (_availableAttackPaths == null || _availableAttackPaths.Length == 0)
+ return null;
+
+ int index = Random.Range(0, _availableAttackPaths.Length);
+ return _availableAttackPaths[index];
+ }
+
+ ///
+ /// 모든 attack_track 경로의 원본 웨이포인트 저장 (Start()에서 호출)
+ ///
+ private void SaveOriginalWaypoints()
+ {
+ if (_availableAttackPaths == null || _availableAttackPaths.Length == 0)
+ return;
+
+ _allOriginalWaypoints = new Vector3[_availableAttackPaths.Length][];
+
+ for (int p = 0; p < _availableAttackPaths.Length; p++)
+ {
+ var path = _availableAttackPaths[p];
+ if (path == null || path.m_Waypoints == null)
+ {
+ _allOriginalWaypoints[p] = new Vector3[0];
+ continue;
+ }
+
+ int waypointCount = path.m_Waypoints.Length;
+ _allOriginalWaypoints[p] = new Vector3[waypointCount];
+
+ for (int i = 0; i < waypointCount; i++)
+ {
+ _allOriginalWaypoints[p][i] = path.m_Waypoints[i].position;
+ }
+ }
+ }
+
+ ///
+ /// 모든 attack_track 경로의 웨이포인트 0, 1, 2번을 랜덤화 (에피소드 시작 시 호출)
+ ///
+ private void RandomizeEnemyWaypoints()
+ {
+ if (!enableEnemyPathRandomization)
+ return;
+
+ if (_availableAttackPaths == null || _allOriginalWaypoints == null)
+ return;
+
+ for (int p = 0; p < _availableAttackPaths.Length; p++)
+ {
+ var path = _availableAttackPaths[p];
+ if (path == null || path.m_Waypoints == null)
+ continue;
+
+ var origWaypoints = _allOriginalWaypoints[p];
+ if (origWaypoints == null || origWaypoints.Length < 3)
+ continue;
+
+ // 웨이포인트 0, 1, 2번만 랜덤화
+ for (int i = 0; i < 3 && i < path.m_Waypoints.Length; i++)
+ {
+ Vector3 originalPos = origWaypoints[i];
+ Vector3 randomizedPos = GetRandomSpawnPosition(originalPos);
+
+ if (path.transform.parent != null)
+ {
+ randomizedPos = path.transform.InverseTransformPoint(
+ path.transform.TransformPoint(originalPos) +
+ (randomizedPos - originalPos)
+ );
+ }
+ else
+ {
+ randomizedPos = originalPos + (randomizedPos - originalPos);
+ }
+
+ path.m_Waypoints[i].position = randomizedPos;
+ }
+
+ path.InvalidateDistanceCache();
+ }
+ }
+
+ #endregion
+
+ #region Stage Management
+
+ ///
+ /// 현재 Stage에 맞는 설정 적용
+ /// - Stage1: 적군 비활성화, 대형 유지만 학습
+ /// - Stage2: 적군 1~2대 활성화, 포획 보상 학습
+ /// - Stage3: 적군 3~5대 활성화, 전술 기동 학습
+ ///
+ private void ApplyStageSettings()
+ {
+ int activeEnemyCount = GetActiveEnemyCountForStage();
+
+
+ // 적군 활성화/비활성화
+ ApplyEnemyActivation(activeEnemyCount);
+
+ // Stage별 추가 설정
+ switch (currentStage)
+ {
+ case TrainingStage.Stage1_Formation:
+ // Stage1: 대형 유지에 집중
+ // 포획/모선 관련 이벤트는 발생해도 보상 없음 (적군이 비활성화되므로 발생 안함)
+ break;
+
+ case TrainingStage.Stage2_Capture:
+ // Stage2: 포획 보상 활성화
+ break;
+
+ case TrainingStage.Stage3_Tactical:
+ // Stage3: 전술 기동 보상 활성화
+ break;
+ }
+ }
+
+ ///
+ /// 현재 Stage에서 활성화할 적군 수 반환
+ ///
+ private int GetActiveEnemyCountForStage()
+ {
+ switch (currentStage)
+ {
+ case TrainingStage.Stage1_Formation:
+ return disableEnemiesInStage1 ? 0 : stage1EnemyCount;
+
+ case TrainingStage.Stage2_Capture:
+ return stage2EnemyCount;
+
+ case TrainingStage.Stage3_Tactical:
+ return stage3EnemyCount;
+
+ default:
+ return 0;
+ }
+ }
+
+ ///
+ /// 적군 선박 활성화/비활성화 적용
+ ///
+ private void ApplyEnemyActivation(int activeCount)
+ {
+ int activated = 0;
+
+ // enemyShips 배열 처리
+ if (enemyShips != null && enemyShips.Length > 0)
+ {
+ for (int i = 0; i < enemyShips.Length; i++)
+ {
+ if (enemyShips[i] != null)
+ {
+ bool shouldBeActive = activated < activeCount;
+ enemyShips[i].SetActive(shouldBeActive);
+
+ if (shouldBeActive)
+ {
+ activated++;
+ }
+ }
+ }
+ }
+
+ // _attackBoats 리스트도 처리 (enemyShips와 중복되지 않는 것들)
+ foreach (var boat in _attackBoats)
+ {
+ if (boat == null) continue;
+
+ // enemyShips에 이미 포함되어 있는지 확인
+ bool alreadyProcessed = false;
+ if (enemyShips != null)
+ {
+ foreach (var enemy in enemyShips)
+ {
+ if (enemy == boat)
+ {
+ alreadyProcessed = true;
+ break;
+ }
+ }
+ }
+
+ if (!alreadyProcessed)
+ {
+ bool shouldBeActive = activated < activeCount;
+ boat.SetActive(shouldBeActive);
+
+ if (shouldBeActive)
+ {
+ activated++;
+ }
+ }
+ }
+ }
+
+ ///
+ /// Stage 변경 (Inspector 또는 코드에서 호출)
+ ///
+ public void SetTrainingStage(TrainingStage newStage)
+ {
+ if (currentStage != newStage)
+ {
+ currentStage = newStage;
+
+ ApplyStageSettings();
+ }
+ }
+
+ ///
+ /// 포획 보상 활성화 여부 (Stage2, Stage3에서만 true)
+ ///
+ public bool IsCaptureRewardEnabled()
+ {
+ return currentStage == TrainingStage.Stage2_Capture ||
+ currentStage == TrainingStage.Stage3_Tactical;
+ }
+
+ ///
+ /// 모선 충돌 페널티 활성화 여부 (Stage2, Stage3에서만 true)
+ ///
+ public bool IsMotherShipPenaltyEnabled()
+ {
+ return currentStage == TrainingStage.Stage2_Capture ||
+ currentStage == TrainingStage.Stage3_Tactical;
+ }
+
+ ///
+ /// 전술 기동 보상 활성화 여부 (Stage3에서만 true)
+ ///
+ public bool IsTacticalRewardEnabled()
+ {
+ return currentStage == TrainingStage.Stage3_Tactical;
+ }
+
+ #endregion
+
+ #region Gizmo Visualization
+
+ ///
+ /// 에디터에서 스폰 범위 시각화
+ ///
+ private void OnDrawGizmos()
+ {
+ if (!enableRandomSpawn && !enableEnemyPathRandomization)
+ return;
+
+ // 아군 선박 스폰 범위 시각화 (Cyan)
+ if (enableRandomSpawn)
+ {
+ Gizmos.color = new Color(0f, 1f, 1f, 0.3f); // 반투명 시안
+
+ // Defense 1 스폰 범위
+ Vector3 def1Pos = _originalDefense1Pos != Vector3.zero ? _originalDefense1Pos : defense1SpawnPos;
+ if (def1Pos != Vector3.zero)
+ {
+ DrawCircleGizmo(def1Pos, spawnRange, 32);
+ Gizmos.DrawWireSphere(def1Pos, 1f); // 중심점 표시
+ }
+
+ // Defense 2 스폰 범위
+ Vector3 def2Pos = _originalDefense2Pos != Vector3.zero ? _originalDefense2Pos : defense2SpawnPos;
+ if (def2Pos != Vector3.zero)
+ {
+ DrawCircleGizmo(def2Pos, spawnRange, 32);
+ Gizmos.DrawWireSphere(def2Pos, 1f); // 중심점 표시
+ }
+
+ // 라벨 표시
+ #if UNITY_EDITOR
+ UnityEditor.Handles.color = Color.cyan;
+ if (def1Pos != Vector3.zero)
+ UnityEditor.Handles.Label(def1Pos + Vector3.up * 5f, $"Defense1\n반경: {spawnRange}m");
+ if (def2Pos != Vector3.zero)
+ UnityEditor.Handles.Label(def2Pos + Vector3.up * 5f, $"Defense2\n반경: {spawnRange}m");
+ #endif
+ }
+
+ // 적군 웨이포인트 스폰 범위 시각화 (Red) - 모든 attack_track 경로
+ if (enableEnemyPathRandomization && _availableAttackPaths != null)
+ {
+ Gizmos.color = new Color(1f, 0.3f, 0.3f, 0.3f); // 반투명 빨강
+
+ for (int p = 0; p < _availableAttackPaths.Length; p++)
+ {
+ var path = _availableAttackPaths[p];
+ if (path == null || path.m_Waypoints == null) continue;
+
+ for (int i = 0; i < 3 && i < path.m_Waypoints.Length; i++)
+ {
+ Vector3 waypointPos;
+ if (_allOriginalWaypoints != null && p < _allOriginalWaypoints.Length && i < _allOriginalWaypoints[p].Length)
+ {
+ waypointPos = _allOriginalWaypoints[p][i];
+ }
+ else
+ {
+ waypointPos = path.m_Waypoints[i].position;
+ }
+
+ if (path.transform != null)
+ {
+ waypointPos = path.transform.TransformPoint(waypointPos);
+ }
+
+ DrawCircleGizmo(waypointPos, spawnRange, 32);
+ Gizmos.DrawWireSphere(waypointPos, 2f);
+
+ #if UNITY_EDITOR
+ UnityEditor.Handles.color = Color.red;
+ UnityEditor.Handles.Label(waypointPos + Vector3.up * 5f, $"{path.gameObject.name} WP{i}\n반경: {spawnRange}m");
+ #endif
+ }
+ }
+ }
+ }
+
+ ///
+ /// XZ 평면에 원 그리기 (Gizmo용)
+ ///
+ private void DrawCircleGizmo(Vector3 center, float radius, int segments)
+ {
+ float angleStep = 360f / segments;
+ Vector3 prevPoint = center + new Vector3(radius, 0f, 0f);
+
+ for (int i = 1; i <= segments; i++)
+ {
+ float angle = i * angleStep * Mathf.Deg2Rad;
+ Vector3 newPoint = center + new Vector3(
+ Mathf.Cos(angle) * radius,
+ 0f,
+ Mathf.Sin(angle) * radius
+ );
+ Gizmos.DrawLine(prevPoint, newPoint);
+ prevPoint = newPoint;
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs.meta b/Assets/Scripts/Defense/DefenseEnvController.cs.meta
old mode 100755
new mode 100644
similarity index 69%
rename from Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs.meta
rename to Assets/Scripts/Defense/DefenseEnvController.cs.meta
index 4c36a17db..a1773e738
--- a/Assets/NavMeshComponents/Editor/NavMeshModifierEditor.cs.meta
+++ b/Assets/Scripts/Defense/DefenseEnvController.cs.meta
@@ -1,8 +1,7 @@
fileFormatVersion: 2
-guid: 6fa04b4743e3947eba4d7b9e5832ea69
-timeCreated: 1477036742
-licenseType: Pro
+guid: 92731fdf222c4ed46bf9c385a64a8160
MonoImporter:
+ externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
diff --git a/Assets/Scripts/Defense/DefenseRewardCalculator.cs b/Assets/Scripts/Defense/DefenseRewardCalculator.cs
new file mode 100644
index 000000000..7694efa81
--- /dev/null
+++ b/Assets/Scripts/Defense/DefenseRewardCalculator.cs
@@ -0,0 +1,185 @@
+using UnityEngine;
+
+namespace BoatAttack
+{
+ ///
+ /// 보상 계산기 (단순화)
+ /// 매 스텝: 대형 유지 + 적 접근 + 시간 페널티
+ /// 이벤트: 포획/모선충돌/아군충돌 (EnvController에서 직접 참조)
+ ///
+ public class DefenseRewardCalculator : MonoBehaviour
+ {
+ [Header("=== 매 스텝 보상 ===")]
+ [Tooltip("대형 유지 보상 (아군 간격이 적정 범위 내일 때)")]
+ public float formationReward = 0.001f;
+
+ [Tooltip("아군 간 최적 거리 (m)")]
+ public float optimalDistance = 50f;
+
+ [Tooltip("거리 허용 범위 (±m) - 최적 거리 기준")]
+ public float distanceTolerance = 25f;
+
+ [Tooltip("적 접근 보상 (Web-적 거리 1m 감소당)")]
+ public float approachRewardPerMeter = 0.001f;
+
+ [Tooltip("헤딩 정렬 보상 (에이전트가 적을 향할수록)")]
+ public float headingAlignmentReward = 0.0005f;
+
+ [Tooltip("시간 페널티 (매 스텝)")]
+ public float timePenalty = -0.0001f;
+
+ [Header("=== 이벤트 보상 ===")]
+ [Tooltip("포획 성공 (적이 Web에 충돌)")]
+ public float captureReward = 1.0f;
+
+ [Tooltip("모선 충돌 페널티 (적이 모선에 충돌)")]
+ public float motherShipHitPenalty = -1.0f;
+
+ [Tooltip("충돌 페널티 (아군끼리/모선/거리초과 등)")]
+ public float collisionPenalty = -0.5f;
+
+ // 이전 스텝의 Web-적 거리 (접근 보상 계산용)
+ private float _prevWebToEnemyDist = float.MaxValue;
+
+ ///
+ /// 에이전트 상태
+ ///
+ public struct AgentState
+ {
+ public Vector3 position;
+ public float heading;
+ public float speed;
+ }
+
+ ///
+ /// 매 스텝 보상 계산: 대형 유지 + 적 접근 + 시간 페널티
+ ///
+ public float CalculateStepReward(AgentState agent1, AgentState agent2,
+ GameObject[] enemyShips, GameObject webObject)
+ {
+ float reward = 0f;
+
+ // 1. 대형 유지: 아군 간 거리가 적정 범위(optimalDistance ± tolerance) 내면 보상
+ float allyDist = Vector3.Distance(agent1.position, agent2.position);
+ float error = Mathf.Abs(allyDist - optimalDistance);
+ if (error <= distanceTolerance)
+ {
+ reward += formationReward * (1f - error / distanceTolerance);
+ }
+
+ // 2. 적 접근: Web과 가장 가까운 적 사이 거리가 줄었으면 보상
+ if (webObject != null && enemyShips != null)
+ {
+ float closestDist = GetClosestEnemyDistance(webObject.transform.position, enemyShips);
+ if (closestDist < float.MaxValue && _prevWebToEnemyDist < float.MaxValue)
+ {
+ float delta = _prevWebToEnemyDist - closestDist;
+ if (delta > 0f)
+ {
+ reward += approachRewardPerMeter * delta;
+ }
+ }
+ _prevWebToEnemyDist = closestDist;
+ }
+
+ // 3. 시간 페널티
+ reward += timePenalty;
+
+ return reward;
+ }
+
+ ///
+ /// 개별 에이전트 헤딩 정렬 보상 계산 (그룹이 아닌 개별 보상으로 부여)
+ ///
+ public float CalculateIndividualHeadingReward(AgentState agent, GameObject[] enemyShips)
+ {
+ if (enemyShips == null) return 0f;
+
+ float alignment = GetHeadingAlignment(agent, enemyShips);
+ if (alignment > 0f)
+ {
+ return headingAlignmentReward * alignment;
+ }
+ return 0f;
+ }
+
+ ///
+ /// 에이전트 헤딩과 가장 가까운 적 방향의 정렬도 (-1~1)
+ /// 1=정면, 0=수직, -1=등짐
+ ///
+ private float GetHeadingAlignment(AgentState agent, GameObject[] enemies)
+ {
+ float minDist = float.MaxValue;
+ Vector3 closestPos = Vector3.zero;
+ foreach (var enemy in enemies)
+ {
+ if (enemy == null || !enemy.activeInHierarchy) continue;
+ float dist = Vector3.Distance(agent.position, enemy.transform.position);
+ if (dist < minDist)
+ {
+ minDist = dist;
+ closestPos = enemy.transform.position;
+ }
+ }
+ if (minDist >= float.MaxValue) return 0f;
+
+ // heading(euler Y) → forward 벡터
+ float rad = agent.heading * Mathf.Deg2Rad;
+ Vector3 forward = new Vector3(Mathf.Sin(rad), 0f, Mathf.Cos(rad));
+
+ // 적 방향 (수평면)
+ Vector3 toEnemy = closestPos - agent.position;
+ toEnemy.y = 0f;
+ if (toEnemy.sqrMagnitude < 0.01f) return 0f;
+ toEnemy.Normalize();
+
+ return Vector3.Dot(forward, toEnemy);
+ }
+
+ ///
+ /// Web 위치에서 가장 가까운 활성 적군까지의 거리
+ ///
+ private float GetClosestEnemyDistance(Vector3 webPos, GameObject[] enemies)
+ {
+ float minDist = float.MaxValue;
+ foreach (var enemy in enemies)
+ {
+ if (enemy == null || !enemy.activeInHierarchy) continue;
+ float dist = Vector3.Distance(webPos, enemy.transform.position);
+ if (dist < minDist) minDist = dist;
+ }
+ return minDist;
+ }
+
+ ///
+ /// 에이전트 상태 수집
+ ///
+ public AgentState GetAgentState(DefenseAgent agent)
+ {
+ if (agent == null)
+ return new AgentState();
+
+ AgentState state = new AgentState
+ {
+ position = agent.transform.position,
+ heading = agent.transform.eulerAngles.y
+ };
+
+ Rigidbody rb = agent.GetComponent();
+ if (rb != null)
+ {
+ state.speed = rb.velocity.magnitude;
+ }
+
+ return state;
+ }
+
+ ///
+ /// 리셋 (에피소드 시작 시)
+ ///
+ public void Reset()
+ {
+ _prevWebToEnemyDist = float.MaxValue;
+ }
+ }
+}
diff --git a/Assets/Scripts/Defense/DefenseRewardCalculator.cs.meta b/Assets/Scripts/Defense/DefenseRewardCalculator.cs.meta
new file mode 100644
index 000000000..eb8492190
--- /dev/null
+++ b/Assets/Scripts/Defense/DefenseRewardCalculator.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 45b0120affbd8f34e82e117897879b13
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/EpisodeEndConditions.md b/Assets/Scripts/Defense/EpisodeEndConditions.md
new file mode 100644
index 000000000..667830aba
--- /dev/null
+++ b/Assets/Scripts/Defense/EpisodeEndConditions.md
@@ -0,0 +1,183 @@
+# 에피소드 종료 조건
+
+## 📋 에피소드가 종료되는 경우
+
+### 1. ✅ 적 포획 성공 (성공 종료)
+**위치**: `DefenseEnvController.OnEnemyCaptured()`
+
+**조건**:
+- 적 USV가 Web 오브젝트와 충돌 (WebCollisionDetector 감지)
+
+**동작**:
+1. 포획 보상 부여: `captureReward` (기본: +1.0)
+2. 위치 보너스 계산: 그물 중심에 가까울수록 추가 보상 (최대 +0.3)
+3. 보상 분배 (그룹 또는 개별)
+4. **즉시 에피소드 종료**
+5. 0.5초 후 새 에피소드 시작
+
+**로그**:
+```
+[DefenseEnvController] 적 포획 성공! 보상: 1.xxx
+```
+
+---
+
+### 2. ❌ 모선 충돌 (Game Over - 즉시 종료)
+**위치**: `DefenseEnvController.OnMotherShipCollision()`
+
+**조건**:
+- 적 USV가 모선(MotherShip)과 충돌
+- MotherShipCollisionDetector가 감지
+
+**동작**:
+1. 큰 패널티 부여: `motherShipCollisionPenalty` (기본: -1.75)
+2. 보상 분배 (그룹 또는 개별)
+3. **즉시 에피소드 종료** (가장 심각한 실패)
+4. 0.5초 후 새 에피소드 시작
+
+**로그**:
+```
+[DefenseEnvController] 모선 충돌! Game Over. 패널티: -1.75
+```
+
+---
+
+### 3. ❌ 아군 충돌 (즉시 종료)
+**위치**: `DefenseEnvController.OnFriendlyCollision()`
+
+**조건**:
+- 아군-아군 충돌 (DefenseAgent 1 ↔ DefenseAgent 2)
+- 아군-모선 충돌 (DefenseAgent ↔ MotherShip)
+- DefenseAgent.OnCollisionEnter()에서 감지
+
+**동작**:
+1. 충돌 패널티 부여: `collisionPenalty` (기본: -1.0)
+2. 보상 분배 (그룹 또는 개별)
+3. **즉시 에피소드 종료**
+4. 0.5초 후 새 에피소드 시작
+
+**로그**:
+```
+[DefenseEnvController] 아군 충돌! 패널티: -1.0
+```
+
+---
+
+### 4. ⏱️ 타임아웃 (시간 초과)
+**위치**: `DefenseBoatManager.Update()`
+
+**조건**:
+- 에피소드 시작 후 `maxEpisodeTime` 초 경과 (기본: 120초)
+
+**동작**:
+1. 타임아웃 패널티 부여: `timeoutPenalty` (기본: -1.0)
+2. 보상 분배 (그룹 또는 개별)
+3. **에피소드 종료**
+4. 0.5초 후 새 에피소드 시작
+
+**로그**:
+```
+[DefenseBoatManager] 에피소드 타임아웃
+```
+
+**설정**:
+- Inspector에서 `maxEpisodeTime` 조절 가능 (초 단위)
+
+---
+
+### 5. ✅ 모선 방어 성공 (정상 종료)
+**위치**: `DefenseEnvController.OnEpisodeEnd()`
+
+**조건**:
+- 에피소드가 다른 이유로 종료될 때
+- 적이 모선 방어 존(`motherShipDefenseRadius`)에 진입하지 않았을 때
+
+**동작**:
+1. 모선 방어 성공 보상 부여: `motherShipDefenseReward` (기본: +0.5)
+2. 보상 분배 (그룹 또는 개별)
+3. 에피소드 종료
+
+**로그**:
+```
+[DefenseEnvController] 모선 방어 성공! 보상: 0.5
+```
+
+**주의**: 이것은 다른 종료 조건과 함께 발생할 수 있습니다 (예: 타임아웃 후 모선 방어 성공 체크)
+
+---
+
+## 🔄 에피소드 종료 후 동작
+
+### 자동 재시작
+1. **에피소드 종료** → `EndCurrentEpisode()` 호출
+2. **0.5초 대기** → `Invoke(nameof(StartNewEpisode), 0.5f)`
+3. **새 에피소드 시작** → `StartNewEpisode()` 호출
+ - 위치 리셋 (랜덤 스폰 포함)
+ - WebDetector 리셋
+ - DefenseEnvController.OnEpisodeBegin() 호출
+
+---
+
+## 📊 종료 조건 우선순위
+
+### 즉시 종료 (가장 높은 우선순위):
+1. **모선 충돌** (-1.75) - Game Over
+2. **아군 충돌** (-1.0)
+3. **적 포획 성공** (+1.0~1.3)
+
+### 시간 기반 종료:
+4. **타임아웃** (-1.0) - 120초 경과
+
+### 종료 시 추가 보상:
+5. **모선 방어 성공** (+0.5) - 다른 종료 조건과 함께 체크
+
+---
+
+## ⚙️ Inspector 설정
+
+### DefenseBoatManager:
+- **Max Episode Time**: 120 (초) - 타임아웃 시간
+
+### DefenseEnvController:
+- **Capture Reward**: 1.0 - 포획 성공 보상
+- **Capture Center Bonus**: 0.3 - 위치 보너스 최대값
+- **Mother Ship Defense Reward**: 0.5 - 모선 방어 성공 보상
+- **Mother Ship Collision Penalty**: -1.75 - 모선 충돌 패널티
+- **Collision Penalty**: -1.0 - 아군 충돌 패널티
+- **Timeout Penalty**: -1.0 - 타임아웃 패널티 (DefenseBoatManager에서 설정)
+
+---
+
+## 🔍 디버깅
+
+### 에피소드 종료 확인:
+1. **Console 로그 확인**:
+ - `[DefenseEnvController] 적 포획 성공!`
+ - `[DefenseEnvController] 모선 충돌! Game Over.`
+ - `[DefenseEnvController] 아군 충돌!`
+ - `[DefenseBoatManager] 에피소드 타임아웃`
+ - `[DefenseEnvController] 모선 방어 성공!`
+
+2. **enableDebugLog 활성화**:
+ - DefenseEnvController의 `enableDebugLog` 체크
+ - DefenseBoatManager의 `enableDebugLog` 체크
+
+3. **에피소드 재시작 확인**:
+ - 0.5초 후 선박들이 랜덤 위치로 재생성되는지 확인
+ - 모선은 위치가 유지되는지 확인
+
+---
+
+## 💡 요약
+
+**에피소드가 종료되는 경우:**
+1. ✅ 적 포획 성공
+2. ❌ 모선 충돌 (Game Over)
+3. ❌ 아군 충돌
+4. ⏱️ 타임아웃 (120초)
+5. ✅ 모선 방어 성공 (종료 시 추가 보상)
+
+**종료 후:**
+- 0.5초 대기
+- 새 에피소드 시작 (랜덤 스폰)
+- 모든 선박 위치 리셋 (모선 제외)
diff --git a/Assets/Scripts/Defense/EpisodeEndConditions.md.meta b/Assets/Scripts/Defense/EpisodeEndConditions.md.meta
new file mode 100644
index 000000000..8b2dd5edf
--- /dev/null
+++ b/Assets/Scripts/Defense/EpisodeEndConditions.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d9845fbec91167742af2434e7ce2ecc3
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/MA_PPO_Implementation_Plan.md b/Assets/Scripts/Defense/MA_PPO_Implementation_Plan.md
new file mode 100644
index 000000000..855b6dfa4
--- /dev/null
+++ b/Assets/Scripts/Defense/MA_PPO_Implementation_Plan.md
@@ -0,0 +1,1187 @@
+# MA-PPO 구현 계획서
+
+## 1. 개요
+- **목표**: 2대의 DefenseAgent가 협력하여 적 USV를 포획하는 Multi-Agent PPO 학습 시스템
+- **환경**: Unity ML-Agents
+- **알고리즘**: PPO (Proximal Policy Optimization) with Multi-Agent 설정
+
+---
+
+## 2. 보상 체계 구현 계획
+
+### 2.1 임무 성과 (Mission Performance) - 최상/상 가중치
+
+#### ✅ 적 포획 성공 (+1.0 + 위치 보너스)
+- **현재 상태**: `OnEnemyCaptured()` 메서드로 구현됨
+- **개선 사항**:
+ - 보상값을 1.0으로 변경 (현재 10.0)
+ - 두 에이전트 모두 동일한 보상 수신 확인
+ - **위치 기반 보너스 추가**: 그물의 중심에 가까울수록 추가 보상
+ - 그물 중심 = 두 USV의 중점
+ - 포획 시 적의 위치와 그물 중심 간 거리 계산
+ - 거리가 가까울수록 보너스 보상 (최대 +0.3 정도)
+ - 공식: `centerBonus = maxCenterBonus * (1 - distanceToCenter / maxDistance)`
+ - 예: 중심에서 0m = +0.3, 10m = +0.2, 20m = +0.1, 30m 이상 = +0.0
+ - **구현 방법**:
+ - `WebCollisionDetector.OnTriggerEnter()`에서 적의 위치 저장
+ - `OnEnemyCaptured(Vector3 enemyPosition)` 메서드 시그니처 변경
+ - `DefenseAgent.OnEnemyCaptured()`에서 파트너와 함께 그물 중심 계산
+ - 중심으로부터 거리에 따라 보너스 계산 및 추가 보상
+
+#### ⚠️ 모선 방어 성공 (+0.5)
+- **구현 필요**:
+ - `DefenseBoatManager`에 모선 참조 추가
+ - 에피소드 종료 시점 체크 (`OnEpisodeEnd()` 또는 `EndCurrentEpisode()`)
+ - 적이 모선으로부터 1km 이내 진입했는지 추적
+ - 진입 실패 시 두 에이전트 모두 +0.5 보상
+
+#### ⚠️ 방어선 침범 (-0.1)
+- **구현 필요**:
+ - 2km 경계선과 1km 경계선 정의
+ - 적의 모선까지 거리 추적
+ - 경계선 돌파 감지 시 즉시 -0.1 보상
+ - 중복 보상 방지 (각 경계선당 1회만)
+
+---
+
+### 2.2 협동 기동 (Cooperative Maneuvering) - 중 가중치
+
+#### ⚠️ 헤딩 동기화 (+0.0001~0.0005)
+- **구현 필요**:
+ - `CalculateReward()`에서 매 스텝 계산
+ - 허용 범위 설정 (예: ±15도)
+ - 범위 내일 때만 미세한 보상 부여
+- **⚠️ 중요: 보상 값 조정**
+ - **원래 계획**: +0.01 (매 스텝)
+ - **문제점**: 에피소드가 25,000 스텝일 때, 1,000 스텝만 동기화해도 10.0 보상 → 최종 목표(+1.0) 압도
+ - **해결책**: **+0.0001~0.0005**로 대폭 감소 (에피소드당 최대 1.25~6.25)
+ - **상태 보상 방식**: 특정 오차 범위 내에 있을 때만 아주 미세하게 부여
+
+#### ⚠️ 속도 동기화 (+0.0001~0.0005)
+- **구현 필요**:
+ - 두 USV의 속도 차이 계산
+ - 허용 범위 설정 (예: ±2 m/s)
+ - 범위 내일 때만 미세한 보상 부여
+- **⚠️ 중요: 보상 값 조정**
+ - **원래 계획**: +0.01 (매 스텝)
+ - **해결책**: **+0.0001~0.0005**로 대폭 감소
+ - **상태 보상 방식**: 속도 차이가 허용 범위 내일 때만 부여
+
+#### ⚠️ 간격 유지 (+0.0001~0.0005)
+- **현재 상태**: 거리 유지 페널티만 존재
+- **개선 사항**:
+ - 최적 거리(50m) 유지 시 미세한 보상 추가
+ - 허용 범위 설정 (예: 45m~55m)
+ - 기존 페널티는 유지하되, 보상도 추가
+- **⚠️ 중요: 보상 값 조정**
+ - **원래 계획**: +0.01 (매 스텝)
+ - **해결책**: **+0.0001~0.0005**로 대폭 감소
+
+#### ⚠️ 그물 장력 (Net Tension) (+0.0003~0.0008)
+- **구현 필요**:
+ - 두 배 사이의 거리가 그물 길이의 90~95% 수준일 때 보상 극대화
+ - 그물이 최대로 펼쳐진 상태(팽팽한 상태) 유도
+ - 방어 면적 최대화를 위한 보상
+- **구현 방법**:
+ - 그물 최대 길이 정의 (예: 50m)
+ - 현재 두 배 간 거리 계산
+ - 거리가 그물 길이의 90~95% 범위일 때 최대 보상
+ - 공식: `tensionReward = maxReward * (1 - |distance - optimalDistance| / tolerance)`
+ - 예: 그물 길이 50m, 최적 범위 45~47.5m (90~95%)
+- **⚠️ 중요: 보상 값**
+ - **권장 값**: **+0.0003~0.0008** (간격 유지보다 약간 높게)
+ - 그물이 끊어지거나 엉키는 것을 방지하는 중요한 보상
+
+---
+
+### 2.3 전술 기동 (Tactical Maneuvering) - 하/최하 가중치
+
+#### ⚠️ 수직 차단 (+0.0005~0.001)
+- **구현 필요**:
+ - 그물 선분 계산 (두 USV 사이 직선)
+ - 적의 진입 경로 벡터 계산
+ - 두 벡터 간 각도 계산 (90도에 가까울수록 보상)
+ - 임계값 설정 (예: 75도~105도 범위)
+- **⚠️ 중요: 보상 값 조정**
+ - **원래 계획**: +0.005 (매 스텝)
+ - **해결책**: **+0.0005~0.001**로 감소
+
+#### ⚠️ 추적 이득 (+0.0001~0.0005)
+- **구현 필요**:
+ - 이전 스텝의 적-그물 거리 저장
+ - 현재 스텝의 거리와 비교
+ - 거리 감소 시 미세한 보상 부여 (Potential 기반)
+- **⚠️ 중요: 보상 값 조정**
+ - **원래 계획**: +0.001 (매 스텝)
+ - **해결책**: **+0.0001~0.0005**로 감소
+
+---
+
+### 2.4 안전 및 제약 (Safety & Constraints) - 최상/중/최하 가중치
+
+#### ⚠️ 충돌 발생 (-1.0)
+- **구현 필요**:
+ - `OnCollisionEnter()` 또는 `OnTriggerEnter()` 추가
+ - 충돌 대상 확인 (아군-아군, 아군-모선)
+ - 충돌 시 즉시 -1.0 보상 및 에피소드 종료
+
+#### ⚠️ 모선 충돌 패널티 (Game Over) (-1.5 ~ -2.0) ⚠️ 최우선
+- **구현 필요**:
+ - 적군 선박(attack_boat 태그)이 모선(MotherShip 태그)과 충돌 시
+ - **즉시 에피소드 종료** 및 큰 패널티 부여
+ - 단순 실점이 아닌 **패배**로 처리
+- **구현 방법**:
+ - **옵션 1**: 모선에 `MotherShipCollisionDetector.cs` 컴포넌트 추가
+ - `OnCollisionEnter()` 또는 `OnTriggerEnter()` 사용
+ - 충돌 대상 태그 확인: `other.CompareTag("attack_boat")`
+ - `DefenseEnvController.OnMotherShipCollision()` 호출
+ - **옵션 2**: `DefenseBoatManager`에서 모선 충돌 감지
+ - 모선에 충돌 감지 스크립트 추가
+ - `DefenseEnvController` 참조를 통해 알림
+ - 그룹 보상으로 패널티 분배: `m_AgentGroup.AddGroupReward(-1.75f)`
+ - 즉시 에피소드 종료: `m_AgentGroup.EndGroupEpisode()`
+- **⚠️ 중요: 보상 값**
+ - **권장 값**: **-1.5 ~ -2.0** (아군 충돌 패널티 -1.0보다 더 큰 값)
+ - 모선 방어 실패는 최악의 결과이므로 가장 큰 패널티 부여
+ - 에피소드 즉시 종료로 학습 속도 향상
+- **구현 예시**:
+ ```csharp
+ // MotherShipCollisionDetector.cs (모선에 부착)
+ public class MotherShipCollisionDetector : MonoBehaviour
+ {
+ public DefenseEnvController envController;
+ public string enemyTag = "attack_boat";
+
+ private void OnCollisionEnter(Collision collision)
+ {
+ if (collision.gameObject.CompareTag(enemyTag))
+ {
+ if (envController != null)
+ envController.OnMotherShipCollision(collision.gameObject);
+ }
+ }
+
+ private void OnTriggerEnter(Collider other)
+ {
+ if (other.CompareTag(enemyTag))
+ {
+ if (envController != null)
+ envController.OnMotherShipCollision(other.gameObject);
+ }
+ }
+ }
+ ```
+
+#### ⚠️ 대형 붕괴 (-0.05)
+- **구현 필요**:
+ - 두 배 간 거리 체크 (예: 100m 초과 시)
+ - 헤딩 차이 체크 (예: 90도 이상)
+ - 조건 만족 시 -0.05 보상
+
+#### ✅ 시간 패널티 (-0.001)
+- **현재 상태**: `timePenalty = -0.001f`로 구현됨
+- **확인 사항**: 매 프레임 적용되는지 확인
+
+---
+
+## 3. 코드 구조 개선 계획
+
+### 3.1 DefenseAgent.cs 개선
+
+#### 추가할 필드:
+```csharp
+[Header("Observation Settings")]
+[Tooltip("관측할 적군 선박들 (인스펙터에서 할당)")]
+public GameObject[] enemyShips = new GameObject[5]; // 최대 5대까지 지원
+
+[Tooltip("최대 관측 가능한 적군 수")]
+public int maxEnemyCount = 5;
+
+[Header("Action Settings")]
+[Tooltip("최대 선속도 (m/s)")]
+public float maxLinearVelocity = 20f;
+
+[Tooltip("최대 각속도 (deg/s)")]
+public float maxAngularVelocity = 90f;
+
+[Tooltip("속도 제어 게인 (PID 또는 비례 제어)")]
+public float velocityControlGain = 1.0f;
+
+[Tooltip("각속도 제어 게인")]
+public float angularVelocityControlGain = 1.0f;
+
+[Tooltip("최대 선가속도 (m/s²) - 물리적 한계")]
+public float maxLinearAcceleration = 5f;
+
+[Tooltip("최대 각가속도 (deg/s²) - 물리적 한계")]
+public float maxAngularAcceleration = 45f;
+
+[Header("Reward Parameters")]
+// 임무 성과
+public float captureReward = 1.0f; // 기존 10.0 → 1.0
+public float captureCenterBonus = 0.3f; // 그물 중심 포획 보너스 (최대)
+public float captureCenterMaxDistance = 30f; // 중심으로부터 최대 거리 (이 거리 이상이면 보너스 0)
+public float motherShipDefenseReward = 0.5f;
+public float boundaryBreachPenalty = -0.1f;
+public float boundary2km = 2000f;
+public float boundary1km = 1000f;
+
+// 협동 기동 (⚠️ 보상 값 대폭 감소 - 보상 해킹 방지)
+public float headingSyncReward = 0.0002f; // 기존 0.01 → 0.0002 (50배 감소)
+public float headingSyncTolerance = 15f; // ±15도
+public float speedSyncReward = 0.0002f; // 기존 0.01 → 0.0002
+public float speedSyncTolerance = 2f; // ±2 m/s
+public float distanceMaintainReward = 0.0002f; // 기존 0.01 → 0.0002
+public float optimalDistance = 50f;
+public float distanceTolerance = 5f; // ±5m
+
+// 그물 장력 (Net Tension)
+public float netTensionReward = 0.0005f; // 그물이 팽팽할 때 보상
+public float netMaxLength = 50f; // 그물 최대 길이 (m)
+public float netOptimalMinRatio = 0.90f; // 최적 거리 비율 (최소)
+public float netOptimalMaxRatio = 0.95f; // 최적 거리 비율 (최대)
+public float netTensionTolerance = 0.05f; // 허용 오차
+
+// 전술 기동 (⚠️ 보상 값 감소)
+public float perpendicularInterceptReward = 0.0005f; // 기존 0.005 → 0.0005 (10배 감소)
+public float perpendicularAngleTolerance = 15f; // 75~105도
+public float trackingGainReward = 0.0002f; // 기존 0.001 → 0.0002 (5배 감소)
+
+// 안전 및 제약
+public float collisionPenalty = -1.0f; // 아군-아군, 아군-모선 충돌
+public float motherShipCollisionPenalty = -1.75f; // 적군-모선 충돌 (Game Over)
+public float formationBreakPenalty = -0.05f;
+public float maxFormationDistance = 100f;
+public float maxFormationAngleDiff = 90f;
+```
+
+#### 수정할 메서드:
+- `CollectObservations()` - 관측값 수집 로직 재구현
+ - 자신 상태 (4개)
+ - 팀원 상태 (4개)
+ - 적군들 상태 (4 × 적군수)
+ - 모선 상대거리 (3개: 상대 x, z, 총 거리)
+- `OnActionReceived()` - 목표 속도 기반 액션 처리로 변경
+ - 목표 선속도와 목표 각속도 수신
+ - 속도 제어 컨트롤러를 통한 throttle/steering 변환
+ - ⚠️ **개별 보상 제거**: `this.AddReward()` 호출 제거
+- `Heuristic()` - 휴리스틱 메서드 수정
+ - 키보드 입력을 목표 속도로 변환
+ - HumanController와 유사한 방식으로 동작
+- `CalculateReward()` - ⚠️ **제거 또는 비활성화**
+ - 개별 보상 계산 로직을 `DefenseRewardCalculator`로 이동
+ - 또는 빈 메서드로 유지 (호환성)
+
+#### 추가할 메서드 (DefenseAgent):
+- `SortEnemiesByDistance()` - 적군을 거리순으로 정렬 (학습 속도 향상)
+- `ConvertToLocalCoordinates()` - 절대 좌표를 상대 좌표(로컬 좌표계)로 변환
+- `ConvertTargetVelocityToThrottle()` - 목표 선속도를 throttle로 변환
+- `ConvertTargetAngularVelocityToSteering()` - 목표 각속도를 steering으로 변환
+- `ApplyAccelerationLimits()` - 목표 속도에 가속도 제한 적용
+- `OnCollisionEnter()` - 충돌 감지 (EnvController에 알림)
+
+#### 추가할 메서드 (DefenseRewardCalculator):
+- `CalculateCooperativeRewards()` - 헤딩/속도/간격 동기화, 그물 장력 계산
+- `CalculateNetTensionReward()` - 그물 장력 보상 계산
+- `CalculateTacticalRewards()` - 수직 차단, 추적 이득 계산
+- `CalculateMissionRewards()` - 임무 성과 보상 (포획, 모선 방어 등)
+- `CalculateSafetyPenalties()` - 충돌, 대형 붕괴 등 페널티 계산
+- `GetAgentStates()` - 두 에이전트의 현재 상태 수집
+
+#### 추가할 메서드 (DefenseEnvController):
+- `Update()` - 매 프레임 보상 계산 및 그룹 보상 분배
+- `DistributeGroupReward()` - `m_AgentGroup.AddGroupReward()` 호출
+- `OnEpisodeBegin()` - 에피소드 시작 시 초기화
+- `RegisterAgent()` - 에이전트 등록
+- `OnMotherShipCollision()` - 모선 충돌 감지 및 처리 (Game Over)
+
+---
+
+### 3.2 DefenseBoatManager.cs 개선
+
+#### 추가할 필드:
+```csharp
+[Header("Mother Ship Defense")]
+public GameObject motherShip;
+public float motherShipDefenseRadius = 1000f; // 1km
+private bool _enemyEnteredDefenseZone = false;
+
+[Header("Collision Detection")]
+public DefenseEnvController envController; // 모선 충돌 알림용
+```
+
+#### 추가할 메서드:
+- `CheckMotherShipDefense()` - 모선 방어 성공 체크
+- `CheckEnemyPosition()` - 적 위치 추적 (경계선 침범 감지)
+- `OnMotherShipCollision()` - 모선 충돌 감지 (적군-모선 충돌 체크)
+ - 모선에 `OnCollisionEnter()` 또는 `OnTriggerEnter()` 추가
+ - 충돌 대상이 `attack_boat` 태그인지 확인
+ - `envController.OnMotherShipCollision()` 호출
+
+---
+
+### 3.3 새로운 스크립트
+
+#### MotherShipCollisionDetector.cs (필수) ⚠️
+- **목적**: 모선과 적군 선박의 충돌을 감지
+- **역할**:
+ - 모선 GameObject에 부착
+ - `OnCollisionEnter()` 또는 `OnTriggerEnter()`로 충돌 감지
+ - 적군 태그(`attack_boat`) 확인
+ - `DefenseEnvController`에 충돌 알림
+- **구현 위치**: 모선 GameObject에 컴포넌트로 추가
+
+#### DefenseRewardCalculator.cs (필수) ⚠️
+- **목적**: 보상 계산 로직을 중앙화하여 그룹 보상 분배
+- **역할**:
+ - 두 에이전트의 상태를 모두 관찰
+ - 협동 기동, 전술 기동, 그물 장력 등을 계산
+ - `SimpleMultiAgentGroup.AddGroupReward()`를 통해 그룹 전체에 보상 분배
+- **주요 메서드**:
+ - `CalculateCooperativeRewards()` - 헤딩/속도/간격 동기화, 그물 장력
+ - `CalculateTacticalRewards()` - 수직 차단, 추적 이득
+ - `CalculateMissionRewards()` - 임무 성과 (포획, 모선 방어 등)
+ - `CalculateSafetyPenalties()` - 충돌, 대형 붕괴 등
+
+#### DefenseEnvController.cs (필수) ⚠️
+- **목적**: 환경 전체를 관리하고 그룹 보상을 분배하는 컨트롤러
+- **역할**:
+ - `SimpleMultiAgentGroup` 참조 관리
+ - `DefenseRewardCalculator`를 통한 보상 계산 및 분배
+ - 에피소드 관리 및 리셋
+- **주요 메서드**:
+ - `Update()` - 매 프레임 보상 계산 및 분배
+ - `OnEpisodeBegin()` - 에피소드 시작 시 초기화
+ - `DistributeGroupReward()` - 그룹 전체에 보상 분배
+
+#### 구현 예시 코드
+
+**DefenseRewardCalculator.cs**:
+```csharp
+using UnityEngine;
+using Unity.MLAgents;
+
+namespace BoatAttack
+{
+ public class DefenseRewardCalculator : MonoBehaviour
+ {
+ [Header("Reward Parameters")]
+ public float headingSyncReward = 0.0002f;
+ public float headingSyncTolerance = 15f;
+ public float speedSyncReward = 0.0002f;
+ public float speedSyncTolerance = 2f;
+ public float distanceMaintainReward = 0.0002f;
+ public float optimalDistance = 50f;
+ public float distanceTolerance = 5f;
+ public float netTensionReward = 0.0005f;
+ public float netMaxLength = 50f;
+ public float netOptimalMinRatio = 0.90f;
+ public float netOptimalMaxRatio = 0.95f;
+
+ public struct AgentState
+ {
+ public Vector3 position;
+ public float heading;
+ public float speed;
+ public Rigidbody rb;
+ }
+
+ public float CalculateCooperativeRewards(AgentState agent1, AgentState agent2)
+ {
+ float totalReward = 0f;
+
+ // 1. 헤딩 동기화
+ float headingDiff = Mathf.Abs(Mathf.DeltaAngle(agent1.heading, agent2.heading));
+ if (headingDiff <= headingSyncTolerance)
+ totalReward += headingSyncReward;
+
+ // 2. 속도 동기화
+ float speedDiff = Mathf.Abs(agent1.speed - agent2.speed);
+ if (speedDiff <= speedSyncTolerance)
+ totalReward += speedSyncReward;
+
+ // 3. 간격 유지
+ float distance = Vector3.Distance(agent1.position, agent2.position);
+ float distanceError = Mathf.Abs(distance - optimalDistance);
+ if (distanceError <= distanceTolerance)
+ totalReward += distanceMaintainReward;
+
+ // 4. 그물 장력 (Net Tension)
+ float optimalMin = netMaxLength * netOptimalMinRatio;
+ float optimalMax = netMaxLength * netOptimalMaxRatio;
+ if (distance >= optimalMin && distance <= optimalMax)
+ {
+ // 최적 범위 내에서 거리에 따라 보상 조정
+ float centerDistance = (optimalMin + optimalMax) / 2f;
+ float distanceFromCenter = Mathf.Abs(distance - centerDistance);
+ float maxDeviation = (optimalMax - optimalMin) / 2f;
+ float tensionFactor = 1f - (distanceFromCenter / maxDeviation);
+ totalReward += netTensionReward * tensionFactor;
+ }
+
+ return totalReward;
+ }
+
+ public AgentState GetAgentState(DefenseAgent agent)
+ {
+ AgentState state = new AgentState
+ {
+ position = agent.transform.position,
+ heading = agent.transform.eulerAngles.y,
+ rb = agent.GetComponent()
+ };
+ state.speed = state.rb != null ? state.rb.velocity.magnitude : 0f;
+ return state;
+ }
+ }
+}
+```
+
+**DefenseEnvController.cs**:
+```csharp
+using UnityEngine;
+using Unity.MLAgents;
+
+namespace BoatAttack
+{
+ public class DefenseEnvController : MonoBehaviour
+ {
+ [Header("Agents")]
+ public DefenseAgent defenseAgent1;
+ public DefenseAgent defenseAgent2;
+
+ [Header("Components")]
+ public SimpleMultiAgentGroup m_AgentGroup;
+ public DefenseRewardCalculator rewardCalculator;
+
+ [Header("Settings")]
+ [Tooltip("보상 계산 주기 (프레임 단위)")]
+ public int rewardCalculationInterval = 1; // 매 프레임
+
+ private int _frameCount = 0;
+
+ private void Start()
+ {
+ // SimpleMultiAgentGroup 초기화
+ if (m_AgentGroup == null)
+ m_AgentGroup = GetComponent();
+
+ // 에이전트 등록
+ if (m_AgentGroup != null)
+ {
+ m_AgentGroup.RegisterAgent(defenseAgent1);
+ m_AgentGroup.RegisterAgent(defenseAgent2);
+ }
+
+ // RewardCalculator 초기화
+ if (rewardCalculator == null)
+ rewardCalculator = GetComponent();
+ }
+
+ private void Update()
+ {
+ _frameCount++;
+
+ // 보상 계산 주기 확인
+ if (_frameCount % rewardCalculationInterval != 0)
+ return;
+
+ if (defenseAgent1 == null || defenseAgent2 == null ||
+ rewardCalculator == null || m_AgentGroup == null)
+ return;
+
+ // 1. 관측: 두 에이전트의 상태 수집
+ var agent1State = rewardCalculator.GetAgentState(defenseAgent1);
+ var agent2State = rewardCalculator.GetAgentState(defenseAgent2);
+
+ // 2. 계산: 협동 기동 보상 계산
+ float cooperativeReward = rewardCalculator.CalculateCooperativeRewards(
+ agent1State, agent2State);
+
+ // 3. 부여: 그룹 전체에 보상 분배
+ if (cooperativeReward > 0f)
+ m_AgentGroup.AddGroupReward(cooperativeReward);
+ }
+
+ public void OnEnemyCaptured(Vector3 enemyPosition)
+ {
+ // 포획 성공 보상 (그룹 보상)
+ float captureReward = 1.0f;
+ // 위치 보너스 계산...
+ m_AgentGroup.AddGroupReward(captureReward);
+ }
+
+ ///
+ /// 모선 충돌 감지 및 처리 (Game Over)
+ ///
+ public void OnMotherShipCollision(GameObject enemyBoat)
+ {
+ if (m_AgentGroup == null)
+ return;
+
+ // 큰 패널티 부여 (그룹 보상)
+ float penalty = -1.75f; // -1.5 ~ -2.0 범위에서 조정 가능
+ m_AgentGroup.AddGroupReward(penalty);
+
+ // 즉시 에피소드 종료
+ m_AgentGroup.EndGroupEpisode();
+
+ Debug.Log($"[DefenseEnvController] 모선 충돌! Game Over. 패널티: {penalty}");
+ }
+ }
+}
+```
+
+---
+
+## 4. 구현 단계
+
+### Phase 0: 관측값 및 액션 구조 개선 (최우선)
+0. ⚠️ 관측값 구조 재설계 및 구현
+ - 적군 선박 배열 필드 추가
+ - `CollectObservations()` 메서드 재구현
+ - **상대 좌표 기반 관측으로 변경** (일반화 성능 향상)
+ - 모선 상대거리 계산 로직 추가
+ - **적군 거리 기반 정렬 로직 추가** (학습 속도 향상)
+ - Behavior Config의 Observation Space 크기 조정
+0-1. ⚠️ 액션 공간 변경 (목표 속도 기반)
+ - `OnActionReceived()` 메서드 수정
+ - 목표 선속도/각속도를 throttle/steering으로 변환하는 로직 구현
+ - **가속도 제한 및 스무딩 강화** (물리적 한계 고려)
+ - 속도 제어 컨트롤러 구현 (PID 또는 비례 제어)
+ - `HumanController`와 유사한 방식으로 Engine 제어
+ - Behavior Config의 Action Space 크기 확인 (2개 유지)
+0-2. ⚠️ 보상 아키텍처 변경 (개별 → 그룹 보상) ⚠️ 최우선
+ - `DefenseRewardCalculator.cs` 생성 및 구현
+ - `DefenseEnvController.cs` 생성 및 구현
+ - `SimpleMultiAgentGroup` 설정 및 등록
+ - `DefenseAgent.CalculateReward()`에서 개별 보상 제거
+ - 모든 보상을 `m_AgentGroup.AddGroupReward()`로 변경
+ - 그물 장력(Net Tension) 보상 추가
+0-3. ⚠️ 보상 값 재조정 (보상 해킹 방지)
+ - 협동 기동 보상 값 대폭 감소 (0.01 → 0.0002)
+ - 전술 기동 보상 값 감소 (0.005 → 0.0005, 0.001 → 0.0002)
+ - 그물 장력 보상 추가 (0.0005)
+ - 보상 비율 검증 (최종 목표가 협동 보상 누적합보다 10배 이상 커야 함)
+
+### Phase 1: 기본 보상 체계 구현 (우선순위 높음)
+1. ✅ 적 포획 성공 보상 조정 (1.0)
+2. ⚠️ 포획 위치 기반 보너스 구현 (그물 중심 포획 보상)
+3. ⚠️ 모선 방어 성공 보상 구현
+4. ⚠️ 방어선 침범 패널티 구현
+5. ⚠️ 충돌 감지 및 패널티 구현 (아군-아군, 아군-모선)
+6. ⚠️ **모선 충돌 패널티 구현 (Game Over)** ⚠️ 최우선
+ - 적군-모선 충돌 감지
+ - 즉시 에피소드 종료 및 큰 패널티 (-1.5 ~ -2.0)
+ - 그룹 보상으로 분배
+
+### Phase 2: 협동 기동 보상 (우선순위 중)
+5. ⚠️ 헤딩 동기화 보상 구현
+6. ⚠️ 속도 동기화 보상 구현
+7. ⚠️ 간격 유지 보상 구현 (기존 페널티 개선)
+
+### Phase 3: 전술 기동 보상 (우선순위 낮음)
+8. ⚠️ 수직 차단 보상 구현
+9. ⚠️ 추적 이득 보상 구현
+
+### Phase 4: 안전 및 제약 (우선순위 높음)
+10. ⚠️ 대형 붕괴 패널티 구현
+11. ✅ 시간 패널티 확인 및 조정
+
+### Phase 5: 테스트 및 최적화
+12. 보상 값 튜닝
+13. 학습 성능 검증
+14. 디버깅 및 로깅 개선
+
+---
+
+## 5. ML-Agents 설정
+
+### 5.1 Behavior Config 설정
+- **Algorithm**: PPO
+- **Multi-Agent**: 두 에이전트가 동일한 Behavior 사용 (Shared Policy)
+- **⚠️ 중요: SimpleMultiAgentGroup 설정**
+ - Unity Scene에 `SimpleMultiAgentGroup` 컴포넌트 추가
+ - 두 `DefenseAgent`를 그룹에 등록
+ - `DefenseEnvController`가 그룹 참조를 통해 `AddGroupReward()` 호출
+- **Hyperparameters**:
+ - Learning Rate: 3e-4
+ - Batch Size: 128
+ - Buffer Size: 2048
+ - Beta (entropy): 0.01
+ - Epsilon (clipping): 0.2
+ - Lambda (GAE): 0.95
+ - Gamma (discount): 0.99
+
+### 5.2 Observation Space
+- **새로운 관측 구조** (동적 크기):
+ - **자신의 상태** (4개):
+ - 위치 (x, z) - 정규화: /100
+ - 헤딩 (y축 회전) - 정규화: 0~360 → 0~1
+ - 속도 (magnitude) - 정규화: /20
+ - **팀원(파트너) 선박 상태** (4개):
+ - 위치 (x, z) - 정규화: /100
+ - 헤딩 (y축 회전) - 정규화: 0~360 → 0~1
+ - 속도 (magnitude) - 정규화: /20
+ - **적군 선박들** (인스펙터에 할당된 개수만큼, 각 4개):
+ - 위치 (x, z) - 정규화: /100
+ - 헤딩 (y축 회전) - 정규화: 0~360 → 0~1
+ - 속도 (magnitude) - 정규화: /20
+ - **최대 적군 수 제한**: 예) 최대 5대까지 지원 (총 20개)
+ - 적군이 없거나 할당되지 않은 경우 0으로 채움
+ - **모선 상대거리** (1개 또는 3개):
+ - 옵션 1: 총 거리만 (1개) - 정규화: /1000
+ - 옵션 2: 상대 위치 벡터 (x, z, 거리) (3개) - 권장
+ - 모선이 없으면 0으로 채움
+
+- **총 관측 개수**: 4 + 4 + (4 × 적군수) + 3 = **11 + (4 × 적군수)**
+ - 예: 적군 1대 → 15개
+ - 예: 적군 3대 → 23개
+ - 예: 적군 5대 → 31개
+
+- **구현 방법**:
+ - `DefenseAgent`에 `public GameObject[] enemyShips` 배열 필드 추가
+ - 인스펙터에서 적군 선박들을 할당
+ - `CollectObservations()`에서 배열 순회하며 관측값 추가
+ - 최대 적군 수를 상수로 정의하여 관측 공간 크기 고정
+
+- **구현 예시 코드** (⚠️ 상대 좌표 기반으로 개선):
+```csharp
+public override void CollectObservations(VectorSensor sensor)
+{
+ Vector3 myPos = transform.position;
+ Vector3 myForward = transform.forward;
+ float myAngle = transform.eulerAngles.y;
+
+ // 1. 자신의 상태 (4개) - 절대 좌표 유지 (기준점)
+ sensor.AddObservation(myPos.x / 100f);
+ sensor.AddObservation(myPos.z / 100f);
+ sensor.AddObservation(myAngle / 360f);
+ sensor.AddObservation(_engine.RB.velocity.magnitude / 20f);
+
+ // 2. 팀원(파트너) 상태 (4개) - ⚠️ 상대 좌표로 변경
+ if (partnerAgent != null)
+ {
+ Vector3 relativeToPartner = partnerAgent.transform.position - myPos;
+ // 상대 위치를 로컬 좌표계로 변환
+ float relativeX = Vector3.Dot(relativeToPartner, transform.right) / 100f;
+ float relativeZ = Vector3.Dot(relativeToPartner, transform.forward) / 100f;
+ float relativeDistance = relativeToPartner.magnitude / 100f;
+ float relativeAngle = Mathf.DeltaAngle(myAngle, partnerAgent.transform.eulerAngles.y) / 180f; // -1~1
+
+ sensor.AddObservation(relativeX);
+ sensor.AddObservation(relativeZ);
+ sensor.AddObservation(relativeAngle);
+ sensor.AddObservation(partnerAgent._engine.RB.velocity.magnitude / 20f);
+ }
+ else { /* 0으로 채움 */ }
+
+ // 3. 적군 선박들 (4 × maxEnemyCount) - ⚠️ 거리 기반 정렬 + 상대 좌표
+ // 먼저 적군을 거리순으로 정렬
+ List<(GameObject enemy, float distance)> sortedEnemies = new List<(GameObject, float)>();
+ for (int i = 0; i < enemyShips.Length && i < maxEnemyCount; i++)
+ {
+ if (enemyShips[i] != null)
+ {
+ float dist = Vector3.Distance(myPos, enemyShips[i].transform.position);
+ sortedEnemies.Add((enemyShips[i], dist));
+ }
+ }
+ sortedEnemies.Sort((a, b) => a.distance.CompareTo(b.distance)); // 가까운 순으로 정렬
+
+ // 정렬된 적군을 관측값에 추가
+ for (int i = 0; i < maxEnemyCount; i++)
+ {
+ if (i < sortedEnemies.Count)
+ {
+ GameObject enemy = sortedEnemies[i].enemy;
+ Vector3 relativeToEnemy = enemy.transform.position - myPos;
+
+ // 상대 좌표 (로컬 좌표계)
+ float relativeX = Vector3.Dot(relativeToEnemy, transform.right) / 100f;
+ float relativeZ = Vector3.Dot(relativeToEnemy, transform.forward) / 100f;
+ float relativeDistance = relativeToEnemy.magnitude / 100f;
+ float relativeAngle = Mathf.DeltaAngle(myAngle, enemy.transform.eulerAngles.y) / 180f;
+
+ sensor.AddObservation(relativeX);
+ sensor.AddObservation(relativeZ);
+ sensor.AddObservation(relativeAngle);
+ Rigidbody enemyRb = enemy.GetComponent();
+ sensor.AddObservation(enemyRb != null ? enemyRb.velocity.magnitude / 20f : 0f);
+ }
+ else { /* 0으로 채움 */ }
+ }
+
+ // 4. 모선 상대거리 (3개) - 이미 상대 좌표
+ if (motherShip != null)
+ {
+ Vector3 relativePos = motherShip.transform.position - myPos;
+ float relativeX = Vector3.Dot(relativePos, transform.right) / 1000f;
+ float relativeZ = Vector3.Dot(relativePos, transform.forward) / 1000f;
+ sensor.AddObservation(relativeX);
+ sensor.AddObservation(relativeZ);
+ sensor.AddObservation(relativePos.magnitude / 1000f);
+ }
+ else { /* 0으로 채움 */ }
+}
+```
+
+// 목표 속도 기반 액션 처리 예시 (⚠️ 가속도 제한 및 스무딩 강화)
+public override void OnActionReceived(ActionBuffers actions)
+{
+ if (_engine == null || _episodeEnded)
+ return;
+
+ // 목표 속도 수신 (정규화된 값 -1~1)
+ float targetLinearVelNormalized = actions.ContinuousActions[0];
+ float targetAngularVelNormalized = actions.ContinuousActions[1];
+
+ // 정규화 해제
+ float targetLinearVelocity = targetLinearVelNormalized * maxLinearVelocity;
+ float targetAngularVelocity = targetAngularVelNormalized * maxAngularVelocity;
+
+ // 현재 속도 측정
+ float currentLinearVelocity = Vector3.Dot(_engine.RB.velocity, transform.forward);
+ float currentAngularVelocity = _engine.RB.angularVelocity.y * Mathf.Rad2Deg;
+
+ // ⚠️ 가속도 제한 적용 (물리적 한계 고려)
+ float maxLinearAcceleration = 5f; // m/s² (물리적으로 가능한 최대 가속도)
+ float maxAngularAcceleration = 45f; // deg/s²
+
+ // 이전 목표 속도 저장 (가속도 제한 계산용)
+ float prevTargetLinearVel = _lastTargetLinearVelocity;
+ float prevTargetAngularVel = _lastTargetAngularVelocity;
+
+ // 목표 속도 변화량 제한
+ float deltaTime = Time.fixedDeltaTime;
+ float maxLinearVelChange = maxLinearAcceleration * deltaTime;
+ float maxAngularVelChange = maxAngularAcceleration * deltaTime;
+
+ targetLinearVelocity = Mathf.Clamp(targetLinearVelocity,
+ prevTargetLinearVel - maxLinearVelChange,
+ prevTargetLinearVel + maxLinearVelChange);
+ targetAngularVelocity = Mathf.Clamp(targetAngularVelocity,
+ prevTargetAngularVel - maxAngularVelChange,
+ prevTargetAngularVel + maxAngularVelChange);
+
+ _lastTargetLinearVelocity = targetLinearVelocity;
+ _lastTargetAngularVelocity = targetAngularVelocity;
+
+ // 속도 차이 계산 및 throttle/steering 변환
+ float velocityError = targetLinearVelocity - currentLinearVelocity;
+ float throttle = Mathf.Clamp(velocityError * velocityControlGain / maxLinearVelocity, -1f, 1f);
+
+ float angularVelocityError = targetAngularVelocity - currentAngularVelocity;
+ float steering = Mathf.Clamp(angularVelocityError * angularVelocityControlGain / maxAngularVelocity, -1f, 1f);
+
+ // ⚠️ 스무스 처리 강화 (더 보수적으로)
+ float smoothFactor = 0.1f; // 기존 inputSmoothing보다 더 작게 (더 부드럽게)
+ _smoothThrottle = Mathf.Lerp(_smoothThrottle, throttle, smoothFactor);
+ _smoothSteering = Mathf.Lerp(_smoothSteering, steering, smoothFactor);
+
+ // Engine 제어
+ _engine.Accelerate(Mathf.Clamp01(_smoothThrottle)); // throttle은 0~1 범위
+ _engine.Turn(_smoothSteering * steeringSensitivity);
+
+ // 보상 계산
+ CalculateReward();
+}
+
+// 추가 필드 필요
+private float _lastTargetLinearVelocity = 0f;
+private float _lastTargetAngularVelocity = 0f;
+
+// 휴리스틱 메서드 예시 (HumanController 방식)
+// ⚠️ Unity의 새로운 Input System 사용 (UnityEngine.InputSystem)
+using UnityEngine.InputSystem;
+
+public override void Heuristic(in ActionBuffers actionsOut)
+{
+ var continuousActions = actionsOut.ContinuousActions;
+
+ // Unity Input System 사용 (Legacy Input 대신)
+ Keyboard keyboard = Keyboard.current;
+ if (keyboard == null)
+ {
+ continuousActions[0] = 0f;
+ continuousActions[1] = 0f;
+ return;
+ }
+
+ // 키보드 입력을 목표 속도로 변환
+ float targetLinearVel = 0f;
+ float targetAngularVel = 0f;
+
+ // Agent 이름으로 구분
+ if (gameObject.name.Contains("1"))
+ {
+ // WASD
+ if (keyboard.wKey.isPressed)
+ targetLinearVel = maxLinearVelocity; // 전진
+ else if (keyboard.sKey.isPressed)
+ targetLinearVel = -maxLinearVelocity * 0.5f; // 후진 (느리게)
+
+ if (keyboard.dKey.isPressed)
+ targetAngularVel = maxAngularVelocity; // 우회전
+ else if (keyboard.aKey.isPressed)
+ targetAngularVel = -maxAngularVelocity; // 좌회전
+ }
+ else if (gameObject.name.Contains("2"))
+ {
+ // Arrow Keys
+ if (keyboard.upArrowKey.isPressed)
+ targetLinearVel = maxLinearVelocity;
+ else if (keyboard.downArrowKey.isPressed)
+ targetLinearVel = -maxLinearVelocity * 0.5f;
+
+ if (keyboard.rightArrowKey.isPressed)
+ targetAngularVel = maxAngularVelocity;
+ else if (keyboard.leftArrowKey.isPressed)
+ targetAngularVel = -maxAngularVelocity;
+ }
+
+ // 정규화 (-1~1)
+ if (maxLinearVelocity > 0.01f)
+ continuousActions[0] = Mathf.Clamp(targetLinearVel / maxLinearVelocity, -1f, 1f);
+ else
+ continuousActions[0] = 0f;
+
+ if (maxAngularVelocity > 0.01f)
+ continuousActions[1] = Mathf.Clamp(targetAngularVel / maxAngularVelocity, -1f, 1f);
+ else
+ continuousActions[1] = 0f;
+}
+```
+
+### 5.3 Action Space
+- **변경 사항**: 목표 속도 기반 액션으로 변경
+ - **기존**: `actions[0]`: throttle (-1~1), `actions[1]`: steering (-1~1)
+ - **신규**: `actions[0]`: 목표 선속도 (target linear velocity, -maxSpeed~maxSpeed)
+ - **신규**: `actions[1]`: 목표 각속도 (target angular velocity, -maxAngularSpeed~maxAngularSpeed)
+ - **정규화**:
+ - 목표 선속도: 예) -20~20 m/s → -1~1로 정규화
+ - 목표 각속도: 예) -90~90 deg/s → -1~1로 정규화
+- **구현 방법**:
+ - `OnActionReceived()`에서 목표 속도 수신
+ - 목표 속도를 실제 throttle/steering으로 변환하는 컨트롤러 필요
+ - PID 컨트롤러 또는 비례 제어를 사용하여 목표 속도 달성
+ - `HumanController`와 유사한 방식으로 Engine 제어
+
+### 5.4 Behavior Config 설정 주의사항
+- **Observation Space 크기**:
+ - 공식: `11 + (4 × maxEnemyCount)`
+ - 예: maxEnemyCount = 5 → 31개
+ - Unity ML-Agents Behavior Config에서 이 값으로 설정 필요
+- **동적 적군 수 대응**:
+ - 인스펙터에서 할당되지 않은 적군은 0으로 채움
+ - 학습 시 항상 동일한 크기의 관측값 보장
+
+---
+
+## 6. 디버깅 및 모니터링
+
+### 6.1 보상 추적
+- 각 보상 카테고리별 누적 보상 표시
+- Unity Inspector에서 실시간 확인 가능하도록
+
+### 6.2 로깅
+- 주요 이벤트 로깅 (포획, 충돌, 경계선 침범 등)
+- **모선 충돌 이벤트 로깅** (Game Over 이벤트) ⚠️ 중요
+- 보상 분포 분석용 CSV 출력 (선택사항)
+
+### 6.3 시각화
+- Gizmo로 경계선 표시
+- 보상 히트맵 (선택사항)
+
+---
+
+## 7. 예상 결과
+
+### 7.1 학습 목표
+- 두 에이전트가 협력하여 적을 포획
+- 모선 방어 성공률 향상
+- 안전한 기동 (충돌 최소화)
+
+### 7.2 성능 지표
+- 포획 성공률
+- 평균 포획 위치 (그물 중심으로부터 거리)
+- 중심 포획 비율 (중심 10m 이내 포획 비율)
+- 평균 에피소드 길이
+- 충돌 발생률 (아군-아군, 아군-모선)
+- **모선 충돌 발생률** (적군-모선, Game Over 비율) ⚠️ 중요
+- 모선 방어 성공률
+
+---
+
+## 8. 다음 단계
+
+1. **즉시 구현**: Phase 1 (임무 성과 + 안전)
+2. **단계적 구현**: Phase 2, 3 (협동/전술 기동)
+3. **튜닝**: 보상 값 최적화
+4. **검증**: 학습 성능 평가
+
+---
+
+## 9. 참고사항
+
+- 보상 값은 학습 과정에서 조정 필요
+- Multi-Agent 환경에서는 보상 신호가 서로 영향을 줄 수 있음
+- 경계선 침범 감지는 성능에 영향을 줄 수 있으므로 최적화 필요
+- 그물(Web)의 실제 물리적 구현 확인 필요 (DynamicWeb.cs 참조)
+- **포획 위치 보너스**: 그물 중심 포획을 유도하여 더 정확한 협동 기동 학습 유도
+ - 중심 포획은 두 에이전트의 균형잡힌 협력이 필요함
+ - 보너스 값은 학습 성과에 따라 조정 가능 (0.1~0.5 범위 권장)
+- **관측값 구조**:
+ - 적군 선박은 인스펙터에서 동적으로 할당 가능
+ - 최대 적군 수는 고정하여 관측 공간 크기 일관성 유지
+ - 모선은 상대거리만 사용하여 절대 위치 의존성 제거
+ - 관측값 정규화는 학습 안정성을 위해 중요함
+- **액션 공간 변경 (목표 속도 기반)**:
+ - 기존 throttle/steering 직접 제어 → 목표 선속도/각속도 제어로 변경
+ - `HumanController`와 유사한 방식으로 동작하도록 구현
+ - 목표 속도를 실제 throttle/steering으로 변환하는 컨트롤러 필요
+ - 속도 제어 게인은 튜닝이 필요할 수 있음
+ - 학습 시 더 부드러운 기동이 가능하며, 속도 기반 보상 설계가 용이함
+- **그물 장력 (Net Tension)**:
+ - 두 배가 너무 멀어지면 그물이 끊어지고, 너무 가까워지면 엉킴
+ - 그물 길이의 90~95% 수준에서 최대 보상 부여
+ - 방어 면적 최대화를 위한 중요한 보상
+ - 간격 유지 보상과 함께 작동하여 최적 거리 유지 유도
+- **모선 충돌 패널티 (Game Over)**:
+ - 적군 선박이 모선에 충돌하는 것은 단순 실점이 아닌 **패배**
+ - 즉시 에피소드 종료 및 큰 패널티 (-1.5 ~ -2.0) 부여
+ - 아군 충돌 패널티(-1.0)보다 더 큰 값으로 최악의 결과임을 명확히 전달
+ - 모선 방어가 최우선 목표임을 학습에 반영
+ - 그룹 보상으로 분배하여 두 에이전트 모두 패배를 인지
+
+---
+
+## 10. 공학적 위험 요소 및 개선 사항 ⚠️
+
+### 10.1 보상 값의 수치적 균형 문제 (최우선)
+
+#### 문제점
+- **보상 해킹(Reward Hacking) 위험**: 협동 기동 보상(+0.01)이 매 스텝 부여되면 최종 목표(+1.0)를 압도
+- **예시**: 에피소드 25,000 스텝 중 1,000 스텝만 동기화해도 `1,000 × 0.01 = 10.0` 보상
+- **결과**: 에이전트가 "적을 잡으러 가는 리스크를 감수하느니, 그냥 우리끼리 춤추면서 시간을 끌자"라는 전략에 빠질 수 있음
+
+#### 해결책
+- ✅ **스텝당 보상 대폭 감소**: 0.01 → **0.0001~0.0005** (20~100배 감소)
+- ✅ **상태 보상 방식**: 특정 오차 범위 내에 있을 때만 아주 미세하게 부여
+- ✅ **보상 비율 조정**: 최종 목표 보상이 협동 보상의 누적합보다 압도적으로 커야 함
+
+#### 수정된 보상 값
+| 항목 | 원래 계획 | 수정 후 | 비율 |
+|------|----------|---------|------|
+| 헤딩 동기화 | +0.01 | +0.0002 | 50배 감소 |
+| 속도 동기화 | +0.01 | +0.0002 | 50배 감소 |
+| 간격 유지 | +0.01 | +0.0002 | 50배 감소 |
+| 수직 차단 | +0.005 | +0.0005 | 10배 감소 |
+| 추적 이득 | +0.001 | +0.0002 | 5배 감소 |
+
+---
+
+### 10.2 절대 좌표 vs 상대 좌표 (일반화 성능)
+
+#### 문제점
+- **절대 좌표 의존성**: `sensor.AddObservation(myPos.x / 100f)`와 같이 절대 좌표 사용
+- **위험 요소**: AI가 특정 지도의 특정 좌표에 의존하게 됨
+- **결과**: 모선이 이동하거나 훈련 구역이 바뀌면 성능 저하
+
+#### 해결책
+- ✅ **상대 좌표(Relative Coordinates) 적극 활용**
+ - 나-파트너 사이의 벡터 (로컬 좌표계)
+ - 나-적군 사이의 벡터 (로컬 좌표계)
+ - 나-모선 사이의 벡터 (로컬 좌표계)
+- ✅ **로컬 좌표계 변환**: `Vector3.Dot(relativePos, transform.right/forward)` 사용
+- ✅ **일반화 성능 향상**: 어디서든 싸울 수 있는 지능 확보
+
+#### 구현 예시
+```csharp
+// 절대 좌표 (기존)
+sensor.AddObservation(partnerPos.x / 100f);
+sensor.AddObservation(partnerPos.z / 100f);
+
+// 상대 좌표 (개선)
+Vector3 relativeToPartner = partnerAgent.transform.position - transform.position;
+float relativeX = Vector3.Dot(relativeToPartner, transform.right) / 100f;
+float relativeZ = Vector3.Dot(relativeToPartner, transform.forward) / 100f;
+sensor.AddObservation(relativeX);
+sensor.AddObservation(relativeZ);
+```
+
+---
+
+### 10.3 적군 관측의 우선순위 정렬 부재
+
+#### 문제점
+- **배열 순서 의존성**: `enemyShips` 배열을 그대로 관측값에 추가
+- **위험 요소**:
+ - 배열 순서가 바뀌면 AI 혼란
+ - 1번 적이 멀고 2번 적이 가까울 때, 인덱스 순서대로 관측하면 불필요한 연산 소모
+- **결과**: 학습 속도 저하 및 비효율적 전략 학습
+
+#### 해결책
+- ✅ **거리 기반 정렬(Sorting)**: 관측 전에 '나와 가까운 순서'로 정렬
+- ✅ **모선 거리 기반 정렬**: '모선과 가까운 순서'로 정렬 (선택적)
+- ✅ **학습 속도 향상**: AI가 위험한 적을 우선적으로 인식
+
+#### 구현 예시
+```csharp
+// 거리순 정렬
+List<(GameObject enemy, float distance)> sortedEnemies = new List<(GameObject, float)>();
+for (int i = 0; i < enemyShips.Length; i++)
+{
+ if (enemyShips[i] != null)
+ {
+ float dist = Vector3.Distance(transform.position, enemyShips[i].transform.position);
+ sortedEnemies.Add((enemyShips[i], dist));
+ }
+}
+sortedEnemies.Sort((a, b) => a.distance.CompareTo(b.distance)); // 가까운 순으로 정렬
+```
+
+---
+
+### 10.4 속도 기반 액션의 물리적 한계 간과
+
+#### 문제점
+- **물리 엔진 한계**: USV는 회전 반경(Turning Radius)과 관성이 큼
+- **위험 요소**: RL이 "즉각적으로 90도 회전해서 시속 20m/s로 가라"고 명령했을 때, 물리 엔진이 따라가지 못함
+- **결과**: RL이 자신이 내린 액션과 결과 사이의 상관관계를 이해하지 못함
+
+#### 해결책
+- ✅ **가속도 제한(Acceleration Limit)**: 물리적으로 가능한 수준의 명령만 전달
+- ✅ **스무딩 강화**: `inputSmoothing`보다 더 보수적인 값 사용 (예: 0.1)
+- ✅ **목표 속도 변화량 제한**: 이전 목표 속도와의 차이를 제한
+
+#### 구현 예시
+```csharp
+// 가속도 제한 적용
+float maxLinearAcceleration = 5f; // m/s²
+float maxAngularAcceleration = 45f; // deg/s²
+
+float maxLinearVelChange = maxLinearAcceleration * deltaTime;
+targetLinearVelocity = Mathf.Clamp(targetLinearVelocity,
+ prevTargetLinearVel - maxLinearVelChange,
+ prevTargetLinearVel + maxLinearVelChange);
+```
+
+---
+
+### 10.5 개별 보상 vs 그룹 보상 (MA-PPO 최적화) ⚠️ 최우선
+
+#### 문제점
+- **개별 보상 방식의 한계**: 각 에이전트가 `this.AddReward()`로 개별적으로 보상을 받음
+- **위험 요소**:
+ - 파트너 배는 내가 왜 점수를 받았는지 모름
+ - 이기적인 에이전트가 될 확률 높음
+ - 협동을 위한 개별 기동을 학습하기 어려움
+- **예시**: A가 헤딩을 맞추면 A만 +0.01점을 받음. B는 점수를 못 받으니 왜 A가 저렇게 움직이는지 모름
+
+#### 해결책: 그룹 보상 아키텍처
+- ✅ **중앙화된 보상 계산**: `DefenseRewardCalculator`에서 두 에이전트의 상태를 모두 관찰
+- ✅ **그룹 보상 분배**: `SimpleMultiAgentGroup.AddGroupReward()`를 통해 그룹 전체에 보상 분배
+- ✅ **결과**: A가 B와 헤딩을 맞추면, 컨트롤러가 이를 감지하고 그룹 전체에 +0.01점을 줌. B도 "어? 우리가 지금 뭔가를 잘해서 팀 점수가 올랐네?"라고 인지하며, A와 보조를 맞추는 방향으로 정책을 업데이트
+
+#### 보상 흐름 아키텍처
+
+**기존 방식 (피해야 할 방식)**:
+```csharp
+// DefenseAgent.cs 내부
+private void CalculateReward()
+{
+ // 개별 보상
+ if (headingSync)
+ this.AddReward(0.0002f); // 나 혼자만 점수
+}
+```
+
+**권장 방식 (MA-PPO 최적화)**:
+```csharp
+// DefenseEnvController.cs
+private void Update()
+{
+ // 1. 관측: 두 에이전트의 상태 수집
+ var agent1State = GetAgentState(defenseAgent1);
+ var agent2State = GetAgentState(defenseAgent2);
+
+ // 2. 계산: DefenseRewardCalculator가 협동 기동 계산
+ float headingSyncReward = rewardCalculator.CalculateCooperativeRewards(
+ agent1State, agent2State);
+
+ // 3. 부여: 그룹 전체에 보상 분배
+ if (headingSyncReward > 0)
+ m_AgentGroup.AddGroupReward(headingSyncReward); // 팀 전체 점수
+}
+
+// DefenseRewardCalculator.cs
+public float CalculateCooperativeRewards(AgentState agent1, AgentState agent2)
+{
+ float totalReward = 0f;
+
+ // 헤딩 동기화 체크
+ float headingDiff = Mathf.Abs(Mathf.DeltaAngle(
+ agent1.heading, agent2.heading));
+ if (headingDiff <= headingSyncTolerance)
+ totalReward += headingSyncReward;
+
+ // 속도 동기화 체크
+ float speedDiff = Mathf.Abs(agent1.speed - agent2.speed);
+ if (speedDiff <= speedSyncTolerance)
+ totalReward += speedSyncReward;
+
+ // 그물 장력 체크
+ float distance = Vector3.Distance(agent1.position, agent2.position);
+ float optimalMin = netMaxLength * netOptimalMinRatio;
+ float optimalMax = netMaxLength * netOptimalMaxRatio;
+ if (distance >= optimalMin && distance <= optimalMax)
+ totalReward += netTensionReward;
+
+ return totalReward;
+}
+```
+
+#### 구현 체크리스트
+- [ ] `SimpleMultiAgentGroup` 컴포넌트를 Unity Scene에 추가
+- [ ] 두 `DefenseAgent`를 그룹에 등록
+- [ ] `DefenseRewardCalculator.cs` 생성 및 구현
+- [ ] `DefenseEnvController.cs` 생성 및 구현
+- [ ] `DefenseAgent.CalculateReward()`에서 개별 보상 제거
+- [ ] 모든 보상을 `m_AgentGroup.AddGroupReward()`로 변경
+- [ ] 그룹 보상 분배 로직 테스트
+
+#### 비교표
+
+| 구분 | 기존 방식 (피해야 할 방식) | 권장 방식 (MA-PPO 최적화) |
+|------|------------------------|------------------------|
+| 코드 위치 | DefenseAgent.cs 내부 | EnvController.cs (또는 전용 Calculator) |
+| 사용 함수 | `this.AddReward(0.01f)` | `m_AgentGroup.AddGroupReward(0.01f)` |
+| 보상 대상 | 나 혼자만 점수를 받음 | 내가 잘하면 우리 팀 전체가 점수를 받음 |
+| 문제점 | 파트너 배는 내가 왜 점수를 받았는지 모름 | 파트너와 내가 항상 동일한 보상값을 공유함 |
+| 결과 | 이기적인 에이전트가 될 확률 높음 | 협동을 위한 개별 기동을 학습함 |
+
+---
+
+### 10.6 추가 권장 사항
+
+1. **보상 스케일링 검증**
+ - 에피소드당 예상 보상 범위 계산
+ - 최종 목표 보상이 협동 보상 누적합보다 최소 10배 이상 커야 함
+
+2. **상대 좌표 테스트**
+ - 다양한 초기 위치에서 학습 테스트
+ - 모선 위치 변경 시 성능 유지 확인
+
+3. **적군 정렬 성능 비교**
+ - 정렬 전/후 학습 속도 비교
+ - 최종 성능 차이 측정
+
+4. **물리 제약 튜닝**
+ - 실제 USV의 가속도/각가속도 한계 측정
+ - 시뮬레이션과 실제 값 일치 확인
+
+5. **그룹 보상 아키텍처 검증**
+ - 개별 보상 vs 그룹 보상 학습 속도 비교
+ - 최종 협동 성능 차이 측정
+ - 그룹 보상 분배 타이밍 최적화 (매 프레임 vs 매 N 프레임)
diff --git a/Assets/Scripts/Defense/MA_PPO_Implementation_Plan.md.meta b/Assets/Scripts/Defense/MA_PPO_Implementation_Plan.md.meta
new file mode 100644
index 000000000..e592729b0
--- /dev/null
+++ b/Assets/Scripts/Defense/MA_PPO_Implementation_Plan.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ea21b4bd8c90e8649ad032dce7ac30d9
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/MLAgents.meta b/Assets/Scripts/Defense/MLAgents.meta
new file mode 100644
index 000000000..a3449d7b0
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f1a9d8d469ee64b419daaa654bbc4e7f
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/MLAgents/AttackAgent.cs b/Assets/Scripts/Defense/MLAgents/AttackAgent.cs
new file mode 100644
index 000000000..37189b318
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents/AttackAgent.cs
@@ -0,0 +1,749 @@
+using UnityEngine;
+using UnityEngine.InputSystem;
+using Unity.MLAgents;
+using Unity.MLAgents.Sensors;
+using Unity.MLAgents.Actuators;
+
+namespace BoatAttack
+{
+ ///
+ /// 공격 에이전트: 모선에 접근하는 것이 목표
+ /// 보상: 모선과의 거리가 가까울수록 보상
+ ///
+ public class AttackAgent : Agent, IHeuristicProvider
+ {
+ [Header("Boat Components")]
+ [Tooltip("Boat 컴포넌트 (자동으로 찾음)")]
+ private Boat _boat;
+
+ [Tooltip("Engine 컴포넌트 (자동으로 찾음)")]
+ private Engine _engine;
+
+ [Header("Target Settings")]
+ [Tooltip("공격 대상 모선 (태그로 찾거나 직접 할당)")]
+ public GameObject targetMotherShip;
+
+ [Tooltip("모선 태그 (targetMotherShip이 없을 때 사용)")]
+ public string motherShipTag = "MotherShip";
+
+ [Header("Observation Settings")]
+ [Tooltip("Raycast로 주변 감지할 거리")]
+ public float raycastDistance = 50f;
+
+ [Tooltip("Raycast 방향 개수")]
+ public int raycastCount = 8;
+
+ [Header("Reward Settings")]
+ [Tooltip("거리 기반 보상 계수 (가까울수록 높은 보상)")]
+ public float distanceRewardMultiplier = 0.01f;
+
+ [Tooltip("최대 보상 거리 (이 거리 이내면 보상)")]
+ public float maxRewardDistance = 100f;
+
+ [Tooltip("시간당 작은 페널티 (빠른 접근 유도)")]
+ public float timePenalty = -0.001f;
+
+ [Header("Control Settings")]
+ [Range(0.1f, 2.0f)]
+ [Tooltip("조종 감도 조절 (낮을수록 느림, 높을수록 빠름)")]
+ public float steeringSensitivity = 0.3f;
+
+ [Range(0.01f, 1.0f)]
+ [Tooltip("입력 스무스 처리 속도 (낮을수록 더 부드러움, 높을수록 즉각 반응)")]
+ public float inputSmoothing = 0.2f;
+
+ [Header("Debug")]
+ [Tooltip("에디터에서 Raycast 시각화")]
+ public bool showRaycasts = true;
+
+ [Header("Reward Display")]
+ [Tooltip("현재 에피소드의 총 보상")]
+ [SerializeField] private float _totalReward = 0f;
+
+ [Header("Explosion Settings")]
+ [Tooltip("폭발 효과 Prefab (War FX) - 자폭선박이 모선과 충돌 시 사용")]
+ public GameObject explosionPrefab;
+
+ [Tooltip("폭발 시 보상 (성공 보상)")]
+ public float explosionReward = 50f;
+
+ [Tooltip("폭발 효과 크기 배율")]
+ [Range(5f, 50f)]
+ public float explosionScale = 23f;
+
+ [Header("Collision Detection")]
+ [Tooltip("충돌 감지 방식: true=Trigger 사용 (보트 Collider의 Is Trigger 활성화 필요), false=물리 Collision 사용")]
+ public bool useTriggerCollision = false;
+
+ [Header("Waypoint Following")]
+ [Tooltip("Waypoint를 따라갈지 여부 (true면 waypoint 경로를 따라가고, false면 모선을 직접 추적)")]
+ public bool followWaypoints = true;
+
+ [Tooltip("Waypoint 추적 모드일 때 모선 접근 거리 (이 거리 이내면 모선을 직접 추적)")]
+ public float directChaseDistance = 50f;
+
+ private float _lastDistance;
+ private Vector3 _lastPosition;
+ private float _episodeStartTime;
+
+ // 스무스 입력을 위한 변수
+ private float _smoothThrottle = 0f;
+ private float _smoothSteering = 0f;
+
+ // 폭발 관련 변수
+ private bool _hasExploded = false;
+
+ // Waypoint 추적 관련 변수 (AiController 참고)
+ private int _currentWaypointIndex = 0;
+ private Vector3 _currentWaypointPosition;
+ private bool _waypointInitialized = false;
+
+ private new void Awake()
+ {
+ // Boat와 Engine 컴포넌트 찾기
+ if (TryGetComponent(out _boat))
+ {
+ _engine = _boat.engine;
+ }
+ else
+ {
+ Debug.LogError($"[AttackAgent] Boat 컴포넌트를 찾을 수 없습니다. {gameObject.name}");
+ }
+ }
+
+ protected override void OnEnable()
+ {
+ base.OnEnable();
+
+ // 모선 찾기
+ if (targetMotherShip == null)
+ {
+ var ship = GameObject.FindGameObjectWithTag(motherShipTag);
+ if (ship != null)
+ {
+ targetMotherShip = ship;
+ }
+ else
+ {
+ Debug.LogWarning($"[AttackAgent] 모선을 찾을 수 없습니다. 태그: {motherShipTag}");
+ }
+ }
+
+ // Waypoint 초기화
+ if (followWaypoints)
+ {
+ InitializeWaypoint();
+ }
+ }
+
+ ///
+ /// Waypoint 초기화 (첫 waypoint 할당)
+ ///
+ private void InitializeWaypoint()
+ {
+ if (WaypointGroup.Instance == null)
+ {
+ Debug.LogWarning("[AttackAgent] WaypointGroup.Instance가 null입니다. Waypoint를 따라갈 수 없습니다.");
+ _waypointInitialized = false;
+ return;
+ }
+
+ if (WaypointGroup.Instance.WPs == null || WaypointGroup.Instance.WPs.Count == 0)
+ {
+ Debug.LogWarning("[AttackAgent] Waypoint가 없습니다. Waypoint를 따라갈 수 없습니다.");
+ _waypointInitialized = false;
+ return;
+ }
+
+ // 첫 waypoint 할당
+ _currentWaypointIndex = 0;
+ var firstWaypoint = WaypointGroup.Instance.WPs[0];
+ _currentWaypointPosition = firstWaypoint.point;
+ _waypointInitialized = true;
+
+ Debug.Log($"[AttackAgent] Waypoint 초기화 완료: 첫 waypoint = {_currentWaypointPosition}");
+ }
+
+ public override void OnEpisodeBegin()
+ {
+ // 에피소드 시작 시 초기화
+ _episodeStartTime = Time.time;
+ _totalReward = 0f; // 총 보상 초기화
+ _smoothThrottle = 0f; // 스무스 입력 초기화
+ _smoothSteering = 0f;
+ _hasExploded = false; // 폭발 상태 초기화
+
+ // Waypoint 초기화 (에피소드 재시작 시)
+ if (followWaypoints)
+ {
+ InitializeWaypoint();
+ }
+
+ // 배 위치는 AttackBoatManager에서 재생성 시 설정되므로 여기서는 리셋하지 않음
+ // 단, Rigidbody 속도 및 각속도만 리셋
+ if (_engine != null && _engine.RB != null)
+ {
+ _engine.RB.velocity = Vector3.zero;
+ _engine.RB.angularVelocity = Vector3.zero;
+ }
+
+ _lastPosition = transform.position;
+
+ if (targetMotherShip != null)
+ {
+ _lastDistance = Vector3.Distance(transform.position, targetMotherShip.transform.position);
+ }
+
+ Debug.Log($"[AttackAgent] OnEpisodeBegin: 배 위치 = {transform.position}");
+ }
+
+ public override void CollectObservations(VectorSensor sensor)
+ {
+ if (targetMotherShip == null || _engine == null)
+ {
+ // 관측 불가능한 경우 0으로 채움
+ for (int i = 0; i < GetObservationSize(); i++)
+ {
+ sensor.AddObservation(0f);
+ }
+ return;
+ }
+
+ // 1. 모선과의 상대 위치 (정규화)
+ Vector3 toTarget = targetMotherShip.transform.position - transform.position;
+ float distance = toTarget.magnitude;
+ Vector3 direction = toTarget.normalized;
+
+ sensor.AddObservation(distance / maxRewardDistance); // 거리 (0~1)
+ sensor.AddObservation(direction.x); // 방향 X
+ sensor.AddObservation(direction.z); // 방향 Z (Y는 무시)
+
+ // 2. 자신의 속도 (정규화)
+ float speed = _engine.RB.velocity.magnitude;
+ sensor.AddObservation(Mathf.Clamp01(speed / 20f)); // 최대 속도 20 가정
+
+ // 3. 자신의 방향 (forward 벡터)
+ Vector3 forward = transform.forward;
+ sensor.AddObservation(forward.x);
+ sensor.AddObservation(forward.z);
+
+ // 4. 모선 방향으로의 각도 (정규화)
+ float angleToTarget = Vector3.SignedAngle(transform.forward, direction, Vector3.up);
+ sensor.AddObservation(angleToTarget / 180f); // -1 ~ 1
+
+ // 5. Raycast로 주변 장애물 감지
+ for (int i = 0; i < raycastCount; i++)
+ {
+ float angle = (360f / raycastCount) * i;
+ Vector3 rayDirection = Quaternion.Euler(0, angle, 0) * transform.forward;
+
+ RaycastHit hit;
+ bool hasHit = Physics.Raycast(transform.position, rayDirection, out hit, raycastDistance);
+
+ if (hasHit)
+ {
+ sensor.AddObservation(1f - (hit.distance / raycastDistance)); // 거리 (0~1, 가까울수록 1)
+ // 장애물 타입 구분 (선택적)
+ sensor.AddObservation(hit.collider.CompareTag("boat") ? 1f : 0f);
+ }
+ else
+ {
+ sensor.AddObservation(0f); // 장애물 없음
+ sensor.AddObservation(0f);
+ }
+ }
+ }
+
+ public override void OnActionReceived(ActionBuffers actions)
+ {
+ if (_engine == null)
+ {
+ return;
+ }
+
+ // Waypoint 추적 모드일 때 waypoint를 따라가도록 조정
+ Vector3 targetDirection = GetTargetDirection();
+
+ // Action 처리 (원본 입력)
+ float rawThrottle = Mathf.Clamp(actions.ContinuousActions[0], -1f, 1f);
+ float rawSteering = Mathf.Clamp(actions.ContinuousActions[1], -1f, 1f);
+
+ // Waypoint 추적 모드일 때 방향 조정
+ if (followWaypoints && _waypointInitialized)
+ {
+ // Waypoint 방향 계산
+ Vector3 toWaypoint = (_currentWaypointPosition - transform.position).normalized;
+ Vector3 forward = transform.forward;
+
+ // Waypoint 방향과 현재 방향의 각도 차이 계산
+ float angleToWaypoint = Vector3.SignedAngle(forward, toWaypoint, Vector3.up);
+
+ // Waypoint 방향으로 조정 (하지만 ML-Agents의 학습을 방해하지 않도록 약간만 조정)
+ // rawSteering에 waypoint 방향 힌트 추가
+ float waypointSteeringHint = Mathf.Clamp(angleToWaypoint / 45f, -1f, 1f) * 0.3f; // 30% 힌트
+ rawSteering = Mathf.Clamp(rawSteering + waypointSteeringHint, -1f, 1f);
+
+ // Waypoint에 도달했는지 확인
+ float distanceToWaypoint = Vector3.Distance(transform.position, _currentWaypointPosition);
+ if (distanceToWaypoint < 10f) // 10미터 이내면 다음 waypoint로
+ {
+ AdvanceToNextWaypoint();
+ }
+ }
+
+ // 스무스 처리 (현실적인 반응)
+ _smoothThrottle = Mathf.Lerp(_smoothThrottle, rawThrottle, inputSmoothing);
+ _smoothSteering = Mathf.Lerp(_smoothSteering, rawSteering, inputSmoothing);
+
+ // 감도 조절 적용 (HumanController와 동일)
+ float adjustedSteering = Mathf.Clamp(_smoothSteering * steeringSensitivity, -1f, 1f);
+
+ // Engine에 전달
+ _engine.Accelerate(_smoothThrottle);
+ _engine.Turn(adjustedSteering);
+
+ // 보상 계산
+ CalculateReward();
+ }
+
+ ///
+ /// 현재 목표 방향 가져오기 (waypoint 또는 모선)
+ ///
+ private Vector3 GetTargetDirection()
+ {
+ if (followWaypoints && _waypointInitialized)
+ {
+ // 모선과의 거리가 가까우면 모선을 직접 추적
+ if (targetMotherShip != null)
+ {
+ float distanceToMotherShip = Vector3.Distance(transform.position, targetMotherShip.transform.position);
+ if (distanceToMotherShip < directChaseDistance)
+ {
+ return (targetMotherShip.transform.position - transform.position).normalized;
+ }
+ }
+
+ // 그 외에는 waypoint를 따라감
+ return (_currentWaypointPosition - transform.position).normalized;
+ }
+ else
+ {
+ // Waypoint 추적 모드가 아니면 모선을 직접 추적
+ if (targetMotherShip != null)
+ {
+ return (targetMotherShip.transform.position - transform.position).normalized;
+ }
+ }
+
+ return transform.forward;
+ }
+
+ ///
+ /// 다음 waypoint로 진행
+ ///
+ private void AdvanceToNextWaypoint()
+ {
+ if (WaypointGroup.Instance == null || WaypointGroup.Instance.WPs == null || WaypointGroup.Instance.WPs.Count == 0)
+ {
+ return;
+ }
+
+ _currentWaypointIndex++;
+ if (_currentWaypointIndex >= WaypointGroup.Instance.WPs.Count)
+ {
+ // 마지막 waypoint에 도달하면 첫 번째로 돌아감 (루프)
+ _currentWaypointIndex = 0;
+ }
+
+ var waypoint = WaypointGroup.Instance.WPs[_currentWaypointIndex];
+ _currentWaypointPosition = waypoint.point;
+
+ Debug.Log($"[AttackAgent] 다음 waypoint로 진행: {_currentWaypointIndex} = {_currentWaypointPosition}");
+ }
+
+ private void CalculateReward()
+ {
+ if (targetMotherShip == null)
+ {
+ return;
+ }
+
+ // 거리 기반 보상
+ float currentDistance = Vector3.Distance(transform.position, targetMotherShip.transform.position);
+ float rewardThisStep = 0f;
+
+ // 거리가 가까워졌으면 보상
+ if (currentDistance < _lastDistance)
+ {
+ float distanceImprovement = _lastDistance - currentDistance;
+ rewardThisStep += distanceImprovement * distanceRewardMultiplier;
+ }
+ else if (currentDistance > _lastDistance)
+ {
+ // 거리가 멀어지면 작은 페널티
+ float distanceWorsening = currentDistance - _lastDistance;
+ rewardThisStep -= distanceWorsening * distanceRewardMultiplier * 0.5f;
+ }
+
+ // 최대 보상 거리 이내에 있으면 추가 보상
+ if (currentDistance < maxRewardDistance)
+ {
+ float proximityReward = (maxRewardDistance - currentDistance) / maxRewardDistance;
+ rewardThisStep += proximityReward * distanceRewardMultiplier * 0.1f;
+ }
+
+ // 시간 페널티 (빠른 접근 유도)
+ rewardThisStep += timePenalty;
+
+ // 보상 추가 및 총 보상 업데이트
+ AddReward(rewardThisStep);
+ _totalReward = GetCumulativeReward(); // ML-Agents의 총 보상 가져오기
+
+ _lastDistance = currentDistance;
+ }
+
+ ///
+ /// 관측 크기 계산 (디버깅용)
+ ///
+ private int GetObservationSize()
+ {
+ // 모선 정보: 5 (거리, 방향x2, 각도, 속도)
+ // 자신 정보: 2 (방향x2)
+ // Raycast: raycastCount * 2 (거리, 타입)
+ return 7 + (raycastCount * 2);
+ }
+
+ ///
+ /// Heuristic 함수: 키보드로 수동 테스트
+ /// ML-Agents Behavior Type을 "Heuristic Only"로 설정하면 이 함수가 호출됩니다.
+ /// Unity의 새로운 Input System (UnityEngine.InputSystem)을 사용합니다.
+ ///
+ public override void Heuristic(in ActionBuffers actionsOut)
+ {
+ var continuousActions = actionsOut.ContinuousActions;
+
+ // Unity Input System 사용 (Legacy Input 대신)
+ Keyboard keyboard = Keyboard.current;
+ if (keyboard == null)
+ {
+ // 키보드가 없으면 0으로 설정
+ continuousActions[0] = 0f;
+ continuousActions[1] = 0f;
+ return;
+ }
+
+ float throttle = 0f;
+ float steering = 0f;
+
+ // 가속/감속 (W/S 또는 위/아래 화살표)
+ if (keyboard.wKey.isPressed || keyboard.upArrowKey.isPressed)
+ {
+ throttle = 1f;
+ }
+ else if (keyboard.sKey.isPressed || keyboard.downArrowKey.isPressed)
+ {
+ throttle = -1f;
+ }
+
+ // 좌우 회전 (A/D 또는 왼쪽/오른쪽 화살표)
+ if (keyboard.aKey.isPressed || keyboard.leftArrowKey.isPressed)
+ {
+ steering = -1f;
+ }
+ else if (keyboard.dKey.isPressed || keyboard.rightArrowKey.isPressed)
+ {
+ steering = 1f;
+ }
+
+ // Action에 키보드 입력 전달
+ continuousActions[0] = throttle;
+ continuousActions[1] = steering;
+ }
+
+ ///
+ /// 에디터에서 Raycast 시각화
+ ///
+ private void OnDrawGizmos()
+ {
+ if (!showRaycasts || targetMotherShip == null)
+ {
+ return;
+ }
+
+ // 모선 방향 표시
+ Gizmos.color = Color.red;
+ if (targetMotherShip != null)
+ {
+ Gizmos.DrawLine(transform.position, targetMotherShip.transform.position);
+ }
+
+ // Raycast 방향 표시
+ Gizmos.color = Color.yellow;
+ for (int i = 0; i < raycastCount; i++)
+ {
+ float angle = (360f / raycastCount) * i;
+ Vector3 rayDirection = Quaternion.Euler(0, angle, 0) * transform.forward;
+ Vector3 endPoint = transform.position + rayDirection * raycastDistance;
+
+ Gizmos.DrawLine(transform.position, endPoint);
+ }
+ }
+
+ ///
+ /// 에피소드 종료 조건 (선택적)
+ ///
+ private void CheckEpisodeEnd()
+ {
+ if (_hasExploded)
+ {
+ return;
+ }
+
+ if (targetMotherShip == null)
+ {
+ return;
+ }
+
+ float distance = Vector3.Distance(transform.position, targetMotherShip.transform.position);
+
+ // 너무 멀어지면 실패
+ if (distance > 500f)
+ {
+ AddReward(-1f); // 페널티
+ EndEpisode();
+ }
+
+ // 시간 초과 (선택적)
+ if (Time.time - _episodeStartTime > 300f) // 5분
+ {
+ EndEpisode();
+ }
+ }
+
+ ///
+ /// Trigger 충돌 감지 (IsTrigger가 활성화된 Collider)
+ ///
+ private void OnTriggerEnter(Collider other)
+ {
+ if (!useTriggerCollision || _hasExploded)
+ {
+ return;
+ }
+
+ Debug.Log($"[AttackAgent] OnTriggerEnter 호출: {other.gameObject.name}, Tag: {other.tag}");
+
+ // 충돌한 객체가 MotherShip인지 확인
+ bool isMotherShip = IsMotherShip(other.gameObject);
+ Debug.Log($"[AttackAgent] IsMotherShip 확인 결과: {isMotherShip}");
+
+ if (isMotherShip)
+ {
+ Debug.Log("[AttackAgent] MotherShip 충돌 감지! 폭발 처리 시작");
+ HandleMotherShipCollision(other.gameObject);
+ }
+ else
+ {
+ Debug.Log($"[AttackAgent] MotherShip이 아님. Tag: {other.tag}, Name: {other.gameObject.name}");
+ }
+ }
+
+ ///
+ /// Collision 충돌 감지 (물리 충돌)
+ ///
+ private void OnCollisionEnter(Collision collision)
+ {
+ Debug.Log($"[AttackAgent] OnCollisionEnter 호출: {collision.gameObject.name}, Tag: {collision.gameObject.tag}, useTriggerCollision: {useTriggerCollision}, _hasExploded: {_hasExploded}");
+
+ if (_hasExploded)
+ {
+ Debug.Log("[AttackAgent] 이미 폭발했으므로 무시");
+ return;
+ }
+
+ // 충돌한 객체가 MotherShip인지 먼저 확인
+ bool isMotherShip = IsMotherShip(collision.gameObject);
+ Debug.Log($"[AttackAgent] IsMotherShip 확인 결과: {isMotherShip}");
+
+ // MotherShip과의 충돌은 useTriggerCollision 설정과 관계없이 항상 처리
+ if (isMotherShip)
+ {
+ Debug.Log("[AttackAgent] MotherShip 충돌 감지! 폭발 처리 시작 (useTriggerCollision 설정 무시)");
+ HandleMotherShipCollision(collision.gameObject);
+ return;
+ }
+
+ // MotherShip이 아닌 경우, useTriggerCollision이 true면 무시
+ if (useTriggerCollision)
+ {
+ Debug.Log("[AttackAgent] useTriggerCollision이 true이고 MotherShip이 아니므로 Collision 무시");
+ return;
+ }
+
+ Debug.Log($"[AttackAgent] 일반 충돌: {collision.gameObject.name} (처리하지 않음)");
+ }
+
+ ///
+ /// 충돌한 객체가 MotherShip인지 확인
+ ///
+ private bool IsMotherShip(GameObject obj)
+ {
+ if (obj == null)
+ {
+ Debug.LogWarning("[AttackAgent] IsMotherShip: obj가 null입니다");
+ return false;
+ }
+
+ // 태그로 확인
+ if (!string.IsNullOrEmpty(motherShipTag) && obj.CompareTag(motherShipTag))
+ {
+ Debug.Log($"[AttackAgent] IsMotherShip: 태그로 확인됨 ({motherShipTag})");
+ return true;
+ }
+
+ // 직접 할당된 targetMotherShip과 비교
+ if (targetMotherShip != null && obj == targetMotherShip)
+ {
+ Debug.Log("[AttackAgent] IsMotherShip: targetMotherShip과 일치");
+ return true;
+ }
+
+ // 이름으로 확인 (선택적)
+ if (obj.name.Contains("MotherShip") || obj.name.Contains("Mother"))
+ {
+ Debug.Log($"[AttackAgent] IsMotherShip: 이름으로 확인됨 ({obj.name})");
+ return true;
+ }
+
+ Debug.Log($"[AttackAgent] IsMotherShip: 일치하지 않음. Tag: {obj.tag}, Name: {obj.name}, motherShipTag: {motherShipTag}");
+ return false;
+ }
+
+ ///
+ /// MotherShip과의 충돌 처리
+ ///
+ private void HandleMotherShipCollision(GameObject motherShip)
+ {
+ if (_hasExploded)
+ {
+ Debug.LogWarning("[AttackAgent] HandleMotherShipCollision: 이미 폭발했음");
+ return;
+ }
+
+ Debug.Log($"[AttackAgent] HandleMotherShipCollision 호출! 폭발 처리 시작. MotherShip: {motherShip.name}");
+
+ // 폭발 처리 (explosionPrefab이 없어도 진행)
+ TriggerExplosion();
+
+ // 보상 추가
+ AddReward(explosionReward);
+ Debug.Log($"[AttackAgent] 보상 추가: {explosionReward}, 총 보상: {GetCumulativeReward()}");
+
+ // 폭발 효과가 보이도록 약간의 딜레이 후 에피소드 종료
+ StartCoroutine(EndEpisodeAfterDelay(1.5f));
+ }
+
+ ///
+ /// 딜레이 후 에피소드 종료 (폭발 효과가 보이도록)
+ ///
+ private System.Collections.IEnumerator EndEpisodeAfterDelay(float delay)
+ {
+ yield return new WaitForSeconds(delay);
+ Debug.Log("[AttackAgent] 에피소드 종료");
+ EndEpisode();
+ }
+
+ ///
+ /// 폭발 효과 생성 및 처리
+ ///
+ private void TriggerExplosion()
+ {
+ if (_hasExploded)
+ {
+ Debug.LogWarning("[AttackAgent] TriggerExplosion: 이미 폭발했음");
+ return;
+ }
+
+ Debug.Log($"[AttackAgent] TriggerExplosion 호출! 폭발 효과 생성 위치: {transform.position}");
+ _hasExploded = true;
+
+ // 폭발 효과 생성 검증
+ if (explosionPrefab == null)
+ {
+ Debug.LogError("[AttackAgent] TriggerExplosion: explosionPrefab이 null입니다! Inspector에서 War FX 폭발 효과 Prefab을 할당해주세요.");
+ Debug.LogError("[AttackAgent] 경로 예시: Assets/JMO Assets/WarFX/_Effects/Explosions/WFX_Explosion.prefab");
+ return;
+ }
+
+ // 폭발 효과 생성 위치 (선박 위치, Y축은 약간 위로)
+ Vector3 explosionPosition = transform.position;
+ explosionPosition.y += 0.5f; // 폭발 효과가 선박 위에 보이도록
+
+ // War FX 폭발 효과 생성
+ GameObject explosion = Instantiate(explosionPrefab, explosionPosition, Quaternion.identity);
+
+ // 폭발 효과 활성화 확인
+ if (explosion != null)
+ {
+ explosion.SetActive(true);
+
+ // 폭발 효과 크기 조정 (100 = 1.0배, 200 = 2.0배, 500 = 5.0배)
+ float scaleMultiplier = explosionScale;
+ explosion.transform.localScale = Vector3.one * scaleMultiplier;
+
+ // 모든 ParticleSystem의 크기와 속도도 조정 (더 큰 폭발 효과)
+ ParticleSystem[] particleSystems = explosion.GetComponentsInChildren();
+ foreach (var ps in particleSystems)
+ {
+ var main = ps.main;
+ // Start Size 증가
+ if (main.startSize.mode == ParticleSystemCurveMode.Constant)
+ {
+ main.startSize = main.startSize.constant * scaleMultiplier;
+ }
+ else if (main.startSize.mode == ParticleSystemCurveMode.TwoConstants)
+ {
+ main.startSize = new ParticleSystem.MinMaxCurve(
+ main.startSize.constantMin * scaleMultiplier,
+ main.startSize.constantMax * scaleMultiplier
+ );
+ }
+
+ // Start Speed 증가 (폭발이 더 멀리 퍼지도록)
+ if (main.startSpeed.mode == ParticleSystemCurveMode.Constant)
+ {
+ main.startSpeed = main.startSpeed.constant * scaleMultiplier;
+ }
+ else if (main.startSpeed.mode == ParticleSystemCurveMode.TwoConstants)
+ {
+ main.startSpeed = new ParticleSystem.MinMaxCurve(
+ main.startSpeed.constantMin * scaleMultiplier,
+ main.startSpeed.constantMax * scaleMultiplier
+ );
+ }
+ }
+
+ Debug.Log($"[AttackAgent] 폭발 효과 생성 완료!");
+ Debug.Log($"[AttackAgent] - 이름: {explosion.name}");
+ Debug.Log($"[AttackAgent] - 위치: {explosionPosition}");
+ Debug.Log($"[AttackAgent] - 크기 배율: {explosionScale}% ({scaleMultiplier}x)");
+ Debug.Log($"[AttackAgent] - 활성화 상태: {explosion.activeSelf}");
+ Debug.Log($"[AttackAgent] - ParticleSystem 개수: {particleSystems.Length}");
+
+ if (particleSystems.Length == 0)
+ {
+ Debug.LogWarning("[AttackAgent] 폭발 효과에 ParticleSystem이 없습니다! Prefab이 올바른지 확인하세요.");
+ }
+ }
+ else
+ {
+ Debug.LogError("[AttackAgent] 폭발 효과 생성 실패! Instantiate가 null을 반환했습니다.");
+ }
+ }
+
+ void Update()
+ {
+ // 에피소드 종료 조건 체크
+ CheckEpisodeEnd();
+ }
+ }
+}
diff --git a/Assets/Scripts/Defense/MLAgents/AttackAgent.cs.meta b/Assets/Scripts/Defense/MLAgents/AttackAgent.cs.meta
new file mode 100644
index 000000000..4528d3ee9
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents/AttackAgent.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 0cb4d54e49c123c409b91ab0b82657a6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/MLAgents/AttackBoatDisabler.cs b/Assets/Scripts/Defense/MLAgents/AttackBoatDisabler.cs
new file mode 100644
index 000000000..028b993f2
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents/AttackBoatDisabler.cs
@@ -0,0 +1,132 @@
+using UnityEngine;
+using BoatAttack;
+
+namespace BoatAttack
+{
+ ///
+ /// 공격 선박 비활성화 헬퍼: AttackAgent가 폭발 후 자동으로 비활성화되도록 합니다.
+ /// 이 스크립트를 AttackAgent가 있는 GameObject에 추가하세요.
+ ///
+ [RequireComponent(typeof(AttackAgent))]
+ public class AttackBoatDisabler : MonoBehaviour
+ {
+ [Header("Settings")]
+ [Tooltip("폭발 후 비활성화 딜레이 (초)")]
+ public float disableDelay = 0.5f;
+
+ [Header("Debug")]
+ [Tooltip("디버그 로그 출력")]
+ public bool debugLog = true;
+
+ private AttackAgent _attackAgent;
+ private bool _hasExploded = false;
+
+ private void Awake()
+ {
+ _attackAgent = GetComponent();
+ }
+
+ private void OnEnable()
+ {
+ _hasExploded = false;
+ }
+
+ ///
+ /// AttackAgent의 폭발 감지 및 비활성화 처리
+ ///
+ private void Update()
+ {
+ // AttackAgent가 폭발했는지 확인
+ // AttackAgent의 _hasExploded는 private이므로,
+ // OnCollisionEnter나 OnTriggerEnter를 통해 간접적으로 감지
+
+ // 대신 AttackAgent의 컴포넌트가 비활성화되거나 파괴되는 것을 감지
+ if (_attackAgent == null || !_attackAgent.enabled)
+ {
+ return;
+ }
+ }
+
+ ///
+ /// 충돌 감지: AttackAgent의 충돌을 감지하고 비활성화 처리
+ ///
+ private void OnCollisionEnter(Collision collision)
+ {
+ // AttackAgent가 이미 충돌을 처리했는지 확인하기 어려우므로,
+ // MotherShip과의 충돌을 직접 확인
+ if (_hasExploded)
+ {
+ return;
+ }
+
+ GameObject other = collision.gameObject;
+
+ // MotherShip 태그 확인
+ if (other.CompareTag("MotherShip") ||
+ other.name.Contains("MotherShip") ||
+ other.name.Contains("Mother"))
+ {
+ if (debugLog)
+ {
+ Debug.Log($"[AttackBoatDisabler] {gameObject.name}: MotherShip 충돌 감지! 비활성화 예약...");
+ }
+
+ _hasExploded = true;
+ Invoke(nameof(DisableBoat), disableDelay);
+ }
+ }
+
+ ///
+ /// Trigger 충돌 감지
+ ///
+ private void OnTriggerEnter(Collider other)
+ {
+ if (_hasExploded)
+ {
+ return;
+ }
+
+ GameObject otherObj = other.gameObject;
+
+ // MotherShip 태그 확인
+ if (otherObj.CompareTag("MotherShip") ||
+ otherObj.name.Contains("MotherShip") ||
+ otherObj.name.Contains("Mother"))
+ {
+ if (debugLog)
+ {
+ Debug.Log($"[AttackBoatDisabler] {gameObject.name}: MotherShip Trigger 충돌 감지! 비활성화 예약...");
+ }
+
+ _hasExploded = true;
+ Invoke(nameof(DisableBoat), disableDelay);
+ }
+ }
+
+ ///
+ /// 공격 선박 파괴 (비활성화 대신 파괴)
+ ///
+ private void DisableBoat()
+ {
+ if (debugLog)
+ {
+ Debug.Log($"[AttackBoatDisabler] {gameObject.name}: 공격 선박 파괴");
+ }
+
+ // GameObject 파괴 (방어 선박만 학습하므로 적군 선박은 단순히 파괴)
+ Destroy(gameObject);
+ }
+
+ ///
+ /// 외부에서 호출 가능한 비활성화 메서드
+ ///
+ public void Disable()
+ {
+ if (!_hasExploded)
+ {
+ _hasExploded = true;
+ DisableBoat();
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/Defense/MLAgents/AttackBoatDisabler.cs.meta b/Assets/Scripts/Defense/MLAgents/AttackBoatDisabler.cs.meta
new file mode 100644
index 000000000..ecf156d6a
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents/AttackBoatDisabler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f738a41cf1afa6a4ab7724c79952cff4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/MLAgents/DynamicWeb.cs b/Assets/Scripts/Defense/MLAgents/DynamicWeb.cs
new file mode 100644
index 000000000..80d5614db
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents/DynamicWeb.cs
@@ -0,0 +1,426 @@
+using UnityEngine;
+using Unity.MLAgents;
+
+namespace BoatAttack
+{
+ ///
+ /// 2대의 방어 선박 사이에 동적으로 생성되는 Web (장막)
+ /// 선박 간 거리에 따라 크기가 자동으로 조정됨
+ ///
+ [RequireComponent(typeof(Rigidbody))] // ML-Agents 빌드 호환성: 런타임 AddComponent 방지
+ [RequireComponent(typeof(BoxCollider))]
+ public class DynamicWeb : MonoBehaviour
+ {
+ [Header("Target Ships")]
+ [Tooltip("방어 선박 1")]
+ public Transform defenseShip1;
+
+ [Tooltip("방어 선박 2")]
+ public Transform defenseShip2;
+
+ [Header("Web Anchor Points (Inspector에서 할당)")]
+ [Tooltip("Web 시작점 (선박1에 부착된 자식 오브젝트)")]
+ public Transform webAnchor1;
+
+ [Tooltip("Web 끝점 (선박2에 부착된 자식 오브젝트)")]
+ public Transform webAnchor2;
+
+ [Header("Web Settings")]
+ [Tooltip("Web 높이")]
+ public float webHeight = 5f;
+
+ [Tooltip("Web 두께")]
+ public float webThickness = 0.5f;
+
+ [Tooltip("Web 색상")]
+ public Color webColor = new Color(0f, 1f, 1f, 0.3f); // 반투명 청록색
+
+ [Header("Collision")]
+ [Tooltip("Trigger 충돌 사용")]
+ public bool isTrigger = true;
+
+ [Header("Visual")]
+ [Tooltip("Web 시각화 활성화")]
+ public bool showVisual = true;
+
+ [Header("Collision Reward")]
+ [Tooltip("공격 보트를 막았을 때 방어선에게 주는 보상")]
+ public float defenseReward = 10f;
+
+ [Tooltip("아군 선박이 Web과 충돌했을 때 페널티")]
+ public float allyWebCollisionPenalty = -2.0f;
+
+ [Header("Explosion Effect")]
+ [Tooltip("공격 보트 폭발 효과 Prefab (War FX)")]
+ public GameObject explosionPrefab;
+
+ [Tooltip("폭발 효과 크기 배율")]
+ [Range(5f, 50f)]
+ public float explosionScale = 15f;
+
+ [Header("Visual Material")]
+ [Tooltip("Web 시각화용 Material (비어있으면 기본 생성)")]
+ public Material webMaterial;
+
+ [Header("Managers")]
+ [Tooltip("환경 컨트롤러 (수동 할당 가능, 비어있으면 자동으로 찾음)")]
+ public DefenseEnvController envController;
+
+ private BoxCollider _collider;
+ private MeshRenderer _renderer;
+ private GameObject _visualObject;
+ private Color _lastWebColor;
+
+ private void Start()
+ {
+ // BoxCollider 설정
+ _collider = gameObject.GetComponent();
+ if (_collider == null)
+ {
+ _collider = gameObject.AddComponent();
+ }
+ _collider.isTrigger = isTrigger;
+
+ // 시각화 오브젝트 생성
+ if (showVisual)
+ {
+ CreateVisual();
+ }
+
+ // 초기 색상 저장
+ _lastWebColor = webColor;
+
+ // DefenseEnvController 찾기 및 캐싱 (멀티 환경 호환)
+ if (envController == null)
+ {
+ Transform envRoot = transform.parent != null ? transform.parent : transform;
+ envController = envRoot.GetComponentInChildren();
+ }
+ }
+
+ private void Update()
+ {
+ if (defenseShip1 == null || defenseShip2 == null)
+ return;
+
+ UpdateWebTransform();
+
+ // 색상 변경 감지 및 업데이트
+ if (_lastWebColor != webColor)
+ {
+ SetColor(webColor);
+ _lastWebColor = webColor;
+ }
+ }
+
+ ///
+ /// Web 위치 및 크기 업데이트
+ ///
+ private void UpdateWebTransform()
+ {
+ Vector3 pos1 = (webAnchor1 != null) ? webAnchor1.position : defenseShip1.position;
+ Vector3 pos2 = (webAnchor2 != null) ? webAnchor2.position : defenseShip2.position;
+
+ // Web 중심 위치
+ Vector3 centerPos = (pos1 + pos2) / 2f;
+ transform.position = centerPos;
+
+ // Web 회전
+ Vector3 direction = pos2 - pos1;
+ direction.y = 0f;
+ if (direction.magnitude > 0.01f)
+ {
+ Quaternion targetRotation = Quaternion.LookRotation(direction);
+ transform.rotation = targetRotation;
+ }
+
+ // Web 크기
+ float distance = Vector3.Distance(pos1, pos2);
+
+ if (_collider != null)
+ {
+ _collider.size = new Vector3(webThickness, webHeight, distance);
+ }
+
+ if (_visualObject != null)
+ {
+ _visualObject.transform.localScale = new Vector3(webThickness, webHeight, distance);
+ }
+ }
+
+ ///
+ /// Web 시각화 생성
+ ///
+ private void CreateVisual()
+ {
+ _visualObject = GameObject.CreatePrimitive(PrimitiveType.Cube);
+ _visualObject.name = "WebVisual";
+ _visualObject.transform.SetParent(transform);
+ _visualObject.transform.localPosition = Vector3.zero;
+ _visualObject.transform.localRotation = Quaternion.identity;
+
+ Destroy(_visualObject.GetComponent());
+
+ _renderer = _visualObject.GetComponent();
+ if (_renderer != null)
+ {
+ Material mat = null;
+
+ if (webMaterial != null)
+ {
+ mat = new Material(webMaterial);
+ mat.color = webColor;
+ }
+ else
+ {
+ Shader standardShader = Shader.Find("Standard");
+ if (standardShader != null)
+ {
+ mat = new Material(standardShader);
+ mat.color = webColor;
+ mat.SetFloat("_Mode", 3);
+ mat.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
+ mat.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
+ mat.SetInt("_ZWrite", 0);
+ mat.DisableKeyword("_ALPHATEST_ON");
+ mat.EnableKeyword("_ALPHABLEND_ON");
+ mat.DisableKeyword("_ALPHAPREMULTIPLY_ON");
+ mat.renderQueue = 3000;
+ }
+ else if (_renderer.sharedMaterial != null)
+ {
+ mat = new Material(_renderer.sharedMaterial);
+ mat.color = webColor;
+ }
+ }
+
+ if (mat != null)
+ {
+ _renderer.material = mat;
+ }
+ }
+ }
+
+ ///
+ /// Web 색상 변경
+ ///
+ public void SetColor(Color color)
+ {
+ webColor = color;
+ if (_renderer != null && _renderer.material != null)
+ {
+ _renderer.material.color = color;
+ }
+ }
+
+ private void OnValidate()
+ {
+ if (Application.isPlaying && showVisual && _renderer != null && _renderer.material != null)
+ {
+ SetColor(webColor);
+ }
+ }
+
+ ///
+ /// Trigger 충돌 감지
+ ///
+ private void OnTriggerEnter(Collider other)
+ {
+ if (other.CompareTag("attack_boat"))
+ {
+ HandleAttackBoatCollision(other.gameObject);
+ }
+ else if (IsDefenseShip(other.gameObject))
+ {
+ HandleAllyWebCollision(other.gameObject);
+ }
+ }
+
+ ///
+ /// 아군 선박인지 확인
+ ///
+ private bool IsDefenseShip(GameObject obj)
+ {
+ if (obj == null)
+ return false;
+
+ if (defenseShip1 != null && obj.transform == defenseShip1)
+ return true;
+ if (defenseShip2 != null && obj.transform == defenseShip2)
+ return true;
+
+ if (obj.GetComponent() != null)
+ return true;
+
+ return false;
+ }
+
+ ///
+ /// 아군 선박 Web 충돌 처리
+ ///
+ private void HandleAllyWebCollision(GameObject allyShip)
+ {
+ if (allyShip == null)
+ return;
+
+ if (envController == null)
+ {
+ Transform envRoot = transform.parent != null ? transform.parent : transform;
+ envController = envRoot.GetComponentInChildren();
+ }
+
+ if (envController != null)
+ {
+ envController.OnAllyHitWeb(allyShip, allyWebCollisionPenalty);
+ }
+ }
+
+ ///
+ /// 물리 충돌 감지
+ ///
+ private void OnCollisionEnter(Collision collision)
+ {
+ if (collision.gameObject.CompareTag("attack_boat"))
+ {
+ HandleAttackBoatCollision(collision.gameObject);
+ }
+ else if (IsDefenseShip(collision.gameObject))
+ {
+ HandleAllyWebCollision(collision.gameObject);
+ }
+ }
+
+ ///
+ /// attack_boat과의 충돌 처리
+ ///
+ private void HandleAttackBoatCollision(GameObject attackBoat)
+ {
+ if (attackBoat == null)
+ return;
+
+ if (envController == null)
+ {
+ Transform envRoot = transform.parent != null ? transform.parent : transform;
+ envController = envRoot.GetComponentInChildren();
+ if (envController == null)
+ return;
+ }
+
+ envController.OnEnemyHitWeb(attackBoat);
+ }
+
+ ///
+ /// 폭발 효과 생성
+ ///
+ private void CreateExplosion(Vector3 position)
+ {
+ if (explosionPrefab == null)
+ return;
+
+ Vector3 explosionPosition = position;
+ explosionPosition.y += 0.5f;
+
+ GameObject explosion = Instantiate(explosionPrefab, explosionPosition, Quaternion.identity);
+
+ if (explosion != null)
+ {
+ explosion.SetActive(true);
+ float scaleMultiplier = explosionScale;
+ explosion.transform.localScale = Vector3.one * scaleMultiplier;
+
+ ParticleSystem[] particleSystems = explosion.GetComponentsInChildren();
+ foreach (var ps in particleSystems)
+ {
+ var main = ps.main;
+
+ if (main.startSize.mode == ParticleSystemCurveMode.Constant)
+ {
+ main.startSize = main.startSize.constant * scaleMultiplier;
+ }
+ else if (main.startSize.mode == ParticleSystemCurveMode.TwoConstants)
+ {
+ main.startSize = new ParticleSystem.MinMaxCurve(
+ main.startSize.constantMin * scaleMultiplier,
+ main.startSize.constantMax * scaleMultiplier
+ );
+ }
+
+ if (main.startSpeed.mode == ParticleSystemCurveMode.Constant)
+ {
+ main.startSpeed = main.startSpeed.constant * scaleMultiplier;
+ }
+ else if (main.startSpeed.mode == ParticleSystemCurveMode.TwoConstants)
+ {
+ main.startSpeed = new ParticleSystem.MinMaxCurve(
+ main.startSpeed.constantMin * scaleMultiplier,
+ main.startSpeed.constantMax * scaleMultiplier
+ );
+ }
+ }
+ }
+ }
+
+ ///
+ /// 방어선에게 보상 부여
+ ///
+ private void RewardDefenseShips()
+ {
+ if (defenseShip1 != null)
+ {
+ var agent = defenseShip1.GetComponent();
+ if (agent != null)
+ {
+ agent.AddReward(defenseReward);
+ }
+ }
+
+ if (defenseShip2 != null)
+ {
+ var agent = defenseShip2.GetComponent();
+ if (agent != null)
+ {
+ agent.AddReward(defenseReward);
+ }
+ }
+ }
+
+ ///
+ /// attack_boat 리셋
+ ///
+ private void ResetAttackBoat(GameObject attackBoat)
+ {
+ if (attackBoat == null)
+ return;
+
+ if (envController == null)
+ {
+ Transform envRoot = transform.parent != null ? transform.parent : transform;
+ envController = envRoot.GetComponentInChildren();
+ }
+
+ if (envController != null)
+ {
+ envController.OnEnemyHitWeb(attackBoat);
+ }
+ }
+
+ ///
+ /// Gizmo 시각화
+ ///
+ private void OnDrawGizmos()
+ {
+ if (defenseShip1 == null || defenseShip2 == null)
+ return;
+
+ Vector3 pos1 = defenseShip1.position;
+ Vector3 pos2 = defenseShip2.position;
+ Vector3 centerPos = (pos1 + pos2) / 2f;
+
+ Gizmos.color = Color.cyan;
+ Gizmos.DrawLine(pos1, pos2);
+
+ Gizmos.color = Color.yellow;
+ Gizmos.DrawWireSphere(centerPos, 1f);
+ }
+ }
+}
diff --git a/Assets/Scripts/Defense/MLAgents/DynamicWeb.cs.meta b/Assets/Scripts/Defense/MLAgents/DynamicWeb.cs.meta
new file mode 100644
index 000000000..58d5b5a9c
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents/DynamicWeb.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 2bab1c94f014cd84b9463cad0283b1c1
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/MLAgents/SimpleExplosionOnCollision.cs b/Assets/Scripts/Defense/MLAgents/SimpleExplosionOnCollision.cs
new file mode 100644
index 000000000..585c217f4
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents/SimpleExplosionOnCollision.cs
@@ -0,0 +1,216 @@
+using UnityEngine;
+
+namespace BoatAttack
+{
+ ///
+ /// 간단한 충돌 폭발 컴포넌트
+ /// MotherShip과 충돌 시 폭발 효과만 생성
+ ///
+ public class SimpleExplosionOnCollision : MonoBehaviour
+ {
+ [Header("Target Settings")]
+ [Tooltip("모선 태그")]
+ public string motherShipTag = "MotherShip";
+
+ [Header("Explosion Settings")]
+ [Tooltip("폭발 효과 Prefab (War FX)")]
+ public GameObject explosionPrefab;
+
+ [Tooltip("폭발 효과 크기 배율")]
+ [Range(5f, 50f)]
+ public float explosionScale = 23f;
+
+ [Tooltip("폭발 후 오브젝트 제거 여부")]
+ public bool destroyAfterExplosion = true;
+
+ [Tooltip("폭발 후 제거까지의 딜레이 (초)")]
+ public float destroyDelay = 1.5f;
+
+ [Header("Collision Detection")]
+ [Tooltip("충돌 감지 방식: true=Trigger 사용, false=물리 Collision 사용")]
+ public bool useTriggerCollision = false;
+
+ // 폭발 여부 플래그
+ private bool _hasExploded = false;
+
+ ///
+ /// Trigger 충돌 감지
+ ///
+ private void OnTriggerEnter(Collider other)
+ {
+ if (!useTriggerCollision || _hasExploded)
+ {
+ return;
+ }
+
+ Debug.Log($"[SimpleExplosion] OnTriggerEnter: {other.gameObject.name}, Tag: {other.tag}");
+
+ if (IsMotherShip(other.gameObject))
+ {
+ Debug.Log("[SimpleExplosion] MotherShip 충돌 감지! 폭발 시작");
+ HandleExplosion();
+ }
+ }
+
+ ///
+ /// Collision 충돌 감지
+ ///
+ private void OnCollisionEnter(Collision collision)
+ {
+ if (_hasExploded)
+ {
+ return;
+ }
+
+ Debug.Log($"[SimpleExplosion] OnCollisionEnter: {collision.gameObject.name}, Tag: {collision.gameObject.tag}");
+
+ // MotherShip과의 충돌은 useTriggerCollision 설정과 관계없이 항상 처리
+ if (IsMotherShip(collision.gameObject))
+ {
+ Debug.Log("[SimpleExplosion] MotherShip 충돌 감지! 폭발 시작");
+ HandleExplosion();
+ return;
+ }
+
+ // MotherShip이 아닌 경우, useTriggerCollision이 true면 무시
+ if (useTriggerCollision)
+ {
+ return;
+ }
+ }
+
+ ///
+ /// 충돌한 객체가 MotherShip인지 확인
+ ///
+ private bool IsMotherShip(GameObject obj)
+ {
+ if (obj == null)
+ {
+ return false;
+ }
+
+ // 태그로 확인
+ if (!string.IsNullOrEmpty(motherShipTag) && obj.CompareTag(motherShipTag))
+ {
+ Debug.Log($"[SimpleExplosion] 태그로 확인됨: {motherShipTag}");
+ return true;
+ }
+
+ // 이름으로 확인
+ if (obj.name.Contains("MotherShip") || obj.name.Contains("Mother"))
+ {
+ Debug.Log($"[SimpleExplosion] 이름으로 확인됨: {obj.name}");
+ return true;
+ }
+
+ return false;
+ }
+
+ ///
+ /// 폭발 처리
+ ///
+ private void HandleExplosion()
+ {
+ if (_hasExploded)
+ {
+ return;
+ }
+
+ Debug.Log("[SimpleExplosion] 폭발 처리 시작");
+
+ // 폭발 효과 생성
+ TriggerExplosion();
+
+ // 오브젝트 제거 (옵션)
+ if (destroyAfterExplosion)
+ {
+ Destroy(gameObject, destroyDelay);
+ Debug.Log($"[SimpleExplosion] {destroyDelay}초 후 오브젝트 제거 예약");
+ }
+ }
+
+ ///
+ /// 폭발 효과 생성
+ ///
+ private void TriggerExplosion()
+ {
+ if (_hasExploded)
+ {
+ return;
+ }
+
+ _hasExploded = true;
+ Debug.Log($"[SimpleExplosion] 폭발 효과 생성 위치: {transform.position}");
+
+ // 폭발 Prefab 검증
+ if (explosionPrefab == null)
+ {
+ Debug.LogError("[SimpleExplosion] explosionPrefab이 null입니다! Inspector에서 War FX 폭발 효과 Prefab을 할당해주세요.");
+ return;
+ }
+
+ // 폭발 효과 생성 위치
+ Vector3 explosionPosition = transform.position;
+ explosionPosition.y += 0.5f;
+
+ // War FX 폭발 효과 생성
+ GameObject explosion = Instantiate(explosionPrefab, explosionPosition, Quaternion.identity);
+
+ if (explosion != null)
+ {
+ explosion.SetActive(true);
+
+ // 폭발 효과 크기 조정
+ float scaleMultiplier = explosionScale;
+ explosion.transform.localScale = Vector3.one * scaleMultiplier;
+
+ // ParticleSystem 크기와 속도 조정
+ ParticleSystem[] particleSystems = explosion.GetComponentsInChildren();
+ foreach (var ps in particleSystems)
+ {
+ var main = ps.main;
+
+ // Start Size 증가
+ if (main.startSize.mode == ParticleSystemCurveMode.Constant)
+ {
+ main.startSize = main.startSize.constant * scaleMultiplier;
+ }
+ else if (main.startSize.mode == ParticleSystemCurveMode.TwoConstants)
+ {
+ main.startSize = new ParticleSystem.MinMaxCurve(
+ main.startSize.constantMin * scaleMultiplier,
+ main.startSize.constantMax * scaleMultiplier
+ );
+ }
+
+ // Start Speed 증가
+ if (main.startSpeed.mode == ParticleSystemCurveMode.Constant)
+ {
+ main.startSpeed = main.startSpeed.constant * scaleMultiplier;
+ }
+ else if (main.startSpeed.mode == ParticleSystemCurveMode.TwoConstants)
+ {
+ main.startSpeed = new ParticleSystem.MinMaxCurve(
+ main.startSpeed.constantMin * scaleMultiplier,
+ main.startSpeed.constantMax * scaleMultiplier
+ );
+ }
+ }
+
+ Debug.Log($"[SimpleExplosion] 폭발 효과 생성 완료!");
+ Debug.Log($"[SimpleExplosion] - 위치: {explosionPosition}");
+ Debug.Log($"[SimpleExplosion] - 크기 배율: {scaleMultiplier}x");
+ Debug.Log($"[SimpleExplosion] - ParticleSystem 개수: {particleSystems.Length}");
+
+ if (particleSystems.Length == 0)
+ {
+ Debug.LogWarning("[SimpleExplosion] 폭발 효과에 ParticleSystem이 없습니다!");
+ }
+ }
+ else
+ {
+ Debug.LogError("[SimpleExplosion] 폭발 효과 생성 실패!");
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/Defense/MLAgents/SimpleExplosionOnCollision.cs.meta b/Assets/Scripts/Defense/MLAgents/SimpleExplosionOnCollision.cs.meta
new file mode 100644
index 000000000..209e06923
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents/SimpleExplosionOnCollision.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5151718a2d3be6b4f94d00f05b1efc1d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/MLAgents/WebCollisionDetector.cs b/Assets/Scripts/Defense/MLAgents/WebCollisionDetector.cs
new file mode 100644
index 000000000..8f193a100
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents/WebCollisionDetector.cs
@@ -0,0 +1,98 @@
+using UnityEngine;
+
+namespace BoatAttack
+{
+ ///
+ /// Web 오브젝트에 부착하여 attack_boat와의 충돌을 감지
+ /// 충돌 시 DefenseEnvController를 통해 그룹 보상으로 처리
+ ///
+ public class WebCollisionDetector : MonoBehaviour
+ {
+ [Header("Settings")]
+ [Tooltip("충돌 감지할 적군 태그")]
+ public string enemyTag = "attack_boat";
+
+ [Tooltip("환경 컨트롤러 (충돌 시 알림)")]
+ public DefenseEnvController envController;
+
+ [Tooltip("충돌 효과 Prefab (선택적)")]
+ public GameObject captureEffectPrefab;
+
+ [Tooltip("효과 크기")]
+ public float effectScale = 1f;
+
+ [Header("Debug")]
+ [Tooltip("디버그 로그 활성화")]
+ public bool enableDebugLog = true;
+
+
+ private bool _hasTriggered = false;
+
+ private void Start()
+ {
+ // 환경 컨트롤러 자동 찾기 (멀티 환경 호환)
+ if (envController == null)
+ {
+ Transform envRoot = transform.parent != null ? transform.parent : transform;
+ envController = envRoot.GetComponentInChildren();
+ }
+ }
+
+ private void OnTriggerEnter(Collider other)
+ {
+ // 이미 트리거된 경우 무시
+ if (_hasTriggered)
+ return;
+
+ // attack_boat 태그 확인
+ if (other.CompareTag(enemyTag))
+ {
+ _hasTriggered = true;
+
+ if (enableDebugLog)
+ {
+ Debug.Log($"[WebCollisionDetector] 적군 포획! {other.gameObject.name}");
+ }
+
+ // 적군 선박 참조
+ GameObject enemyBoat = other.gameObject;
+
+ // DefenseEnvController를 통해 적군과 아군 모두 원점으로 리셋 처리 (에피소드 종료 없음)
+ if (envController != null)
+ {
+ envController.OnEnemyHitWeb(enemyBoat);
+ }
+ else
+ {
+ if (enableDebugLog)
+ {
+ Debug.LogWarning("[WebCollisionDetector] DefenseEnvController를 찾을 수 없습니다!");
+ }
+ }
+
+ // 효과 생성
+ if (captureEffectPrefab != null)
+ {
+ GameObject effect = Instantiate(captureEffectPrefab, transform.position, Quaternion.identity);
+ effect.transform.localScale = Vector3.one * effectScale;
+ Destroy(effect, 3f);
+ }
+ }
+ }
+
+ ///
+ /// 에피소드 리셋 시 호출
+ ///
+ public void ResetDetector()
+ {
+ _hasTriggered = false;
+ }
+
+ private void OnDrawGizmos()
+ {
+ // Web 범위 시각화
+ Gizmos.color = _hasTriggered ? Color.green : Color.yellow;
+ Gizmos.DrawWireCube(transform.position, transform.localScale);
+ }
+ }
+}
diff --git a/Assets/Scripts/Defense/MLAgents/WebCollisionDetector.cs.meta b/Assets/Scripts/Defense/MLAgents/WebCollisionDetector.cs.meta
new file mode 100644
index 000000000..3ff6b13d4
--- /dev/null
+++ b/Assets/Scripts/Defense/MLAgents/WebCollisionDetector.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: a6cc934df7f36294e9c99888816e0d45
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/ManualControlDebugChecklist.md b/Assets/Scripts/Defense/ManualControlDebugChecklist.md
new file mode 100644
index 000000000..218b056dd
--- /dev/null
+++ b/Assets/Scripts/Defense/ManualControlDebugChecklist.md
@@ -0,0 +1,172 @@
+# 수동 조종 디버깅 체크리스트
+
+## 즉시 확인할 사항
+
+### 1. DecisionRequester 컴포넌트 확인 ⚠️ 필수
+1. Unity 에디터에서 DefenseAgent GameObject 선택
+2. Inspector에서 **Decision Requester** 컴포넌트가 있는지 확인
+3. 없으면: **Add Component → Decision Requester** 추가
+4. 설정 확인:
+ - **Decision Period**: 5 (또는 1~10)
+ - **Take Actions Between Decisions**: 체크 해제 (권장)
+ - **Behavior Type**: **Heuristic Only** (테스트 시)
+
+### 2. Behavior Parameters 확인
+1. DefenseAgent GameObject 선택
+2. Inspector에서 **Behavior Parameters** 컴포넌트 확인
+3. **Behavior Type**이 **Heuristic Only**로 설정되어 있는지 확인
+ - Default → Heuristic Only로 변경
+
+### 3. Engine 컴포넌트 확인
+1. DefenseAgent GameObject에 **Boat** 컴포넌트가 있는지 확인
+2. Boat 컴포넌트의 **engine** 필드가 할당되어 있는지 확인
+3. Engine GameObject에 **Rigidbody** 컴포넌트가 있는지 확인
+
+### 4. 디버그 로그 활성화
+1. DefenseAgent의 Inspector에서
+2. **Enable Debug Log** 체크
+3. Play 모드에서 Console 창 확인
+4. 다음 로그들이 나타나는지 확인:
+ - `[DefenseAgent] DecisionRequester 확인됨`
+ - `[DefenseAgent] Engine 확인됨`
+ - `[DefenseAgent] Heuristic 호출됨 - 키 입력 감지`
+ - `[DefenseAgent] OnActionReceived`
+ - `[DefenseAgent] Engine 제어`
+
+---
+
+## 단계별 디버깅
+
+### Step 1: 컴포넌트 확인
+```
+✅ DecisionRequester 있음
+✅ Behavior Parameters 있음
+✅ Behavior Type = Heuristic Only
+✅ Boat 컴포넌트 있음
+✅ Engine 할당됨
+✅ Rigidbody 있음
+```
+
+### Step 2: 키보드 입력 확인
+1. Play 모드 진입
+2. 키보드 입력 (WASD 또는 화살표 키)
+3. Console에서 다음 로그 확인:
+ - `[DefenseAgent] Heuristic 호출됨 - 키 입력 감지`
+ - `[DefenseAgent] Heuristic 액션 값: Linear=..., Angular=...`
+
+**문제**: 로그가 나타나지 않음
+- **원인**: DecisionRequester가 없거나 Behavior Type이 잘못됨
+- **해결**: Step 1 다시 확인
+
+### Step 3: OnActionReceived 확인
+Console에서 다음 로그 확인:
+- `[DefenseAgent] OnActionReceived: ..., Linear=..., Angular=...`
+
+**문제**: 로그가 나타나지 않음
+- **원인**: DecisionRequester의 Decision Period가 너무 큼
+- **해결**: Decision Period를 1로 설정
+
+### Step 4: Engine 제어 확인
+Console에서 다음 로그 확인:
+- `[DefenseAgent] Engine 제어: ..., Throttle=..., Steering=...`
+
+**문제**: 로그가 나타나지 않음
+- **원인**: _engine이 null이거나 RB가 null
+- **해결**: Engine 컴포넌트 확인
+
+**문제**: 로그는 나타나지만 움직이지 않음
+- **원인**: Engine.Accelerate() 또는 Engine.Turn()이 작동하지 않음
+- **해결**: Engine 스크립트 확인
+
+---
+
+## 일반적인 문제와 해결책
+
+### 문제 1: 아무 로그도 나타나지 않음
+**원인**: enableDebugLog가 false
+**해결**: DefenseAgent의 Inspector에서 Enable Debug Log 체크
+
+### 문제 2: "DecisionRequester 컴포넌트가 없습니다" 에러
+**원인**: DecisionRequester가 없음
+**해결**: Add Component → Decision Requester 추가
+
+### 문제 3: "Engine이 null입니다" 에러
+**원인**: Boat 컴포넌트가 없거나 engine 필드가 할당되지 않음
+**해결**:
+1. Boat 컴포넌트 추가
+2. Boat의 engine 필드에 Engine GameObject 할당
+
+### 문제 4: "Engine.RB (Rigidbody)가 null입니다" 에러
+**원인**: Engine GameObject에 Rigidbody가 없음
+**해결**: Engine GameObject에 Rigidbody 컴포넌트 추가
+
+### 문제 5: Heuristic은 호출되지만 OnActionReceived가 호출되지 않음
+**원인**: DecisionRequester의 Decision Period가 너무 큼
+**해결**: Decision Period를 1~5로 설정
+
+### 문제 6: OnActionReceived는 호출되지만 Engine 제어 로그가 나타나지 않음
+**원인**: throttle과 steering 값이 0에 가까움
+**해결**:
+1. 키 입력이 제대로 되는지 확인
+2. maxLinearVelocity, maxAngularVelocity 값 확인
+3. velocityControlGain, angularVelocityControlGain 값 확인
+
+### 문제 7: 모든 로그는 정상이지만 배가 움직이지 않음
+**원인**: Engine.Accelerate() 또는 Engine.Turn() 메서드 문제
+**해결**:
+1. Engine 스크립트 확인
+2. Rigidbody의 constraints 확인 (Freeze Position이 체크되어 있지 않은지)
+3. Rigidbody의 isKinematic이 false인지 확인
+
+---
+
+## 빠른 테스트 스크립트
+
+DefenseAgent GameObject에 다음 스크립트를 임시로 추가하여 테스트:
+
+```csharp
+using UnityEngine;
+using UnityEngine.InputSystem;
+
+public class ManualControlTest : MonoBehaviour
+{
+ public Engine engine;
+
+ void Update()
+ {
+ if (engine == null) return;
+
+ Keyboard keyboard = Keyboard.current;
+ if (keyboard == null) return;
+
+ if (keyboard.wKey.isPressed)
+ {
+ engine.Accelerate(1f);
+ Debug.Log("W 키 입력 - 전진");
+ }
+ if (keyboard.sKey.isPressed)
+ {
+ engine.Accelerate(-0.5f);
+ Debug.Log("S 키 입력 - 후진");
+ }
+ if (keyboard.aKey.isPressed)
+ {
+ engine.Turn(-1f);
+ Debug.Log("A 키 입력 - 좌회전");
+ }
+ if (keyboard.dKey.isPressed)
+ {
+ engine.Turn(1f);
+ Debug.Log("D 키 입력 - 우회전");
+ }
+ }
+}
+```
+
+**⚠️ 중요**: 이 프로젝트는 Unity의 새로운 Input System을 사용합니다.
+- `Input.GetKey()` 대신 `Keyboard.current.wKey.isPressed` 사용
+- `using UnityEngine.InputSystem;` 추가 필요
+
+이 스크립트로 직접 Engine을 제어하여 움직이는지 확인하세요.
+움직이면 → ML-Agents 설정 문제
+움직이지 않으면 → Engine 또는 Rigidbody 문제
diff --git a/Assets/Scripts/Defense/ManualControlDebugChecklist.md.meta b/Assets/Scripts/Defense/ManualControlDebugChecklist.md.meta
new file mode 100644
index 000000000..83bcc29a0
--- /dev/null
+++ b/Assets/Scripts/Defense/ManualControlDebugChecklist.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 925e349ccdd126e40a588b6d3f88d313
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/MotherShipCollisionDetector.cs b/Assets/Scripts/Defense/MotherShipCollisionDetector.cs
new file mode 100644
index 000000000..8001c1db1
--- /dev/null
+++ b/Assets/Scripts/Defense/MotherShipCollisionDetector.cs
@@ -0,0 +1,83 @@
+using UnityEngine;
+
+namespace BoatAttack
+{
+ ///
+ /// 모선과 적군 선박의 충돌을 감지하는 컴포넌트
+ /// 모선 GameObject에 부착하여 사용
+ ///
+ public class MotherShipCollisionDetector : MonoBehaviour
+ {
+ [Header("Settings")]
+ [Tooltip("충돌 감지할 적군 태그")]
+ public string enemyTag = "attack_boat";
+
+ [Tooltip("환경 컨트롤러 (충돌 시 알림)")]
+ public DefenseEnvController envController;
+
+ [Header("Debug")]
+ [Tooltip("디버그 로그 활성화")]
+ public bool enableDebugLog = true;
+
+ private void Start()
+ {
+ // 환경 컨트롤러 자동 찾기 (멀티 환경 호환 - 루트까지 탐색)
+ if (envController == null)
+ {
+ Transform current = transform;
+ while (current != null)
+ {
+ envController = current.GetComponentInChildren();
+ if (envController != null) break;
+ current = current.parent;
+ }
+
+ if (envController == null)
+ {
+ Debug.LogWarning("[MotherShipCollisionDetector] DefenseEnvController를 찾을 수 없습니다!");
+ }
+ }
+ }
+
+ ///
+ /// 충돌 감지 (Collision)
+ ///
+ private void OnCollisionEnter(Collision collision)
+ {
+ if (collision.gameObject.CompareTag(enemyTag))
+ {
+ if (enableDebugLog)
+ {
+ Vector3 contactPoint = collision.contacts.Length > 0 ? collision.contacts[0].point : collision.gameObject.transform.position;
+ Debug.LogWarning($"[MotherShipCollisionDetector] 모선 충돌! 적군: {collision.gameObject.name}, " +
+ $"충돌 위치: {contactPoint}, 상대 속도: {collision.relativeVelocity.magnitude:F1}m/s");
+ }
+
+ if (envController != null)
+ {
+ envController.OnMotherShipCollision(collision.gameObject);
+ }
+ }
+ }
+
+ ///
+ /// 충돌 감지 (Trigger)
+ ///
+ private void OnTriggerEnter(Collider other)
+ {
+ if (other.CompareTag(enemyTag))
+ {
+ if (enableDebugLog)
+ {
+ Debug.LogWarning($"[MotherShipCollisionDetector] 모선 트리거 충돌! 적군: {other.gameObject.name}, " +
+ $"위치: {other.gameObject.transform.position}");
+ }
+
+ if (envController != null)
+ {
+ envController.OnMotherShipCollision(other.gameObject);
+ }
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/Defense/MotherShipCollisionDetector.cs.meta b/Assets/Scripts/Defense/MotherShipCollisionDetector.cs.meta
new file mode 100644
index 000000000..59fafa950
--- /dev/null
+++ b/Assets/Scripts/Defense/MotherShipCollisionDetector.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: c4d64502fdde05449be9d735a2069cad
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/MotherShipGenerator.cs b/Assets/Scripts/Defense/MotherShipGenerator.cs
new file mode 100644
index 000000000..7f1b7b35a
--- /dev/null
+++ b/Assets/Scripts/Defense/MotherShipGenerator.cs
@@ -0,0 +1,159 @@
+using UnityEngine;
+
+namespace BoatAttack
+{
+ ///
+ /// 항공모함(모선)을 자동으로 생성하는 헬퍼 스크립트
+ /// Inspector에서 설정 후 Context Menu로 생성하거나 Start()에서 자동 생성
+ ///
+ public class MotherShipGenerator : MonoBehaviour
+ {
+ [Header("Size Settings")]
+ [Tooltip("항공모함 길이")]
+ public float length = 50f;
+
+ [Tooltip("항공모함 너비")]
+ public float width = 15f;
+
+ [Tooltip("항공모함 높이")]
+ public float height = 5f;
+
+ [Header("Position")]
+ [Tooltip("항공모함 위치 (World 좌표)")]
+ public Vector3 position = Vector3.zero;
+
+ [Header("Materials")]
+ [Tooltip("선체 재질 (없으면 기본 재질 사용)")]
+ public Material hullMaterial;
+
+ [Tooltip("갑판 재질 (없으면 기본 재질 사용)")]
+ public Material deckMaterial;
+
+ [Header("Physics")]
+ [Tooltip("고정된 모선인지 (Kinematic)")]
+ public bool isKinematic = true;
+
+ [Tooltip("질량 (Kinematic이 아닐 경우)")]
+ public float mass = 100000f;
+
+ [Header("Auto Generate")]
+ [Tooltip("시작 시 자동 생성")]
+ public bool generateOnStart = false;
+
+ void Start()
+ {
+ if (generateOnStart)
+ {
+ GenerateAircraftCarrier();
+ }
+ }
+
+ ///
+ /// 항공모함 생성 (Context Menu에서 호출 가능)
+ ///
+ [ContextMenu("Generate Aircraft Carrier")]
+ public void GenerateAircraftCarrier()
+ {
+ // 기존 항공모함이 있으면 제거
+ GameObject existing = GameObject.Find("AircraftCarrier");
+ if (existing != null)
+ {
+ if (Application.isPlaying)
+ {
+ Destroy(existing);
+ }
+ else
+ {
+ DestroyImmediate(existing);
+ }
+ }
+
+ // 부모 오브젝트 생성
+ GameObject carrier = new GameObject("AircraftCarrier");
+ carrier.transform.position = position;
+ carrier.tag = "MotherShip"; // 태그 추가 (나중에 찾기 쉽게)
+
+ // 선체 (Hull)
+ GameObject hull = CreateCube("Hull", new Vector3(0, 0, 0),
+ new Vector3(length, height, width), hullMaterial);
+ hull.transform.SetParent(carrier.transform);
+
+ // 갑판 (Deck)
+ GameObject deck = CreateCube("Deck", new Vector3(0, height / 2 + 0.25f, 0),
+ new Vector3(length, 0.5f, width), deckMaterial);
+ deck.transform.SetParent(carrier.transform);
+
+ // 상부 구조물 (Superstructure) - 오른쪽 끝
+ GameObject superstructure = CreateCube("Superstructure",
+ new Vector3(length * 0.3f, height / 2 + 5f, 0),
+ new Vector3(8f, 10f, 6f), hullMaterial);
+ superstructure.transform.SetParent(carrier.transform);
+
+ // 비행갑판 표시 (Flight Deck) - 평면
+ GameObject flightDeck = GameObject.CreatePrimitive(PrimitiveType.Plane);
+ flightDeck.name = "FlightDeck";
+ flightDeck.transform.SetParent(carrier.transform);
+ flightDeck.transform.localPosition = new Vector3(0, height / 2 + 0.3f, 0);
+ flightDeck.transform.localScale = new Vector3(length / 10f, 1f, width / 10f);
+ flightDeck.transform.localRotation = Quaternion.Euler(0, 0, 0);
+ if (deckMaterial != null)
+ {
+ flightDeck.GetComponent().material = deckMaterial;
+ }
+
+ // Collider 추가
+ BoxCollider collider = carrier.AddComponent();
+ collider.size = new Vector3(length, height, width);
+ collider.center = new Vector3(0, height / 2, 0);
+
+ // Rigidbody 추가
+ Rigidbody rb = carrier.AddComponent();
+ rb.isKinematic = isKinematic;
+ if (!isKinematic)
+ {
+ rb.mass = mass;
+ }
+
+ Debug.Log($"항공모함 생성 완료! 위치: {position}, 크기: {length}x{width}x{height}");
+ }
+
+ ///
+ /// 큐브 생성 헬퍼 메서드
+ ///
+ private GameObject CreateCube(string name, Vector3 localPosition, Vector3 scale, Material mat)
+ {
+ GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
+ cube.name = name;
+ cube.transform.localPosition = localPosition;
+ cube.transform.localScale = scale;
+
+ if (mat != null)
+ {
+ cube.GetComponent().material = mat;
+ }
+ else
+ {
+ // 기본 회색 재질
+ Material defaultMat = new Material(Shader.Find("Standard"));
+ defaultMat.color = new Color(0.5f, 0.5f, 0.5f);
+ cube.GetComponent().material = defaultMat;
+ }
+
+ return cube;
+ }
+
+ ///
+ /// Gizmo로 항공모함 위치 표시 (에디터에서만)
+ ///
+ private void OnDrawGizmosSelected()
+ {
+ Gizmos.color = Color.cyan;
+ Gizmos.DrawWireCube(position + new Vector3(0, height / 2, 0),
+ new Vector3(length, height, width));
+
+ // 중심점 표시
+ Gizmos.color = Color.yellow;
+ Gizmos.DrawSphere(position, 2f);
+ }
+ }
+}
diff --git a/Assets/Scripts/Defense/MotherShipGenerator.cs.meta b/Assets/Scripts/Defense/MotherShipGenerator.cs.meta
new file mode 100644
index 000000000..3d62467ef
--- /dev/null
+++ b/Assets/Scripts/Defense/MotherShipGenerator.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e1d207fd194870149a989dc1ebd72e69
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/NaNErrorFixComplete.md b/Assets/Scripts/Defense/NaNErrorFixComplete.md
new file mode 100644
index 000000000..85199aabf
--- /dev/null
+++ b/Assets/Scripts/Defense/NaNErrorFixComplete.md
@@ -0,0 +1,148 @@
+# NaN 에러 완전 해결 가이드
+
+## 수정 완료 사항
+
+### 1. Engine.cs - 강화된 NaN 방지
+
+#### FixedUpdate() 메서드
+- **Rigidbody rotation NaN 체크 및 자동 리셋**
+ - `RB.rotation`이 NaN이면 `Quaternion.identity`로 리셋
+ - `RB.angularVelocity`를 `Vector3.zero`로 리셋
+ - `transform.rotation`도 함께 리셋
+ - `_currentAngle`, `_turnVel` 초기화
+- **Rigidbody position NaN 체크**
+ - `RB.position`이 NaN이면 현재 `transform.position`로 리셋
+ - `RB.velocity`를 `Vector3.zero`로 리셋
+- **Rigidbody velocity NaN 체크**
+ - `RB.velocity`가 NaN이면 `Vector3.zero`로 리셋
+- **_yHeight NaN 체크**
+ - 물리 계산 결과가 NaN이면 0으로 설정
+
+#### Turn() 메서드
+- **modifier NaN 체크** (기존)
+- **_currentAngle, _turnVel NaN 체크** (기존)
+- **deltaTime NaN 체크** (기존)
+- **targetAngle NaN 체크** (기존)
+- **SmoothDampAngle 결과 NaN 체크** (기존)
+- **eulerAngles 벡터 NaN 체크** (신규)
+- **transform.rotation NaN 체크 및 리셋** (신규)
+ - transform.rotation이 NaN이면 모든 관련 값 리셋
+
+#### Accelerate() 메서드
+- **modifier NaN 체크** (기존)
+- **forward 벡터 NaN 체크** (기존)
+- **RB null 체크** (기존)
+
+---
+
+### 2. DefenseAgent.cs - 입력 값 NaN 방지
+
+#### OnActionReceived() 메서드
+- **현재 속도 값 검증**
+ - `currentLinearVelocity`, `currentAngularVelocity` NaN 체크
+- **목표 속도 값 검증**
+ - `targetLinearVelocity`, `targetAngularVelocity` NaN 체크
+- **나눗셈 전 안전 체크**
+ - `maxLinearVelocity > 0.01f` 확인 후 계산
+ - `maxAngularVelocity > 0.01f` 확인 후 계산
+- **throttle, steering NaN 체크**
+ - 계산 결과가 NaN이면 0으로 설정
+- **_smoothThrottle, _smoothSteering NaN 체크**
+ - Lerp 전후 모두 검증
+- **최종 값 검증**
+ - `finalThrottle`, `finalSteering` NaN 체크
+ - `finalSteering` 범위 제한 (-1 ~ 1)
+
+---
+
+## NaN 발생 원인 분석
+
+### 가능한 원인들:
+1. **0으로 나누기**: `velocityControlGain / maxLinearVelocity`에서 `maxLinearVelocity`가 0
+2. **무한대 값**: 계산 과정에서 값이 무한대로 발산
+3. **Rigidbody 물리 엔진 버그**: Unity 물리 엔진 자체의 문제
+4. **Transform 회전 값 오염**: 이전 프레임의 NaN 값이 누적
+
+---
+
+## 해결 방법
+
+### 즉시 적용된 해결책:
+1. ✅ **모든 float 값에 NaN 체크 추가**
+2. ✅ **Rigidbody rotation/position/velocity 직접 체크 및 리셋**
+3. ✅ **나눗셈 전 분모 값 검증**
+4. ✅ **Transform 회전 값 검증 및 리셋**
+5. ✅ **계산 결과마다 NaN 체크**
+
+### 추가 권장 사항:
+1. **Unity 에디터 재시작** (캐시 문제 해결)
+2. **Rigidbody 설정 확인**:
+ - Constraints에서 Freeze Rotation이 체크되어 있지 않은지 확인
+ - Interpolate 설정 확인
+3. **물리 타임스텝 확인**:
+ - Edit → Project Settings → Time
+ - Fixed Timestep: 0.02 (기본값 권장)
+4. **디버그 로그 모니터링**:
+ - Console에서 `[Engine] ⚠️` 메시지 확인
+ - NaN이 감지되면 자동으로 리셋됨
+
+---
+
+## 테스트 방법
+
+### 1. Play 모드에서 테스트
+1. Unity 에디터에서 Play 모드 진입
+2. 키보드 입력 (WASD 또는 화살표 키)
+3. Console 창 확인:
+ - `[Engine] ⚠️ Rigidbody rotation이 NaN입니다!` 메시지가 나타나면 자동 리셋됨
+ - 배가 정상적으로 움직이는지 확인
+
+### 2. 로그 확인
+- `[DefenseAgent] Engine 제어` 로그에서 `Throttle`, `Steering` 값이 NaN이 아닌지 확인
+- `Input rotation is { NaN, NaN, NaN, NaN }` 에러가 더 이상 나타나지 않는지 확인
+
+### 3. 배 동작 확인
+- 배가 사라지지 않는지 확인
+- 회전이 정상적으로 작동하는지 확인
+- 조작이 즉각 반응하는지 확인
+
+---
+
+## 예상 결과
+
+### ✅ 해결된 문제:
+1. **"Input rotation is { NaN, NaN, NaN, NaN }" 에러 제거**
+2. **배가 사라지는 현상 방지**
+3. **조작이 먹히지 않는 현상 방지**
+4. **회전이 이상한 현상 방지**
+
+### ⚠️ 주의사항:
+- NaN이 감지되면 자동으로 리셋되므로, 배가 잠깐 멈출 수 있습니다
+- NaN이 자주 발생하면 근본 원인(물리 설정, Rigidbody 설정)을 확인해야 합니다
+- 디버그 로그가 활성화되어 있으면 Console에 경고 메시지가 표시됩니다
+
+---
+
+## 추가 디버깅
+
+### NaN이 계속 발생하는 경우:
+1. **Rigidbody 설정 확인**:
+ ```csharp
+ // DefenseAgent GameObject의 Rigidbody 확인
+ - Mass: 1 (너무 작거나 크지 않게)
+ - Drag: 0.5 (적절한 값)
+ - Angular Drag: 0.5 (적절한 값)
+ - Constraints: 모두 해제 (Freeze Position/Rotation 체크 해제)
+ ```
+
+2. **물리 레이어 확인**:
+ - 배가 다른 오브젝트와 충돌하면서 NaN이 발생할 수 있음
+ - Physics Layers 설정 확인
+
+3. **Time.fixedDeltaTime 확인**:
+ - Edit → Project Settings → Time
+ - Fixed Timestep이 0.02인지 확인
+
+4. **에디터 재시작**:
+ - Unity 에디터 완전 종료 후 재시작
+ - Library 폴더 삭제 후 재컴파일 (최후의 수단)
diff --git a/Assets/Scripts/Defense/NaNErrorFixComplete.md.meta b/Assets/Scripts/Defense/NaNErrorFixComplete.md.meta
new file mode 100644
index 000000000..d11c19994
--- /dev/null
+++ b/Assets/Scripts/Defense/NaNErrorFixComplete.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4786c2a02fdd04c49803945b2862bb71
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/README_Implementation.md b/Assets/Scripts/Defense/README_Implementation.md
new file mode 100644
index 000000000..34d163ff4
--- /dev/null
+++ b/Assets/Scripts/Defense/README_Implementation.md
@@ -0,0 +1,238 @@
+# MA-PPO 구현 가이드
+
+## 생성된 스크립트 목록
+
+### 팀 스크립트 (그룹 보상 분배)
+1. **DefenseRewardCalculator.cs** - 보상 계산 중앙화
+ - 협동 기동 보상 계산 (헤딩/속도 동기화, 간격 유지, 그물 장력)
+ - 전술 기동 보상 계산 (수직 차단, 추적 이득)
+ - 안전 및 제약 페널티 계산
+
+2. **DefenseEnvController.cs** - 환경 관리 및 그룹 보상 분배
+ - `SimpleMultiAgentGroup` 관리
+ - 매 프레임 보상 계산 및 분배
+ - 임무 성과 보상 처리 (포획, 모선 방어, 방어선 침범)
+ - 모선 충돌 처리 (Game Over)
+
+3. **MotherShipCollisionDetector.cs** - 모선 충돌 감지
+ - 모선 GameObject에 부착
+ - 적군-모선 충돌 감지 및 알림
+
+### 개인 스크립트 (에이전트)
+4. **DefenseAgent.cs** (개선됨) - 개별 에이전트
+ - 목표 속도 기반 액션
+ - 상대 좌표 기반 관측
+ - 적군 거리 기반 정렬
+ - 개별 보상 제거 (그룹 보상으로 전환)
+
+### 수정된 스크립트
+5. **WebCollisionDetector.cs** (수정됨)
+ - `DefenseEnvController`를 통한 그룹 보상 처리
+ - 적의 위치 전달
+
+6. **DefenseBoatManager.cs** (수정됨)
+ - `DefenseEnvController`와 통합
+ - 타임아웃 시 그룹 보상 처리
+
+---
+
+## Unity 설정 가이드
+
+### 1. Scene 설정
+
+#### Step 1: SimpleMultiAgentGroup 추가
+1. 빈 GameObject 생성 (이름: "DefenseEnvController")
+2. `SimpleMultiAgentGroup` 컴포넌트 추가
+3. `DefenseEnvController` 컴포넌트 추가
+4. `DefenseRewardCalculator` 컴포넌트 추가
+
+#### Step 2: DefenseEnvController 설정
+- **defenseAgent1**: 방어 에이전트 1 할당
+- **defenseAgent2**: 방어 에이전트 2 할당
+- **m_AgentGroup**: 같은 GameObject의 `SimpleMultiAgentGroup` 할당
+- **rewardCalculator**: 같은 GameObject의 `DefenseRewardCalculator` 할당
+- **motherShip**: 모선 GameObject 할당
+- **enemyShips**: 적군 선박 배열 할당 (최대 5대)
+- **webObject**: Web GameObject 할당
+
+#### Step 3: DefenseAgent 설정
+각 DefenseAgent에 다음 설정:
+- **enemyShips**: 적군 선박 배열 (DefenseEnvController와 동일하게)
+- **maxEnemyCount**: 5 (또는 적군 수에 맞게)
+- **partnerAgent**: 파트너 DefenseAgent 할당
+- **motherShip**: 모선 GameObject 할당
+- **webObject**: Web GameObject 할당
+- **maxLinearVelocity**: 20 (m/s)
+- **maxAngularVelocity**: 90 (deg/s)
+
+**⚠️ 중요: DecisionRequester 추가**
+- 각 DefenseAgent GameObject에 `DecisionRequester` 컴포넌트 추가
+- **Decision Period**: 5 (또는 원하는 값, 낮을수록 더 자주 결정)
+- **Take Actions Between Decisions**: 체크 해제 (권장)
+- **Behavior Type**:
+ - 테스트 시: **Heuristic Only** (키보드 입력 테스트)
+ - 학습 시: **Default** (또는 Behavior Config에서 설정)
+
+#### Step 4: SimpleMultiAgentGroup 설정
+- **Agents**: defenseAgent1, defenseAgent2 추가
+- **Behavior Name**: Behavior Config 이름 설정
+
+#### Step 5: 모선 충돌 감지 설정
+1. 모선 GameObject 선택
+2. `MotherShipCollisionDetector` 컴포넌트 추가
+3. **envController**: DefenseEnvController 할당
+4. **enemyTag**: "attack_boat" 설정
+
+#### Step 6: WebCollisionDetector 설정
+1. Web GameObject 선택
+2. `WebCollisionDetector` 컴포넌트 확인
+3. **envController**: DefenseEnvController 할당
+
+---
+
+### 2. Behavior Config 설정
+
+#### Observation Space
+- **크기**: `11 + (4 × maxEnemyCount)`
+ - 예: maxEnemyCount = 5 → 31개
+ - 예: maxEnemyCount = 3 → 23개
+ - 예: maxEnemyCount = 1 → 15개
+
+#### Action Space
+- **크기**: 2개 (연속 액션)
+ - `actions[0]`: 목표 선속도 (-1~1)
+ - `actions[1]`: 목표 각속도 (-1~1)
+
+#### Hyperparameters
+- **Algorithm**: PPO
+- **Learning Rate**: 3e-4
+- **Batch Size**: 128
+- **Buffer Size**: 2048
+- **Beta (entropy)**: 0.01
+- **Epsilon (clipping)**: 0.2
+- **Lambda (GAE)**: 0.95
+- **Gamma (discount)**: 0.99
+
+---
+
+### 3. 보상 값 튜닝 가이드
+
+#### 기본 보상 값 (계획서 기준)
+- **협동 기동**: 0.0002 (헤딩/속도/간격 동기화)
+- **그물 장력**: 0.0005
+- **전술 기동**: 0.0002~0.0005 (수직 차단, 추적 이득)
+- **임무 성과**: 1.0 (포획), 0.5 (모선 방어)
+- **패널티**: -1.75 (모선 충돌), -1.0 (아군 충돌), -0.1 (경계선 침범)
+
+#### 튜닝 팁
+1. 학습 초기에는 협동 보상을 약간 높게 (0.0003~0.0005)
+2. 학습이 안정화되면 협동 보상을 낮춰서 최종 목표에 집중
+3. 모선 충돌 패널티는 절대 낮추지 말 것 (최악의 결과)
+4. 보상 비율 검증: 최종 목표 보상이 협동 보상 누적합보다 10배 이상 커야 함
+
+---
+
+### 4. 디버깅 체크리스트
+
+#### 초기 설정 확인
+- [ ] SimpleMultiAgentGroup이 두 에이전트를 등록했는지 확인
+- [ ] DefenseEnvController가 m_AgentGroup을 참조하는지 확인
+- [ ] DefenseRewardCalculator가 DefenseEnvController에 할당되었는지 확인
+- [ ] 모선에 MotherShipCollisionDetector가 추가되었는지 확인
+- [ ] WebCollisionDetector가 envController를 참조하는지 확인
+
+#### 휴리스틱 테스트 확인 ⚠️ 중요
+- [ ] **각 DefenseAgent에 DecisionRequester 컴포넌트가 추가되었는지 확인**
+- [ ] **DecisionRequester의 Behavior Type이 Heuristic Only로 설정되었는지 확인** (테스트 시)
+- [ ] **Decision Period가 적절한지 확인** (5 권장)
+- [ ] 에이전트 이름에 "1" 또는 "2"가 포함되어 있는지 확인
+- [ ] 키보드 입력이 작동하는지 확인 (WASD 또는 화살표 키)
+
+#### 관측값 확인
+- [ ] Observation Space 크기가 올바른지 확인 (11 + 4×적군수)
+- [ ] 적군 배열이 올바르게 할당되었는지 확인
+- [ ] 상대 좌표 계산이 올바른지 확인 (Gizmo로 시각화)
+
+#### 액션 확인
+- [ ] 목표 속도가 올바르게 throttle/steering으로 변환되는지 확인
+- [ ] 가속도 제한이 작동하는지 확인
+- [ ] 스무딩이 적절한지 확인
+
+#### 보상 확인
+- [ ] 그룹 보상이 두 에이전트 모두에 분배되는지 확인
+- [ ] 개별 보상이 제거되었는지 확인 (DefenseAgent.CalculateReward 비활성화)
+- [ ] 보상 값이 계획서와 일치하는지 확인
+
+---
+
+### 5. 학습 시작 전 확인사항
+
+1. **Unity Editor에서 테스트**
+ - Heuristic 모드로 두 에이전트가 정상 동작하는지 확인
+ - 키보드 입력이 목표 속도로 변환되는지 확인
+
+2. **보상 분배 테스트**
+ - DefenseEnvController의 Update()가 정상 호출되는지 확인
+ - 그룹 보상이 분배되는지 로그로 확인
+
+3. **충돌 감지 테스트**
+ - 모선 충돌이 정상 감지되는지 확인
+ - Web 충돌이 정상 감지되는지 확인
+
+4. **에피소드 관리 테스트**
+ - 에피소드 시작/종료가 정상 작동하는지 확인
+ - 리셋이 올바르게 되는지 확인
+
+---
+
+### 6. 문제 해결
+
+#### 문제: 휴리스틱이 작동하지 않음 (움직이지 않음)
+- **원인 1**: DecisionRequester 컴포넌트가 없음
+- **해결**: 각 DefenseAgent에 DecisionRequester 추가
+- **원인 2**: Behavior Type이 Heuristic Only로 설정되지 않음
+- **해결**: DecisionRequester의 Behavior Type을 Heuristic Only로 설정
+- **원인 3**: _engine이 null이거나 RB가 null
+- **해결**: DefenseAgent가 Boat 컴포넌트를 가지고 있는지 확인
+- **원인 4**: OnActionReceived가 호출되지 않음
+- **해결**: DecisionRequester의 Decision Period 확인 (너무 크면 느림)
+
+#### 문제: 그룹 보상이 분배되지 않음
+- **원인**: SimpleMultiAgentGroup이 에이전트를 등록하지 않음
+- **해결**: Start()에서 RegisterAgent() 호출 확인
+
+#### 문제: 관측값 크기 불일치
+- **원인**: maxEnemyCount와 실제 적군 수 불일치
+- **해결**: Behavior Config의 Observation Space 크기 확인
+
+#### 문제: 목표 속도가 적용되지 않음
+- **원인**: 가속도 제한이 너무 엄격함
+- **해결**: maxLinearAcceleration, maxAngularAcceleration 값 조정
+
+#### 문제: 보상 해킹 발생
+- **원인**: 협동 보상 값이 너무 큼
+- **해결**: 협동 보상 값을 더 낮춤 (0.0001~0.0002)
+
+---
+
+### 7. 다음 단계
+
+1. Unity Scene 설정 완료
+2. Behavior Config 설정 완료
+3. Heuristic 모드로 테스트
+4. 학습 시작
+5. 보상 값 튜닝
+6. 성능 검증
+
+---
+
+## 참고 파일
+
+- **계획서**: `MA_PPO_Implementation_Plan.md`
+- **구현 스크립트**:
+ - `DefenseRewardCalculator.cs`
+ - `DefenseEnvController.cs`
+ - `MotherShipCollisionDetector.cs`
+ - `DefenseAgent.cs` (개선됨)
+ - `WebCollisionDetector.cs` (수정됨)
+ - `DefenseBoatManager.cs` (수정됨)
diff --git a/Assets/Scripts/Defense/README_Implementation.md.meta b/Assets/Scripts/Defense/README_Implementation.md.meta
new file mode 100644
index 000000000..f79065b6e
--- /dev/null
+++ b/Assets/Scripts/Defense/README_Implementation.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f4b25741b9700d943bde429eab6a4cac
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git "a/Assets/Scripts/Defense/RL_\355\214\214\354\235\274\354\240\225\353\246\254.md" "b/Assets/Scripts/Defense/RL_\355\214\214\354\235\274\354\240\225\353\246\254.md"
new file mode 100644
index 000000000..fbcee530f
--- /dev/null
+++ "b/Assets/Scripts/Defense/RL_\355\214\214\354\235\274\354\240\225\353\246\254.md"
@@ -0,0 +1,298 @@
+# 강화학습 관련 파일 정리
+
+## 📁 파일 구조
+
+```
+Scripts/
+├── MLAgents/
+│ └── DefenseAgent.cs # 방어 에이전트 (메인)
+│
+└── Defense/
+ ├── DefenseEnvController.cs # 환경 컨트롤러 (중앙 허브)
+ ├── DefenseRewardCalculator.cs # 보상 계산기
+ │
+ ├── MLAgents/
+ │ ├── AttackAgent.cs # 공격 에이전트
+ │ ├── DynamicWeb.cs # 웹 생성 및 관리
+ │ ├── WebCollisionDetector.cs # 웹 충돌 감지
+ │ ├── SimpleExplosionOnCollision.cs # 폭발 효과
+ │ └── AttackBoatDisabler.cs # 공격 보트 비활성화
+ │
+ ├── MotherShipCollisionDetector.cs # 모선 충돌 감지
+ └── MotherShipGenerator.cs # 모선 생성
+```
+
+---
+
+## 🎯 핵심 파일 설명
+
+### 1. **DefenseAgent.cs** (`MLAgents/DefenseAgent.cs`)
+**역할:** 방어 에이전트 (메인 학습 대상)
+
+**주요 기능:**
+- 2대의 방어 선박이 협력하여 적군을 web 사이로 유도
+- 목표 속도 기반 연속 액션 (throttle, steering)
+- 상대 좌표 기반 관측 (파트너, 적군, 모선, web)
+- 그룹 보상 수신 (SimpleMultiAgentGroup)
+
+**액션:**
+- `ContinuousActions[0]`: throttle (-1 ~ 1)
+- `ContinuousActions[1]`: steering (-1 ~ 1)
+
+**관측:**
+- 파트너 상대 위치/속도
+- 적군 상대 위치/속도 (최대 5대)
+- 모선 상대 위치
+- Web 상대 위치
+- 자신의 속도/각속도
+
+---
+
+### 2. **DefenseEnvController.cs** (`Defense/DefenseEnvController.cs`)
+**역할:** 환경 컨트롤러 (중앙 허브)
+
+**주요 기능:**
+- 에피소드 시작/종료 관리
+- 모든 선박 위치 리셋
+- 적군 선박 재생성 및 추적
+- 그룹 보상 분배
+- Web 자동 생성 및 관리
+- 충돌 이벤트 처리 (Web, MotherShip)
+
+**핵심 메서드:**
+- `RestartEpisode()`: 에피소드 재시작
+- `ResetScene()`: 환경 리셋
+- `ResetPositionsOnly()`: 위치만 리셋
+- `OnEnemyHitWeb()`: 적군이 Web 충돌 시
+- `OnEnemyHitMotherShip()`: 적군이 모선 충돌 시
+
+---
+
+### 3. **DefenseRewardCalculator.cs** (`Defense/DefenseRewardCalculator.cs`)
+**역할:** 보상 계산기
+
+**주요 기능:**
+- 협동 기동 보상 계산
+- 전술 기동 보상 계산
+- 안전 및 제약 페널티 계산
+- 에이전트 상태 수집
+
+**보상 종류:**
+- 협동 보상: 두 에이전트 간 거리 유지
+- 전술 보상: 적군을 web 사이로 유도
+- 안전 페널티: 충돌, 경계 침범 등
+
+---
+
+### 4. **AttackAgent.cs** (`Defense/MLAgents/AttackAgent.cs`)
+**역할:** 공격 에이전트 (적군)
+
+**주요 기능:**
+- 모선에 접근하는 것이 목표
+- 거리 기반 보상 (가까울수록 높은 보상)
+- Raycast 기반 관측
+- Heuristic 제공 (수동 조작 가능)
+
+**보상:**
+- 모선과의 거리가 가까울수록 보상
+- 시간당 작은 페널티 (빠른 접근 유도)
+
+---
+
+## 🔧 보조 스크립트
+
+### 5. **DynamicWeb.cs** (`Defense/MLAgents/DynamicWeb.cs`)
+**역할:** Web 오브젝트 동적 생성 및 관리
+
+**주요 기능:**
+- 두 방어 선박 사이에 Web 생성
+- Web 크기/위치/회전 자동 조정
+- 충돌 감지용 Collider 설정
+
+---
+
+### 6. **WebCollisionDetector.cs** (`Defense/MLAgents/WebCollisionDetector.cs`)
+**역할:** Web 충돌 감지
+
+**주요 기능:**
+- `attack_boat` 태그와 충돌 감지
+- `DefenseEnvController.OnEnemyHitWeb()` 호출
+- 폭발 효과 및 에피소드 재시작 트리거
+
+---
+
+### 7. **MotherShipCollisionDetector.cs** (`Defense/MotherShipCollisionDetector.cs`)
+**역할:** 모선 충돌 감지
+
+**주요 기능:**
+- `attack_boat` 태그와 충돌 감지
+- `DefenseEnvController.OnEnemyHitMotherShip()` 호출
+- 폭발 효과 및 에피소드 재시작 트리거
+
+---
+
+### 8. **SimpleExplosionOnCollision.cs** (`Defense/MLAgents/SimpleExplosionOnCollision.cs`)
+**역할:** 충돌 시 폭발 효과
+
+**주요 기능:**
+- 충돌 시 ParticleSystem 생성
+- 일정 시간 후 자동 파괴
+
+---
+
+### 9. **AttackBoatDisabler.cs** (`Defense/MLAgents/AttackBoatDisabler.cs`)
+**역할:** 공격 보트 비활성화 관리
+
+**주요 기능:**
+- 특정 조건에서 공격 보트 비활성화
+- 에피소드 리셋 시 재활성화
+
+---
+
+## 📊 데이터 흐름
+
+```
+DefenseAgent (2대)
+ ↓ 관측/액션
+DefenseEnvController (중앙 허브)
+ ↓ 보상 계산 요청
+DefenseRewardCalculator
+ ↓ 보상 반환
+DefenseEnvController
+ ↓ 그룹 보상 분배
+SimpleMultiAgentGroup
+ ↓ 보상 전달
+DefenseAgent (2대)
+```
+
+---
+
+## 🎮 에피소드 흐름
+
+1. **시작:**
+ - `DefenseEnvController.Start()` → `ResetScene()`
+ - 모든 선박 초기 위치로 리셋
+ - Web 자동 생성
+
+2. **진행:**
+ - `DefenseAgent`들이 관측 수집 및 액션 수행
+ - `DefenseRewardCalculator`가 보상 계산
+ - `DefenseEnvController`가 보상 분배
+
+3. **종료 조건:**
+ - 모든 적군 선박 파괴
+ - 적군이 Web 충돌
+ - 적군이 모선 충돌
+ - 최대 환경 스텝 수 도달
+
+4. **재시작:**
+ - `RestartEpisode()` 호출
+ - 모든 위치/속도 리셋
+ - 파괴된 적군 재생성
+ - Web 재생성
+
+---
+
+## 🔗 파일 간 의존성
+
+```
+DefenseAgent
+ ├── DefenseEnvController (보상 수신, 에피소드 관리)
+ ├── DefenseRewardCalculator (보상 계산)
+ └── SimpleMultiAgentGroup (그룹 보상)
+
+DefenseEnvController
+ ├── DefenseAgent (에이전트 관리)
+ ├── DefenseRewardCalculator (보상 계산)
+ ├── SimpleMultiAgentGroup (그룹 보상)
+ ├── WebCollisionDetector (Web 충돌)
+ └── MotherShipCollisionDetector (모선 충돌)
+
+AttackAgent
+ └── DefenseEnvController (에피소드 관리)
+```
+
+---
+
+## 📝 설정 파일
+
+### Unity ML-Agents 설정
+- Behavior Name: `DefenseAgent`
+- Vector Observation Space: 변수 (파트너, 적군, 모선, web 등)
+- Vector Action Space: Continuous (2) - throttle, steering
+- Max Step: `DefenseEnvController.maxEnvironmentSteps`
+
+### 인스펙터 설정
+**DefenseEnvController:**
+- `defenseAgent1`, `defenseAgent2`: 방어 에이전트 할당
+- `motherShip`: 모선 GameObject
+- `enemyShips[]`: 적군 선박 배열
+- `webObject`: Web GameObject (자동 생성 가능)
+- `maxEnvironmentSteps`: 최대 환경 스텝 수
+
+**DefenseAgent:**
+- `partnerAgent`: 파트너 에이전트
+- `enemyShips[]`: 적군 선박 배열
+- `webObject`: Web GameObject
+- `motherShip`: 모선 GameObject
+
+---
+
+## 🚀 사용 방법
+
+1. **씬 설정:**
+ - `DefenseEnvController`를 씬에 추가
+ - `DefenseAgent` 2개를 방어 선박에 추가
+ - `AttackAgent`를 적군 선박에 추가 (선택사항)
+
+2. **인스펙터 설정:**
+ - `DefenseEnvController`에 에이전트 및 오브젝트 할당
+ - `DefenseAgent`에 파트너 및 적군 할당
+
+3. **학습 시작:**
+ - Unity에서 Play 모드 실행
+ - Python에서 ML-Agents 학습 시작
+ - `mlagents-learn` 명령어 사용
+
+---
+
+## 📚 관련 문서
+
+- `EpisodeEndConditions.md`: 에피소드 종료 조건 설명
+- `SimpleMultiAgentGroup_설명.md`: 그룹 보상 설명
+- `UnitySetupGuide.md`: Unity 설정 가이드
+- `MA_PPO_Implementation_Plan.md`: 다중 에이전트 PPO 구현 계획
+
+---
+
+## ⚠️ 주의사항
+
+1. **에이전트 등록:**
+ - `DefenseAgent`는 `SimpleMultiAgentGroup`에 등록되어야 함
+ - `DefenseEnvController.Start()`에서 자동 등록
+
+2. **Web 생성:**
+ - `DefenseEnvController.autoCreateWeb = true`로 설정 시 자동 생성
+ - 수동 생성 시 `webObject`에 할당
+
+3. **충돌 감지:**
+ - Web과 모선에 Collider 및 Rigidbody 필요
+ - `isTrigger = true` 설정 필요
+
+4. **에피소드 리셋:**
+ - 모든 위치 리셋은 코루틴으로 처리됨
+ - 비활성화 → 리셋 → 활성화 순서로 진행
+
+---
+
+## 🔄 최근 변경사항
+
+- 모든 디버그 로그 제거 (성능 최적화)
+- Web 자동 생성 기능 추가
+- 충돌 감지 시스템 개선
+- 적군 선박 재생성 시스템 추가
+
+---
+
+**작성일:** 2026-01-26
+**버전:** 1.0
diff --git "a/Assets/Scripts/Defense/RL_\355\214\214\354\235\274\354\240\225\353\246\254.md.meta" "b/Assets/Scripts/Defense/RL_\355\214\214\354\235\274\354\240\225\353\246\254.md.meta"
new file mode 100644
index 000000000..47daba4b3
--- /dev/null
+++ "b/Assets/Scripts/Defense/RL_\355\214\214\354\235\274\354\240\225\353\246\254.md.meta"
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 6ef3d8aea639dc74ea32b0575b509fde
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git "a/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\204\244\353\252\205.md" "b/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\204\244\353\252\205.md"
new file mode 100644
index 000000000..e5684d21f
--- /dev/null
+++ "b/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\204\244\353\252\205.md"
@@ -0,0 +1,101 @@
+# SimpleMultiAgentGroup 설명
+
+## ❓ SimpleMultiAgentGroup이란?
+
+**SimpleMultiAgentGroup**은 Unity ML-Agents 패키지에서 제공하는 **컴포넌트**입니다.
+
+### ✅ 중요한 사실:
+- **별도 파일을 만들 필요 없습니다!**
+- **스크립트를 작성할 필요 없습니다!**
+- Unity ML-Agents 패키지에 이미 포함되어 있습니다.
+
+---
+
+## 📦 ML-Agents 패키지 확인 방법
+
+### 1. Package Manager에서 확인
+1. Unity 에디터에서 **Window → Package Manager** 열기
+2. **In Project** 탭 선택
+3. 검색창에 `ml-agents` 입력
+4. `com.unity.ml-agents` 패키지가 설치되어 있는지 확인
+
+### 2. manifest.json에서 확인
+프로젝트 루트의 `Packages/manifest.json` 파일에서:
+```json
+{
+ "dependencies": {
+ "com.unity.ml-agents": "..."
+ }
+}
+```
+이 줄이 있으면 ML-Agents 패키지가 설치된 것입니다.
+
+---
+
+## 🔧 SimpleMultiAgentGroup 사용 방법
+
+### Unity Inspector에서:
+1. GameObject 선택
+2. **Add Component** 클릭
+3. 검색창에 `SimpleMultiAgentGroup` 입력
+4. **SimpleMultiAgentGroup** 컴포넌트 추가
+
+### 코드에서 사용:
+```csharp
+using Unity.MLAgents;
+
+public class DefenseEnvController : MonoBehaviour
+{
+ public SimpleMultiAgentGroup m_AgentGroup; // Inspector에서 할당
+
+ void Start()
+ {
+ // 자동으로 찾기
+ m_AgentGroup = GetComponent();
+ }
+}
+```
+
+---
+
+## ⚠️ SimpleMultiAgentGroup을 찾을 수 없는 경우
+
+### 문제 1: Add Component에서 검색되지 않음
+**해결 방법:**
+1. Unity 에디터 재시작
+2. Assets → Reimport All
+3. Library 폴더 삭제 후 Unity 재시작 (최후의 수단)
+
+### 문제 2: ML-Agents 패키지가 설치되지 않음
+**해결 방법:**
+1. Window → Package Manager
+2. + → Add package by name
+3. `com.unity.ml-agents` 입력
+4. Install 클릭
+
+### 문제 3: 패키지 버전 호환성 문제
+**확인 사항:**
+- Unity 버전이 ML-Agents와 호환되는지 확인
+- ML-Agents 패키지 버전 확인
+
+---
+
+## 📚 참고 자료
+
+- Unity ML-Agents 공식 문서: https://github.com/Unity-Technologies/ml-agents
+- SimpleMultiAgentGroup API: Unity ML-Agents 패키지 내 문서
+
+---
+
+## 💡 요약
+
+**SimpleMultiAgentGroup은:**
+- ✅ Unity ML-Agents 패키지의 일부
+- ✅ 별도 파일/스크립트 불필요
+- ✅ Add Component로 추가 가능
+- ❌ 직접 만들 필요 없음
+
+**만약 찾을 수 없다면:**
+1. ML-Agents 패키지 설치 확인
+2. Unity 에디터 재시작
+3. Library 폴더 삭제 후 재시작
diff --git "a/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\204\244\353\252\205.md.meta" "b/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\204\244\353\252\205.md.meta"
new file mode 100644
index 000000000..5a9a7e647
--- /dev/null
+++ "b/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\204\244\353\252\205.md.meta"
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d2d2863a294d8954192777b3ad263b33
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git "a/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\227\206\354\235\264_\354\202\254\354\232\251\355\225\230\352\270\260.md" "b/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\227\206\354\235\264_\354\202\254\354\232\251\355\225\230\352\270\260.md"
new file mode 100644
index 000000000..60c69bbe2
--- /dev/null
+++ "b/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\227\206\354\235\264_\354\202\254\354\232\251\355\225\230\352\270\260.md"
@@ -0,0 +1,127 @@
+# SimpleMultiAgentGroup 없이 사용하기
+
+## ✅ 수정 완료
+
+**DefenseEnvController**가 이제 SimpleMultiAgentGroup 없이도 작동합니다!
+
+---
+
+## 🔧 작동 방식
+
+### SimpleMultiAgentGroup이 있는 경우:
+- **그룹 보상 모드**: 두 에이전트가 동일한 보상을 받음
+- `m_AgentGroup.AddGroupReward()` 사용
+- `m_AgentGroup.EndGroupEpisode()` 사용
+
+### SimpleMultiAgentGroup이 없는 경우:
+- **개별 보상 모드**: 각 에이전트에 개별적으로 보상 부여
+- `defenseAgent1.AddReward()` 사용
+- `defenseAgent1.EndEpisode()` 사용
+
+---
+
+## 📋 설정 방법
+
+### 방법 1: SimpleMultiAgentGroup 없이 사용 (현재 권장)
+
+1. **DefenseEnvController GameObject 생성**
+2. **컴포넌트 추가**:
+ - ✅ DefenseEnvController
+ - ✅ DefenseRewardCalculator
+ - ❌ SimpleMultiAgentGroup (추가하지 않음)
+
+3. **DefenseEnvController 설정**:
+ - defenseAgent1, defenseAgent2 할당
+ - rewardCalculator 할당 (같은 GameObject)
+ - motherShip, enemyShips, webObject 할당
+ - **m_AgentGroup은 비워둠** (null)
+
+### 방법 2: SimpleMultiAgentGroup과 함께 사용
+
+1. **DefenseEnvController GameObject 생성**
+2. **컴포넌트 추가**:
+ - ✅ SimpleMultiAgentGroup
+ - ✅ DefenseEnvController
+ - ✅ DefenseRewardCalculator
+
+3. **설정**:
+ - SimpleMultiAgentGroup의 Agents 배열에 defenseAgent1, defenseAgent2 추가
+ - DefenseEnvController의 m_AgentGroup에 SimpleMultiAgentGroup 할당
+
+---
+
+## 🎯 랜덤 스폰 기능
+
+### DefenseBoatManager 설정
+
+**Inspector에서:**
+- **Enable Random Spawn**: 체크 (랜덤 스폰 활성화)
+- **Spawn Range**: 20 (기본값, 조절 가능)
+
+### 동작 방식
+
+에피소드가 시작될 때:
+1. **모선은 제외** (위치 유지)
+2. **아군 선박 (DefenseAgent 1, 2)**:
+ - 기존 위치에서 ±spawnRange 범위로 랜덤 생성
+ - 랜덤 회전 (0~360도)
+3. **적군 선박들**:
+ - 기존 위치에서 ±spawnRange 범위로 랜덤 생성
+ - 랜덤 회전 (0~360도)
+4. **Web 오브젝트**:
+ - 두 아군 선박의 중간 위치로 자동 배치
+
+---
+
+## 📊 보상 분배 비교
+
+### 그룹 보상 모드 (SimpleMultiAgentGroup 있음)
+```
+협동 보상 계산 → m_AgentGroup.AddGroupReward(0.0002)
+→ defenseAgent1과 defenseAgent2 모두 +0.0002 받음
+```
+
+### 개별 보상 모드 (SimpleMultiAgentGroup 없음)
+```
+협동 보상 계산 → defenseAgent1.AddReward(0.0002)
+ → defenseAgent2.AddReward(0.0002)
+→ 각각 +0.0002 받음 (결과는 동일)
+```
+
+**결과적으로 보상 값은 동일하지만, MA-PPO 학습에는 그룹 보상이 더 효과적입니다.**
+
+---
+
+## ⚠️ 주의사항
+
+### 개별 보상 모드의 한계:
+- MA-PPO의 그룹 학습 최적화를 완전히 활용하지 못할 수 있음
+- 하지만 기본적인 학습은 가능함
+
+### 권장 사항:
+- 가능하면 SimpleMultiAgentGroup 사용 (더 나은 협동 학습)
+- 없어도 작동은 하지만, 그룹 보상이 더 효과적
+
+---
+
+## 🐛 문제 해결
+
+### 문제: 보상이 분배되지 않음
+- **확인**: DefenseEnvController의 enableDebugLog 활성화
+- **확인**: Console에서 "[DefenseEnvController] 개별 보상 모드로 작동합니다" 메시지 확인
+
+### 문제: 랜덤 스폰이 작동하지 않음
+- **확인**: DefenseBoatManager의 enableRandomSpawn이 체크되어 있는지
+- **확인**: spawnRange 값이 0보다 큰지
+
+---
+
+## 💡 요약
+
+✅ **SimpleMultiAgentGroup 없이도 작동합니다!**
+- 개별 보상 모드로 자동 전환
+- 모든 기능 정상 작동
+
+✅ **랜덤 스폰 기능 추가됨**
+- 에피소드 시작 시 모선 제외 모든 선박 랜덤 재생성
+- Inspector에서 range 조절 가능
diff --git "a/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\227\206\354\235\264_\354\202\254\354\232\251\355\225\230\352\270\260.md.meta" "b/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\227\206\354\235\264_\354\202\254\354\232\251\355\225\230\352\270\260.md.meta"
new file mode 100644
index 000000000..8f5b3154f
--- /dev/null
+++ "b/Assets/Scripts/Defense/SimpleMultiAgentGroup_\354\227\206\354\235\264_\354\202\254\354\232\251\355\225\230\352\270\260.md.meta"
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: fb401b071d2369f418783aa3ee313fac
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/SpeedOptimizationGuide.md b/Assets/Scripts/Defense/SpeedOptimizationGuide.md
new file mode 100644
index 000000000..9fda2e600
--- /dev/null
+++ b/Assets/Scripts/Defense/SpeedOptimizationGuide.md
@@ -0,0 +1,143 @@
+# 전진 속도 최적화 가이드
+
+## 수정된 파라미터
+
+### DefenseAgent.cs
+
+#### 1. velocityControlGain
+- **이전**: `1.0f`
+- **현재**: `2.5f`
+- **효과**: 속도 오차에 대한 반응 강도 증가 (2.5배 빠른 가속)
+
+#### 2. maxLinearAcceleration
+- **이전**: `5f` (m/s²)
+- **현재**: `12f` (m/s²)
+- **효과**: 최대 가속도 제한 완화 (2.4배 빠른 가속)
+
+#### 3. inputSmoothing
+- **이전**: `0.2f`
+- **현재**: `0.4f`
+- **효과**: 입력 반응 속도 증가 (2배 빠른 반응)
+
+#### 4. Throttle 계산 개선
+- **이전**: 속도 오차만 사용
+- **현재**: 속도 오차 + 목표 속도 비례 결합
+- **효과**: 목표 속도가 높을수록 더 강한 throttle 적용
+
+---
+
+## 추가 최적화 옵션
+
+### Unity Inspector에서 조정 가능한 값들:
+
+#### DefenseAgent 컴포넌트:
+1. **maxLinearVelocity** (기본: 20 m/s)
+ - 더 빠르게 하려면: `25 ~ 30`으로 증가
+ - 주의: 너무 높으면 제어가 어려워질 수 있음
+
+2. **velocityControlGain** (기본: 2.5)
+ - 더 빠른 가속: `3.0 ~ 4.0`으로 증가
+ - 주의: 너무 높으면 불안정할 수 있음
+
+3. **maxLinearAcceleration** (기본: 12 m/s²)
+ - 더 빠른 가속: `15 ~ 20`으로 증가
+ - 주의: 물리적으로 비현실적일 수 있음
+
+4. **inputSmoothing** (기본: 0.4)
+ - 더 빠른 반응: `0.5 ~ 0.7`로 증가
+ - 주의: 너무 높으면 부드러움이 떨어짐
+
+#### Engine 컴포넌트 (Boat GameObject):
+1. **horsePower** (기본: 18)
+ - 더 강한 엔진: `25 ~ 30`으로 증가
+ - 주의: 너무 높으면 제어가 어려워질 수 있음
+
+---
+
+## 속도 테스트 방법
+
+### 1. 현재 속도 확인
+- Console에서 `[DefenseAgent] Engine 제어` 로그 확인
+- `CurrentVel` 값이 `maxLinearVelocity`에 가까워지는지 확인
+
+### 2. 가속도 확인
+- 키를 누르고 있을 때 속도가 빠르게 증가하는지 확인
+- `Throttle` 값이 1.0에 가까워지는지 확인
+
+### 3. 반응 속도 확인
+- 키를 누르는 즉시 배가 반응하는지 확인
+- 지연이 느껴지면 `inputSmoothing` 증가
+
+---
+
+## 권장 설정 값
+
+### 빠른 속도 (권장):
+```
+maxLinearVelocity: 25
+velocityControlGain: 3.0
+maxLinearAcceleration: 15
+inputSmoothing: 0.5
+horsePower: 25
+```
+
+### 균형잡힌 속도 (기본):
+```
+maxLinearVelocity: 20
+velocityControlGain: 2.5
+maxLinearAcceleration: 12
+inputSmoothing: 0.4
+horsePower: 18
+```
+
+### 부드러운 속도:
+```
+maxLinearVelocity: 18
+velocityControlGain: 2.0
+maxLinearAcceleration: 10
+inputSmoothing: 0.3
+horsePower: 18
+```
+
+---
+
+## 문제 해결
+
+### 여전히 느린 경우:
+1. **Engine의 horsePower 확인**
+ - Boat GameObject의 Engine 컴포넌트에서 `horsePower` 값 확인
+ - 18보다 작으면 증가 필요
+
+2. **Rigidbody 설정 확인**
+ - Mass가 너무 크지 않은지 확인 (1 ~ 5 권장)
+ - Drag가 너무 크지 않은지 확인 (0.5 ~ 1.0 권장)
+
+3. **물리 타임스텝 확인**
+ - Edit → Project Settings → Time
+ - Fixed Timestep: 0.02 (기본값)
+
+4. **가속도 제한 확인**
+ - `maxLinearAcceleration`이 너무 작으면 속도 증가가 제한됨
+ - 12 이상 권장
+
+### 너무 빠른 경우:
+1. **velocityControlGain 감소** (2.0 ~ 2.5)
+2. **maxLinearAcceleration 감소** (8 ~ 10)
+3. **inputSmoothing 감소** (0.2 ~ 0.3)
+
+---
+
+## 디버그 로그 확인
+
+Console에서 다음 로그를 확인하세요:
+```
+[DefenseAgent] Engine 제어: ..., Throttle=..., CurrentVel=...
+```
+
+- **Throttle**: 1.0에 가까울수록 최대 가속
+- **CurrentVel**: `maxLinearVelocity`에 가까워질수록 최대 속도
+
+Throttle이 1.0에 도달하지 못하면:
+- `velocityControlGain` 증가
+- `maxLinearAcceleration` 증가
+- `horsePower` 증가
diff --git a/Assets/Scripts/Defense/SpeedOptimizationGuide.md.meta b/Assets/Scripts/Defense/SpeedOptimizationGuide.md.meta
new file mode 100644
index 000000000..933379715
--- /dev/null
+++ b/Assets/Scripts/Defense/SpeedOptimizationGuide.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 21ed873a94ca05647aaaca36e7522a6c
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/TacticalAssignmentReceiver.cs b/Assets/Scripts/Defense/TacticalAssignmentReceiver.cs
new file mode 100644
index 000000000..8be809976
--- /dev/null
+++ b/Assets/Scripts/Defense/TacticalAssignmentReceiver.cs
@@ -0,0 +1,155 @@
+using UnityEngine;
+using System.Collections.Generic;
+
+namespace BoatAttack
+{
+ ///
+ /// Roonshot 전술 서버에서 수신한 배정 결과를 DefenseEnvController에 연동
+ /// TacticalClient에서 배정 결과를 가져와 에이전트 관측에 타겟 정보를 제공합니다.
+ ///
+ public class TacticalAssignmentReceiver : MonoBehaviour
+ {
+ [Header("References")]
+ [Tooltip("전술 클라이언트")]
+ public TacticalClient tacticalClient;
+
+ [Tooltip("방어 환경 컨트롤러")]
+ public DefenseEnvController envController;
+
+ [Header("Status (Read Only)")]
+ [SerializeField] private string _currentFormation = "UNKNOWN";
+ [SerializeField] private float _currentConfidence = 0f;
+ [SerializeField] private int _assignmentCount = 0;
+
+ // 에이전트별 타겟 적군 인덱스 (-1 = 배정 없음)
+ private int _agent1TargetIndex = -1;
+ private int _agent2TargetIndex = -1;
+
+ // 타겟 적군 월드 위치 (에이전트 관측용)
+ private Vector3 _agent1TargetPos = Vector3.zero;
+ private Vector3 _agent2TargetPos = Vector3.zero;
+
+ ///
+ /// Agent1의 배정된 타겟 적군 인덱스 (-1 = 없음)
+ ///
+ public int Agent1TargetIndex => _agent1TargetIndex;
+
+ ///
+ /// Agent2의 배정된 타겟 적군 인덱스 (-1 = 없음)
+ ///
+ public int Agent2TargetIndex => _agent2TargetIndex;
+
+ ///
+ /// Agent1의 타겟 적군 위치
+ ///
+ public Vector3 Agent1TargetPosition => _agent1TargetPos;
+
+ ///
+ /// Agent2의 타겟 적군 위치
+ ///
+ public Vector3 Agent2TargetPosition => _agent2TargetPos;
+
+ ///
+ /// 현재 포메이션 이름
+ ///
+ public string CurrentFormation => _currentFormation;
+
+ ///
+ /// 현재 분류 신뢰도
+ ///
+ public float CurrentConfidence => _currentConfidence;
+
+ private void Update()
+ {
+ if (tacticalClient == null || !tacticalClient.IsConnected)
+ return;
+
+ var assignment = tacticalClient.GetLatestAssignment();
+ if (assignment == null || assignment.assignments == null)
+ return;
+
+ _currentFormation = assignment.formation ?? "UNKNOWN";
+ _currentConfidence = assignment.confidence;
+ _assignmentCount = assignment.assignments.Length;
+
+ // 배정 결과 → 적군 인덱스 매핑
+ _agent1TargetIndex = -1;
+ _agent2TargetIndex = -1;
+
+ foreach (var entry in assignment.assignments)
+ {
+ if (entry.pair == null || entry.pair.Length == 0)
+ continue;
+
+ // target_enemy_id → enemyShips 배열 인덱스 찾기
+ int enemyIndex = FindEnemyIndex(entry.target_enemy_id);
+
+ // 어느 에이전트 쌍에 해당하는지 판별
+ foreach (string friendlyId in entry.pair)
+ {
+ if (friendlyId == "Friendly_0")
+ {
+ _agent1TargetIndex = enemyIndex;
+ }
+ else if (friendlyId == "Friendly_1")
+ {
+ _agent2TargetIndex = enemyIndex;
+ }
+ }
+ }
+
+ // 타겟 위치 업데이트
+ UpdateTargetPositions();
+ }
+
+ ///
+ /// 적군 ID 문자열 → enemyShips 배열 인덱스 변환
+ ///
+ private int FindEnemyIndex(string enemyId)
+ {
+ if (string.IsNullOrEmpty(enemyId) || envController == null || envController.enemyShips == null)
+ return -1;
+
+ // "Enemy_0" → 0
+ if (enemyId.StartsWith("Enemy_"))
+ {
+ string numStr = enemyId.Substring(6);
+ if (int.TryParse(numStr, out int idx) && idx >= 0 && idx < envController.enemyShips.Length)
+ {
+ return idx;
+ }
+ }
+
+ return -1;
+ }
+
+ ///
+ /// 타겟 적군 위치 업데이트
+ ///
+ private void UpdateTargetPositions()
+ {
+ if (envController == null || envController.enemyShips == null)
+ return;
+
+ var enemies = envController.enemyShips;
+
+ if (_agent1TargetIndex >= 0 && _agent1TargetIndex < enemies.Length && enemies[_agent1TargetIndex] != null)
+ {
+ _agent1TargetPos = enemies[_agent1TargetIndex].transform.position;
+ }
+ else
+ {
+ _agent1TargetPos = Vector3.zero;
+ }
+
+ if (_agent2TargetIndex >= 0 && _agent2TargetIndex < enemies.Length && enemies[_agent2TargetIndex] != null)
+ {
+ _agent2TargetPos = enemies[_agent2TargetIndex].transform.position;
+ }
+ else
+ {
+ _agent2TargetPos = Vector3.zero;
+ }
+ }
+ }
+}
diff --git a/Assets/Scripts/Defense/TacticalAssignmentReceiver.cs.meta b/Assets/Scripts/Defense/TacticalAssignmentReceiver.cs.meta
new file mode 100644
index 000000000..b8f081b23
--- /dev/null
+++ b/Assets/Scripts/Defense/TacticalAssignmentReceiver.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5c08212d87dbb4146ae923b6664c6b54
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Defense/UnitySetupGuide.md b/Assets/Scripts/Defense/UnitySetupGuide.md
new file mode 100644
index 000000000..209de03f1
--- /dev/null
+++ b/Assets/Scripts/Defense/UnitySetupGuide.md
@@ -0,0 +1,221 @@
+# Unity Scene 설정 가이드 (단계별)
+
+## 🎯 핵심: DefenseEnvController와 DefenseRewardCalculator 할당 위치
+
+### ✅ 정답: **같은 GameObject에 함께 추가**
+
+---
+
+## 📋 단계별 설정 방법
+
+### Step 1: 빈 GameObject 생성
+
+1. Unity Hierarchy 창에서 **우클릭**
+2. **Create Empty** 선택
+3. 이름을 **"DefenseEnvController"**로 변경
+ - 이 GameObject가 환경 관리의 중심이 됩니다
+
+---
+
+### Step 2: 컴포넌트 추가
+
+**DefenseEnvController GameObject를 선택한 상태에서:**
+
+1. **Inspector 창**에서 **Add Component** 클릭
+2. 다음 컴포넌트들을 **순서대로** 추가:
+
+#### ① SimpleMultiAgentGroup
+- **⚠️ 중요**: 이것은 Unity ML-Agents 패키지에서 제공하는 컴포넌트입니다
+- **별도 파일을 만들 필요 없습니다!**
+- 검색: `SimpleMultiAgentGroup`
+- 추가 후 설정:
+ - **Behavior Name**: Behavior Config 이름 입력 (예: "DefenseBehavior")
+
+**만약 SimpleMultiAgentGroup을 찾을 수 없다면:**
+1. **Window → Package Manager** 열기
+2. **Unity Registry** 선택
+3. **ML-Agents** 검색
+4. **com.unity.ml-agents** 패키지 설치 확인
+5. 설치되어 있지 않다면 **Install** 클릭
+
+#### ② DefenseEnvController
+- 검색: `DefenseEnvController`
+- 추가 후 설정 (아래 Step 3 참고)
+
+#### ③ DefenseRewardCalculator
+- 검색: `DefenseRewardCalculator`
+- 추가 후 설정 (아래 Step 4 참고)
+
+---
+
+### Step 3: DefenseEnvController 설정
+
+**DefenseEnvController 컴포넌트**의 Inspector에서:
+
+#### Agents 섹션:
+- **Defense Agent 1**:
+ - Hierarchy에서 DefenseAgent 1 GameObject를 드래그 앤 드롭
+- **Defense Agent 2**:
+ - Hierarchy에서 DefenseAgent 2 GameObject를 드래그 앤 드롭
+
+#### Components 섹션:
+- **M Agent Group**:
+ - **같은 GameObject의 SimpleMultiAgentGroup**을 드래그 앤 드롭
+ - 또는 Inspector에서 드롭다운으로 선택
+- **Reward Calculator**:
+ - **같은 GameObject의 DefenseRewardCalculator**를 드래그 앤 드롭
+ - 또는 Inspector에서 드롭다운으로 선택
+
+#### Settings 섹션:
+- **Mother Ship**:
+ - Hierarchy에서 모선 GameObject를 드래그 앤 드롭
+- **Enemy Ships**:
+ - 배열 크기 설정 (예: 5)
+ - 각 요소에 적군 선박 GameObject들을 드래그 앤 드롭
+- **Web Object**:
+ - Hierarchy에서 Web GameObject를 드래그 앤 드롭
+
+---
+
+### Step 4: DefenseRewardCalculator 설정
+
+**DefenseRewardCalculator 컴포넌트**는 기본값으로 작동하지만, 필요시 보상 값을 조정할 수 있습니다:
+
+- **Heading Sync Reward**: 0.0002 (기본값)
+- **Speed Sync Reward**: 0.0002 (기본값)
+- **Distance Maintain Reward**: 0.0002 (기본값)
+- **Net Tension Reward**: 0.0005 (기본값)
+- 등등...
+
+---
+
+### Step 5: SimpleMultiAgentGroup 설정
+
+**SimpleMultiAgentGroup 컴포넌트**의 Inspector에서:
+
+- **Agents**:
+ - 배열 크기: 2
+ - [0]: DefenseAgent 1 드래그 앤 드롭
+ - [1]: DefenseAgent 2 드래그 앤 드롭
+- **Behavior Name**:
+ - Behavior Config 이름 입력 (예: "DefenseBehavior")
+
+---
+
+## 📸 시각적 구조
+
+```
+Hierarchy:
+├── DefenseEnvController (GameObject)
+│ ├── SimpleMultiAgentGroup (컴포넌트)
+│ ├── DefenseEnvController (컴포넌트)
+│ │ ├── defenseAgent1 → DefenseAgent 1 GameObject
+│ │ ├── defenseAgent2 → DefenseAgent 2 GameObject
+│ │ ├── m_AgentGroup → 같은 GameObject의 SimpleMultiAgentGroup
+│ │ ├── rewardCalculator → 같은 GameObject의 DefenseRewardCalculator
+│ │ ├── motherShip → 모선 GameObject
+│ │ ├── enemyShips[0~4] → 적군 선박들
+│ │ └── webObject → Web GameObject
+│ └── DefenseRewardCalculator (컴포넌트)
+│ └── (보상 값 설정)
+├── DefenseAgent 1 (GameObject)
+│ └── DefenseAgent (컴포넌트)
+├── DefenseAgent 2 (GameObject)
+│ └── DefenseAgent (컴포넌트)
+├── MotherShip (GameObject)
+│ └── MotherShipCollisionDetector (컴포넌트)
+│ └── envController → DefenseEnvController GameObject
+└── Web (GameObject)
+ └── WebCollisionDetector (컴포넌트)
+ └── envController → DefenseEnvController GameObject
+```
+
+---
+
+## ⚠️ 중요 체크리스트
+
+### DefenseEnvController GameObject:
+- [ ] SimpleMultiAgentGroup 컴포넌트 추가됨
+- [ ] DefenseEnvController 컴포넌트 추가됨
+- [ ] DefenseRewardCalculator 컴포넌트 추가됨
+- [ ] defenseAgent1 할당됨
+- [ ] defenseAgent2 할당됨
+- [ ] m_AgentGroup이 같은 GameObject의 SimpleMultiAgentGroup을 참조
+- [ ] rewardCalculator가 같은 GameObject의 DefenseRewardCalculator를 참조
+- [ ] motherShip 할당됨
+- [ ] enemyShips 배열에 적군들 할당됨
+- [ ] webObject 할당됨
+
+### SimpleMultiAgentGroup:
+- [ ] Agents 배열에 defenseAgent1, defenseAgent2 추가됨
+- [ ] Behavior Name 설정됨
+
+---
+
+## 🔍 자동 찾기 기능
+
+`DefenseEnvController.cs`의 `Start()` 메서드에서 일부 참조를 자동으로 찾습니다:
+
+```csharp
+// 자동으로 찾는 것들:
+- SimpleMultiAgentGroup (같은 GameObject에서)
+- DefenseRewardCalculator (같은 GameObject에서)
+- MotherShip (태그로 찾기)
+```
+
+하지만 **수동으로 할당하는 것이 더 안전하고 명확**합니다!
+
+---
+
+## 🐛 문제 해결
+
+### 문제: "SimpleMultiAgentGroup을 찾을 수 없습니다" 에러
+
+#### 원인 1: 컴포넌트가 추가되지 않음
+- **해결**: DefenseEnvController GameObject에 SimpleMultiAgentGroup 컴포넌트 추가
+- Add Component → `SimpleMultiAgentGroup` 검색
+
+#### 원인 2: ML-Agents 패키지가 설치되지 않음
+- **확인 방법**:
+ 1. Window → Package Manager 열기
+ 2. In Project 탭에서 `com.unity.ml-agents` 검색
+ 3. 설치되어 있는지 확인
+- **해결**:
+ - 패키지가 없다면: Package Manager → + → Add package by name → `com.unity.ml-agents` 입력
+ - 또는 Unity Registry에서 ML-Agents 검색하여 설치
+
+#### 원인 3: Add Component에서 SimpleMultiAgentGroup을 찾을 수 없음
+- **해결**:
+ 1. Unity 에디터 재시작
+ 2. Assets → Reimport All (필요시)
+ 3. Library 폴더 삭제 후 Unity 재시작 (최후의 수단)
+
+### 문제: "DefenseRewardCalculator를 찾을 수 없습니다" 에러
+- **원인**: 같은 GameObject에 DefenseRewardCalculator가 없음
+- **해결**: DefenseEnvController GameObject에 DefenseRewardCalculator 추가
+
+### 문제: 보상이 분배되지 않음
+- **원인**: m_AgentGroup이 null이거나 에이전트가 등록되지 않음
+- **해결**:
+ 1. m_AgentGroup이 할당되었는지 확인
+ 2. SimpleMultiAgentGroup의 Agents 배열에 에이전트가 추가되었는지 확인
+
+---
+
+## 💡 요약
+
+**핵심 정리:**
+1. **빈 GameObject 생성** → 이름: "DefenseEnvController"
+2. **3개 컴포넌트 추가**:
+ - SimpleMultiAgentGroup
+ - DefenseEnvController
+ - DefenseRewardCalculator
+3. **DefenseEnvController 컴포넌트 설정**:
+ - defenseAgent1, defenseAgent2 할당
+ - m_AgentGroup → 같은 GameObject의 SimpleMultiAgentGroup
+ - rewardCalculator → 같은 GameObject의 DefenseRewardCalculator
+ - motherShip, enemyShips, webObject 할당
+4. **SimpleMultiAgentGroup 설정**:
+ - Agents 배열에 defenseAgent1, defenseAgent2 추가
+
+**모든 것이 같은 GameObject에 있어야 합니다!**
diff --git a/Assets/Scripts/Defense/UnitySetupGuide.md.meta b/Assets/Scripts/Defense/UnitySetupGuide.md.meta
new file mode 100644
index 000000000..5bb4826ba
--- /dev/null
+++ b/Assets/Scripts/Defense/UnitySetupGuide.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 6b7c394c2d7aa334b9076b1208649a24
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/ProjectSettings/boot.config b/Assets/Scripts/Defense/human_con_ex.py
similarity index 100%
rename from ProjectSettings/boot.config
rename to Assets/Scripts/Defense/human_con_ex.py
diff --git a/Assets/Scripts/Defense/human_con_ex.py.meta b/Assets/Scripts/Defense/human_con_ex.py.meta
new file mode 100644
index 000000000..2b6b8242c
--- /dev/null
+++ b/Assets/Scripts/Defense/human_con_ex.py.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: fcb77bda6c2418748ae407ace36261ba
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Editor/CreateGradientTexture.cs b/Assets/Scripts/Editor/CreateGradientTexture.cs
new file mode 100644
index 000000000..9de596af2
--- /dev/null
+++ b/Assets/Scripts/Editor/CreateGradientTexture.cs
@@ -0,0 +1,106 @@
+using UnityEngine;
+using UnityEditor;
+using System.IO;
+
+namespace BoatAttack
+{
+ ///
+ /// 윤기나는 검정색 그라데이션 텍스처를 생성하는 에디터 스크립트
+ ///
+ public class CreateGradientTexture : EditorWindow
+ {
+ private int textureWidth = 512;
+ private int textureHeight = 512;
+ private Gradient gradient = new Gradient();
+ private string textureName = "Gradient_Black_Shiny";
+ private string savePath = "Assets/Textures";
+
+ [MenuItem("Tools/Create Gradient Texture")]
+ public static void ShowWindow()
+ {
+ GetWindow("Gradient Texture Creator");
+ }
+
+ private void OnEnable()
+ {
+ // 기본 그라데이션 설정 (검정색 계열)
+ gradient.SetKeys(
+ new GradientColorKey[]
+ {
+ new GradientColorKey(Color.black, 0.0f),
+ new GradientColorKey(new Color(0.1f, 0.1f, 0.1f), 0.5f),
+ new GradientColorKey(Color.black, 1.0f)
+ },
+ new GradientAlphaKey[]
+ {
+ new GradientAlphaKey(1.0f, 0.0f),
+ new GradientAlphaKey(1.0f, 1.0f)
+ }
+ );
+ }
+
+ private void OnGUI()
+ {
+ GUILayout.Label("그라데이션 텍스처 생성기", EditorStyles.boldLabel);
+ EditorGUILayout.Space();
+
+ textureName = EditorGUILayout.TextField("텍스처 이름", textureName);
+ textureWidth = EditorGUILayout.IntField("너비", textureWidth);
+ textureHeight = EditorGUILayout.IntField("높이", textureHeight);
+ savePath = EditorGUILayout.TextField("저장 경로", savePath);
+
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("그라데이션 설정");
+ gradient = EditorGUILayout.GradientField(gradient);
+
+ EditorGUILayout.Space();
+
+ if (GUILayout.Button("텍스처 생성"))
+ {
+ CreateTexture();
+ }
+
+ EditorGUILayout.Space();
+ EditorGUILayout.HelpBox("생성된 텍스처는 지정된 경로에 저장됩니다.", MessageType.Info);
+ }
+
+ private void CreateTexture()
+ {
+ Texture2D texture = new Texture2D(textureWidth, textureHeight, TextureFormat.RGBA32, true);
+
+ // 그라데이션 생성 (위에서 아래로)
+ for (int y = 0; y < textureHeight; y++)
+ {
+ float t = (float)y / textureHeight;
+ Color color = gradient.Evaluate(t);
+
+ for (int x = 0; x < textureWidth; x++)
+ {
+ texture.SetPixel(x, y, color);
+ }
+ }
+
+ texture.Apply();
+
+ // 파일로 저장
+ byte[] pngData = texture.EncodeToPNG();
+ string fullPath = Path.Combine(savePath, textureName + ".png");
+
+ // 디렉토리가 없으면 생성
+ if (!Directory.Exists(savePath))
+ {
+ Directory.CreateDirectory(savePath);
+ }
+
+ File.WriteAllBytes(fullPath, pngData);
+ AssetDatabase.Refresh();
+
+ Debug.Log($"텍스처 생성 완료: {fullPath}");
+
+ // 생성된 텍스처 선택
+ Object asset = AssetDatabase.LoadAssetAtPath(fullPath);
+ Selection.activeObject = asset;
+ EditorGUIUtility.PingObject(asset);
+ }
+ }
+}
diff --git a/Assets/Scripts/Editor/CreateGradientTexture.cs.meta b/Assets/Scripts/Editor/CreateGradientTexture.cs.meta
new file mode 100644
index 000000000..326ba8a9e
--- /dev/null
+++ b/Assets/Scripts/Editor/CreateGradientTexture.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6e119cdad60b7e144b7d2079b2fa4cb4
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Editor/CreateShinyBlackMaterial.cs b/Assets/Scripts/Editor/CreateShinyBlackMaterial.cs
new file mode 100644
index 000000000..59d964829
--- /dev/null
+++ b/Assets/Scripts/Editor/CreateShinyBlackMaterial.cs
@@ -0,0 +1,98 @@
+using UnityEngine;
+using UnityEditor;
+
+namespace BoatAttack
+{
+ ///
+ /// 윤기나는 검정색 Material을 생성하는 에디터 스크립트
+ ///
+ public class CreateShinyBlackMaterial : EditorWindow
+ {
+ private Texture2D gradientTexture;
+ private float metallic = 0.8f;
+ private float smoothness = 0.9f;
+ private string materialName = "Shiny_Black_Gradient";
+ private string savePath = "Assets/Materials";
+
+ [MenuItem("Tools/Create Shiny Black Material")]
+ public static void ShowWindow()
+ {
+ GetWindow("Shiny Material Creator");
+ }
+
+ private void OnGUI()
+ {
+ GUILayout.Label("윤기나는 검정색 Material 생성기", EditorStyles.boldLabel);
+ EditorGUILayout.Space();
+
+ materialName = EditorGUILayout.TextField("Material 이름", materialName);
+ gradientTexture = (Texture2D)EditorGUILayout.ObjectField("그라데이션 텍스처", gradientTexture, typeof(Texture2D), false);
+
+ EditorGUILayout.Space();
+ EditorGUILayout.LabelField("물리적 속성", EditorStyles.boldLabel);
+ metallic = EditorGUILayout.Slider("Metallic", metallic, 0f, 1f);
+ smoothness = EditorGUILayout.Slider("Smoothness", smoothness, 0f, 1f);
+
+ EditorGUILayout.Space();
+
+ if (GUILayout.Button("Material 생성"))
+ {
+ CreateMaterial();
+ }
+
+ EditorGUILayout.Space();
+ EditorGUILayout.HelpBox("Standard Shader를 사용하여 윤기나는 효과를 만듭니다.", MessageType.Info);
+ }
+
+ private void CreateMaterial()
+ {
+ Material mat = new Material(Shader.Find("Universal Render Pipeline/Lit"));
+ mat.name = materialName;
+
+ // 텍스처 설정
+ if (gradientTexture != null)
+ {
+ mat.SetTexture("_BaseMap", gradientTexture);
+ mat.SetColor("_BaseColor", Color.white);
+ }
+ else
+ {
+ // 텍스처가 없으면 검정색으로 설정
+ mat.SetColor("_BaseColor", Color.black);
+ }
+
+ // Metallic 설정
+ mat.SetFloat("_Metallic", metallic);
+
+ // Smoothness 설정
+ mat.SetFloat("_Smoothness", smoothness);
+
+ // 디렉토리가 없으면 생성
+ if (!AssetDatabase.IsValidFolder(savePath))
+ {
+ string[] folders = savePath.Split('/');
+ string currentPath = folders[0];
+ for (int i = 1; i < folders.Length; i++)
+ {
+ if (!AssetDatabase.IsValidFolder(currentPath + "/" + folders[i]))
+ {
+ AssetDatabase.CreateFolder(currentPath, folders[i]);
+ }
+ currentPath += "/" + folders[i];
+ }
+ }
+
+ // Material 저장
+ string fullPath = savePath + "/" + materialName + ".mat";
+ AssetDatabase.CreateAsset(mat, fullPath);
+ AssetDatabase.SaveAssets();
+ AssetDatabase.Refresh();
+
+ Debug.Log($"Material 생성 완료: {fullPath}");
+
+ // 생성된 Material 선택
+ Selection.activeObject = mat;
+ EditorGUIUtility.PingObject(mat);
+ }
+ }
+}
diff --git a/Assets/Scripts/Editor/CreateShinyBlackMaterial.cs.meta b/Assets/Scripts/Editor/CreateShinyBlackMaterial.cs.meta
new file mode 100644
index 000000000..68c15f728
--- /dev/null
+++ b/Assets/Scripts/Editor/CreateShinyBlackMaterial.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f124df87dec78c64586b308041508b2f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Editor/CreateShinyBlackMaterialQuick.cs b/Assets/Scripts/Editor/CreateShinyBlackMaterialQuick.cs
new file mode 100644
index 000000000..10d620468
--- /dev/null
+++ b/Assets/Scripts/Editor/CreateShinyBlackMaterialQuick.cs
@@ -0,0 +1,96 @@
+using UnityEngine;
+using UnityEditor;
+
+namespace BoatAttack
+{
+ ///
+ /// 윤기나는 검정색 그라데이션 Material을 즉시 생성하는 스크립트
+ ///
+ public class CreateShinyBlackMaterialQuick
+ {
+ [MenuItem("Tools/Create Shiny Black Material (Quick)")]
+ public static void CreateMaterial()
+ {
+ // 텍스처 먼저 생성
+ Texture2D gradientTexture = CreateGradientTexture(512, 512);
+
+ // Material 생성
+ Material mat = new Material(Shader.Find("Universal Render Pipeline/Lit"));
+ mat.name = "Shiny_Black_Gradient";
+
+ // 텍스처 설정
+ mat.SetTexture("_BaseMap", gradientTexture);
+ mat.SetColor("_BaseColor", Color.white);
+
+ // Metallic 설정 (윤기나는 효과)
+ mat.SetFloat("_Metallic", 0.8f);
+
+ // Smoothness 설정 (매끄러운 표면)
+ mat.SetFloat("_Smoothness", 0.9f);
+
+ // 텍스처 저장
+ string texturePath = "Assets/Textures/Gradient_Black_Shiny.png";
+ if (!AssetDatabase.IsValidFolder("Assets/Textures"))
+ {
+ AssetDatabase.CreateFolder("Assets", "Textures");
+ }
+ byte[] pngData = gradientTexture.EncodeToPNG();
+ System.IO.File.WriteAllBytes(texturePath, pngData);
+ AssetDatabase.ImportAsset(texturePath);
+
+ // 텍스처를 Material에 다시 할당 (에셋 참조로)
+ Texture2D savedTexture = AssetDatabase.LoadAssetAtPath(texturePath);
+ mat.SetTexture("_BaseMap", savedTexture);
+
+ // Material 저장
+ string materialPath = "Assets/Materials/Shiny_Black_Gradient.mat";
+ if (!AssetDatabase.IsValidFolder("Assets/Materials"))
+ {
+ AssetDatabase.CreateFolder("Assets", "Materials");
+ }
+
+ AssetDatabase.CreateAsset(mat, materialPath);
+ AssetDatabase.SaveAssets();
+ AssetDatabase.Refresh();
+
+ Debug.Log($"Material 생성 완료: {materialPath}");
+ Debug.Log($"텍스처 생성 완료: {texturePath}");
+
+ // 생성된 Material 선택
+ Selection.activeObject = mat;
+ EditorGUIUtility.PingObject(mat);
+ }
+
+ private static Texture2D CreateGradientTexture(int width, int height)
+ {
+ Texture2D texture = new Texture2D(width, height, TextureFormat.RGBA32, true);
+
+ // 검정색 그라데이션 생성 (위에서 아래로)
+ for (int y = 0; y < height; y++)
+ {
+ float t = (float)y / height;
+
+ // 검정 → 어두운 회색 → 검정 그라데이션
+ Color color;
+ if (t < 0.5f)
+ {
+ // 위쪽: 검정 → 어두운 회색
+ color = Color.Lerp(Color.black, new Color(0.1f, 0.1f, 0.1f), t * 2f);
+ }
+ else
+ {
+ // 아래쪽: 어두운 회색 → 검정
+ color = Color.Lerp(new Color(0.1f, 0.1f, 0.1f), Color.black, (t - 0.5f) * 2f);
+ }
+
+ for (int x = 0; x < width; x++)
+ {
+ texture.SetPixel(x, y, color);
+ }
+ }
+
+ texture.Apply();
+ return texture;
+ }
+ }
+}
diff --git a/Assets/Scripts/Editor/CreateShinyBlackMaterialQuick.cs.meta b/Assets/Scripts/Editor/CreateShinyBlackMaterialQuick.cs.meta
new file mode 100644
index 000000000..2a978b828
--- /dev/null
+++ b/Assets/Scripts/Editor/CreateShinyBlackMaterialQuick.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f4bd00cb6dea12f44979e82318d9c264
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Editor/CreateTexture2DArrayAsset.cs b/Assets/Scripts/Editor/CreateTexture2DArrayAsset.cs
index c8b8b3624..0bb73b612 100644
--- a/Assets/Scripts/Editor/CreateTexture2DArrayAsset.cs
+++ b/Assets/Scripts/Editor/CreateTexture2DArrayAsset.cs
@@ -1,66 +1,66 @@
-using UnityEngine;
-using UnityEditor;
-
-///
-/// Not ideal code, use at own peril...
-///
-[ExecuteInEditMode]
-public class CreateTexture2DArrayAsset : MonoBehaviour {
-
- public TextureFormat texFormat;
- public bool mipmaps;
- public Texture2D[] textures = new Texture2D[0];
- public Cubemap[] cubeMaps = new Cubemap[0];
-
- [ContextMenu("Create Texture2D Array asset")]
- void CreateTexture2DAsset()
- {
- //Texture2DArray array = new Texture2DArray(textures[0].width, textures[0].height, textures.Length, GraphicsFormatUtility.GetGraphicsFormat(TextureFormat.ARGB32, false), TextureCreationFlags.None);
- Texture2DArray array = new Texture2DArray(textures[0].width, textures[0].height, textures.Length, texFormat, mipmaps);
- Debug.Log(array);
- Debug.Log(array.format);
- for (int i = 0; i < textures.Length; i++)
- array.SetPixels(textures[i].GetPixels(), i);
-
- array.Apply();
- AssetDatabase.CreateAsset(array, "Assets/TextureArray.asset");
- }
-
- [ContextMenu("Create Cubemap Array asset")]
- void CreateCubeArrayAsset()
- {
- //Texture2DArray array = new Texture2DArray(textures[0].width, textures[0].height, textures.Length, GraphicsFormatUtility.GetGraphicsFormat(TextureFormat.ARGB32, false), TextureCreationFlags.None);
- TextureFormat tf = cubeMaps[0].format;
- int mipLevel = cubeMaps[0].mipmapCount;
-
- CubemapArray array = new CubemapArray(cubeMaps[0].width, cubeMaps.Length, texFormat, mipmaps);
-
-
- for (int i = 0; i < 6; i++) //iterate for each cube face
- {
- for (int j = 0; j < cubeMaps.Length; j++)
- {
- for (int m = 0; m < mipLevel; m++)
- {
- CubemapFace face = (CubemapFace)i;
- array.SetPixels(cubeMaps[j].GetPixels(face), face, j, m);
- }
- }
- }
-
- for (int j = 0; j < 6; j++)
- {
- //CubemapFace face = (CubemapFace)i;
- // array.SetPixels(textures[j].GetPixels(), face, j);
- for (int i = 0; i < mipLevel; i++)
- {
- //for()
- // Graphics.CopyTexture(textures[j], 0, i, array, j, i);
- }
-
- }
-
- array.Apply();
- AssetDatabase.CreateAsset(array, "Assets/CubemapArray.asset");
- }
-}
+using UnityEngine;
+using UnityEditor;
+
+///
+/// Not ideal code, use at own peril...
+///
+[ExecuteInEditMode]
+public class CreateTexture2DArrayAsset : MonoBehaviour {
+
+ public TextureFormat texFormat;
+ public bool mipmaps;
+ public Texture2D[] textures = new Texture2D[0];
+ public Cubemap[] cubeMaps = new Cubemap[0];
+
+ [ContextMenu("Create Texture2D Array asset")]
+ void CreateTexture2DAsset()
+ {
+ //Texture2DArray array = new Texture2DArray(textures[0].width, textures[0].height, textures.Length, GraphicsFormatUtility.GetGraphicsFormat(TextureFormat.ARGB32, false), TextureCreationFlags.None);
+ Texture2DArray array = new Texture2DArray(textures[0].width, textures[0].height, textures.Length, texFormat, mipmaps);
+ Debug.Log(array);
+ Debug.Log(array.format);
+ for (int i = 0; i < textures.Length; i++)
+ array.SetPixels(textures[i].GetPixels(), i);
+
+ array.Apply();
+ AssetDatabase.CreateAsset(array, "Assets/TextureArray.asset");
+ }
+
+ [ContextMenu("Create Cubemap Array asset")]
+ void CreateCubeArrayAsset()
+ {
+ //Texture2DArray array = new Texture2DArray(textures[0].width, textures[0].height, textures.Length, GraphicsFormatUtility.GetGraphicsFormat(TextureFormat.ARGB32, false), TextureCreationFlags.None);
+ TextureFormat tf = cubeMaps[0].format;
+ int mipLevel = cubeMaps[0].mipmapCount;
+
+ CubemapArray array = new CubemapArray(cubeMaps[0].width, cubeMaps.Length, texFormat, mipmaps);
+
+
+ for (int i = 0; i < 6; i++) //iterate for each cube face
+ {
+ for (int j = 0; j < cubeMaps.Length; j++)
+ {
+ for (int m = 0; m < mipLevel; m++)
+ {
+ CubemapFace face = (CubemapFace)i;
+ array.SetPixels(cubeMaps[j].GetPixels(face), face, j, m);
+ }
+ }
+ }
+
+ for (int j = 0; j < 6; j++)
+ {
+ //CubemapFace face = (CubemapFace)i;
+ // array.SetPixels(textures[j].GetPixels(), face, j);
+ for (int i = 0; i < mipLevel; i++)
+ {
+ //for()
+ // Graphics.CopyTexture(textures[j], 0, i, array, j, i);
+ }
+
+ }
+
+ array.Apply();
+ AssetDatabase.CreateAsset(array, "Assets/CubemapArray.asset");
+ }
+}
diff --git a/Assets/Scripts/Editor/LinkGameViewCamera.prefab b/Assets/Scripts/Editor/LinkGameViewCamera.prefab
new file mode 100644
index 000000000..94f6061f0
--- /dev/null
+++ b/Assets/Scripts/Editor/LinkGameViewCamera.prefab
@@ -0,0 +1,153 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &251524200295667666
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 5260567718057574709}
+ - component: {fileID: 2925269175919186199}
+ - component: {fileID: 6053316668851367148}
+ - component: {fileID: 8403063454423129131}
+ - component: {fileID: -6918340408813756036}
+ m_Layer: 0
+ m_Name: LinkGameViewCamera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &5260567718057574709
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 251524200295667666}
+ 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_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!20 &2925269175919186199
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 251524200295667666}
+ 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_SensorSize: {x: 36, y: 24}
+ m_LensShift: {x: 0, y: 0}
+ m_FocalLength: 50
+ 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: 0
+ orthographic size: 5
+ m_Depth: -1
+ 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!81 &6053316668851367148
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 251524200295667666}
+ m_Enabled: 1
+--- !u!114 &8403063454423129131
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 251524200295667666}
+ m_Enabled: 0
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 72ece51f2901e7445ab60da3685d6b5f, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_ShowDebugText: 0
+ m_ShowCameraFrustum: 1
+ m_IgnoreTimeScale: 0
+ m_WorldUpOverride: {fileID: 0}
+ m_UpdateMethod: 2
+ m_BlendUpdateMethod: 1
+ m_DefaultBlend:
+ m_Style: 1
+ m_Time: 2
+ m_CustomCurve:
+ serializedVersion: 2
+ m_Curve: []
+ m_PreInfinity: 2
+ m_PostInfinity: 2
+ m_RotationOrder: 4
+ m_CustomBlends: {fileID: 0}
+ m_CameraCutEvent:
+ m_PersistentCalls:
+ m_Calls: []
+ m_CameraActivatedEvent:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!114 &-6918340408813756036
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 251524200295667666}
+ 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_RenderPostProcessing: 0
+ m_Antialiasing: 0
+ m_AntialiasingQuality: 2
+ m_StopNaN: 0
+ m_Dithering: 0
+ m_ClearDepth: 1
+ m_AllowXRRendering: 1
+ m_RequiresDepthTexture: 0
+ m_RequiresColorTexture: 0
+ m_Version: 2
diff --git a/Assets/Scripts/Editor/LinkGameViewCamera.prefab.meta b/Assets/Scripts/Editor/LinkGameViewCamera.prefab.meta
new file mode 100644
index 000000000..6df18f1aa
--- /dev/null
+++ b/Assets/Scripts/Editor/LinkGameViewCamera.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 06c1498f28fc872469470c64d14027c4
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Editor/LodLightmapCopy.cs b/Assets/Scripts/Editor/LodLightmapCopy.cs
index 296ea67e2..a035ec703 100644
--- a/Assets/Scripts/Editor/LodLightmapCopy.cs
+++ b/Assets/Scripts/Editor/LodLightmapCopy.cs
@@ -35,13 +35,24 @@ private static void Execute()
{
//is lod0 lightmapped
var lods = lodGroup.GetLODs();
+ if (lods == null || lods.Length == 0) continue;
+
var lod0 = lods[0].renderers;
+ if (lod0 == null || lod0.Length == 0) continue;
+
//if(lod0[0].lightmapIndex == -1) return;
//copy settings to other lods
for (var i = 1; i < lods.Length; i++)
{
- for (var j = 0; j < lod0.Length; j++)
+ if (lods[i].renderers == null) continue;
+
+ // lod0와 현재 LOD의 renderer 개수 중 작은 값만큼만 복사
+ int copyCount = Mathf.Min(lod0.Length, lods[i].renderers.Length);
+
+ for (var j = 0; j < copyCount; j++)
{
+ if (lod0[j] == null || lods[i].renderers[j] == null) continue;
+
lods[i].renderers[j].lightmapIndex = lod0[j].lightmapIndex;
lods[i].renderers[j].lightmapScaleOffset = lod0[j].lightmapScaleOffset;
}
diff --git a/Assets/Scripts/Editor/SamplePlayFromHere.cs b/Assets/Scripts/Editor/SamplePlayFromHere.cs
new file mode 100644
index 000000000..de2746644
--- /dev/null
+++ b/Assets/Scripts/Editor/SamplePlayFromHere.cs
@@ -0,0 +1,30 @@
+using UnityEditor;
+using UnityEngine;
+using GameplayIngredients.Editor;
+
+static class SamplePlayFromHere
+{
+ [InitializeOnLoadMethod]
+ static void SetupPlayFromHere()
+ {
+ PlayFromHere.OnPlayFromHere += PlayFromHere_OnPlayFromHere;
+ }
+
+ private static void PlayFromHere_OnPlayFromHere(Vector3 position, Vector3 forward)
+ {
+ // Get the FirstPersonCharacter prefab in Resources and instantiate it
+ var prefab = (GameObject)Resources.Load("FirstPersonCharacter");
+ var player = GameObject.Instantiate(prefab);
+ player.name = "(Play from Here) " + prefab.name;
+
+ // position the character correctly, so the current POV matches the player's height
+ var controller = player.GetComponent();
+ player.transform.position = new Vector3(position.x, position.y - controller.PlayerHeight, position.z);
+
+ // orient the player correctly
+ var orient = forward;
+ orient.Scale(new Vector3(1, 0, 1));
+ player.transform.forward = orient;
+
+ }
+}
diff --git a/Assets/Scripts/Editor/SamplePlayFromHere.cs.meta b/Assets/Scripts/Editor/SamplePlayFromHere.cs.meta
new file mode 100644
index 000000000..d72fd278b
--- /dev/null
+++ b/Assets/Scripts/Editor/SamplePlayFromHere.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 6b666fefd76623d4aa8d60aa166c683f
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Editor/TacticalSystemSetup.cs b/Assets/Scripts/Editor/TacticalSystemSetup.cs
new file mode 100644
index 000000000..9cfb2a9ac
--- /dev/null
+++ b/Assets/Scripts/Editor/TacticalSystemSetup.cs
@@ -0,0 +1,803 @@
+using UnityEditor;
+using UnityEngine;
+using UnityEngine.UI;
+
+namespace BoatAttack
+{
+ ///
+ /// 전술 시스템 자동 세팅 에디터 스크립트 (v5)
+ /// - Page 0: 레이더 전용 (풀스크린 레이더 + 컨트롤)
+ /// - Page 1: 환경 정보 (SeaState 바 + Wind 나침반)
+ /// - Page 2: 아군 선박 스펙 (3D 프리뷰)
+ /// - Page 3: 적군 선박 스펙 (3D 프리뷰)
+ ///
+ public static class TacticalSystemSetup
+ {
+ static readonly Color BG_DARK = new Color(0.06f, 0.06f, 0.12f, 0.95f);
+ static readonly Color BG_PANEL = new Color(0.08f, 0.1f, 0.16f, 0.92f);
+ static readonly Color ACCENT_GREEN = new Color(0.3f, 1f, 0.5f, 1f);
+ static readonly Color ACCENT_CYAN = new Color(0.2f, 0.85f, 1f, 1f);
+ static readonly Color ACCENT_RED = new Color(1f, 0.3f, 0.25f, 1f);
+ static readonly Color ACCENT_YELLOW = new Color(1f, 0.9f, 0.3f, 1f);
+ static readonly Color TEXT_DIM = new Color(0.6f, 0.6f, 0.7f, 1f);
+ static readonly Color TEXT_BRIGHT = new Color(0.9f, 0.9f, 0.95f, 1f);
+ static readonly Color SLIDER_BG = new Color(0.12f, 0.12f, 0.2f, 1f);
+ static readonly Color SLIDER_FILL = new Color(0.15f, 0.5f, 0.25f, 1f);
+ static readonly Color HANDLE_COLOR = new Color(0.85f, 0.85f, 0.9f, 1f);
+
+ [MenuItem("BoatAttack/Setup Tactical System (All)", false, 100)]
+ public static void SetupAll()
+ {
+ var env = Object.FindObjectOfType();
+ if (env == null)
+ {
+ EditorUtility.DisplayDialog("Error",
+ "DefenseEnvController를 씬에서 찾을 수 없습니다.", "OK");
+ return;
+ }
+ var envCtrl = Object.FindObjectOfType();
+
+ SetupTacticalNetwork(env);
+ SetupFullUI(env, envCtrl);
+
+ EditorUtility.DisplayDialog("Setup Complete",
+ "전술 시스템 v5 세팅 완료!\n\n" +
+ "- Page 0: 레이더 (풀스크린)\n" +
+ "- Page 1: 환경 (SeaState + Wind)\n" +
+ "- Page 2: 아군 선박 스펙 (3D)\n" +
+ "- Page 3: 적군 선박 스펙 (3D)\n\n" +
+ "[Tab] 페이지 전환\n" +
+ "[Enter] 게임 모드 (UI 숨김 + 미니 레이더)\n" +
+ "[Esc] 이전 페이지 / UI 복귀\n\n" +
+ "Island 태그 추가 필요!\n" +
+ "Ctrl+S로 씬 저장하세요.", "OK");
+ }
+
+ [MenuItem("BoatAttack/Tag Islands", false, 105)]
+ public static void TagIslands()
+ {
+ int count = 0;
+ // "Island Level" 이름으로 시작하는 오브젝트 검색
+ foreach (var go in Object.FindObjectsOfType())
+ {
+ if (go.name.StartsWith("Island Level") || go.name.Contains("Island"))
+ {
+ // Terrain 또는 MeshFilter가 있는 경우만
+ if (go.GetComponent() != null ||
+ go.GetComponentInChildren() != null)
+ {
+ if (go.tag != "Island")
+ {
+ Undo.RecordObject(go, "Tag Island");
+ go.tag = "Island";
+ EditorUtility.SetDirty(go);
+ count++;
+ }
+ }
+ }
+ }
+ EditorUtility.DisplayDialog("Tag Islands",
+ $"{count}개 오브젝트에 Island 태그 적용 완료.\nCtrl+S로 씬 저장하세요.", "OK");
+ }
+
+ [MenuItem("BoatAttack/Remove Tactical UI", false, 110)]
+ public static void RemoveTacticalUI()
+ {
+ var pm = Object.FindObjectOfType();
+ if (pm != null) Undo.DestroyObjectImmediate(pm.gameObject);
+ var tc = Object.FindObjectOfType();
+ if (tc != null) Undo.DestroyObjectImmediate(tc.gameObject);
+ }
+
+ static void SetupTacticalNetwork(DefenseEnvController env)
+ {
+ if (Object.FindObjectOfType() != null) return;
+
+ var obj = new GameObject("TacticalSystem");
+ Undo.RegisterCreatedObjectUndo(obj, "Create TacticalSystem");
+
+ var client = obj.AddComponent();
+ client.envController = env;
+ client.host = "localhost";
+ client.port = 9877;
+ client.sendInterval = 0.1f;
+ client.autoConnect = true;
+
+ var receiver = obj.AddComponent();
+ receiver.tacticalClient = client;
+ receiver.envController = env;
+ EditorUtility.SetDirty(obj);
+ }
+
+ // ================================================================
+ // Full UI
+ // ================================================================
+
+ static void SetupFullUI(DefenseEnvController env, EnvironmentController envCtrl)
+ {
+ var existing = Object.FindObjectOfType();
+ if (existing != null) Undo.DestroyObjectImmediate(existing.gameObject);
+
+ // Canvas
+ var canvasObj = new GameObject("TacticalUI_Canvas");
+ Undo.RegisterCreatedObjectUndo(canvasObj, "Create TacticalUI");
+
+ var canvas = canvasObj.AddComponent