From 3995fa3b73d4a6bd03614fcda5f7d761b16d484d Mon Sep 17 00:00:00 2001
From: AinL <gmlwns5176@gmail.com>
Date: Wed, 29 Sep 2021 00:46:09 +0900
Subject: [PATCH] add: eat enemy add: leaderboard add: nickname changer move:
 script files update: project setting; resizable window

---
 .../Resources/PhotonServerSettings.asset      |   1 +
 AllNetTest/Assets/Resources/PlayerBody.prefab |   5 +-
 AllNetTest/Assets/Scenes/SampleScene.unity    | 414 +++++++++++++++++-
 AllNetTest/Assets/Scripts/Game.meta           |   8 +
 .../Scripts/{ => Game}/BodyController.cs      |  96 ++--
 .../Scripts/{ => Game}/BodyController.cs.meta |   0
 .../Scripts/{ => Game}/CameraFollowing.cs     |   1 +
 .../{ => Game}/CameraFollowing.cs.meta        |   0
 .../Assets/Scripts/{ => Game}/FoodScript.cs   |  17 +-
 .../Scripts/{ => Game}/FoodScript.cs.meta     |   0
 .../Assets/Scripts/{ => Game}/GameManager.cs  | 113 +++--
 .../Scripts/{ => Game}/GameManager.cs.meta    |   0
 .../Scripts/{ => Game}/NetworkManager.cs      |   7 +-
 .../Scripts/{ => Game}/NetworkManager.cs.meta |   0
 AllNetTest/Assets/Scripts/UI.meta             |   8 +
 AllNetTest/Assets/Scripts/UI/Leaderboard.cs   |  38 ++
 .../Assets/Scripts/UI/Leaderboard.cs.meta     |  11 +
 .../Assets/Scripts/UI/NicknameHandler.cs      |  27 ++
 .../Assets/Scripts/UI/NicknameHandler.cs.meta |  11 +
 .../ProjectSettings/ProjectSettings.asset     |   2 +-
 .../ProjectSettings/QualitySettings.asset     |  62 ++-
 .../SceneTemplateSettings.json                | 167 +++++++
 22 files changed, 910 insertions(+), 78 deletions(-)
 create mode 100644 AllNetTest/Assets/Scripts/Game.meta
 rename AllNetTest/Assets/Scripts/{ => Game}/BodyController.cs (77%)
 rename AllNetTest/Assets/Scripts/{ => Game}/BodyController.cs.meta (100%)
 rename AllNetTest/Assets/Scripts/{ => Game}/CameraFollowing.cs (99%)
 rename AllNetTest/Assets/Scripts/{ => Game}/CameraFollowing.cs.meta (100%)
 rename AllNetTest/Assets/Scripts/{ => Game}/FoodScript.cs (98%)
 rename AllNetTest/Assets/Scripts/{ => Game}/FoodScript.cs.meta (100%)
 rename AllNetTest/Assets/Scripts/{ => Game}/GameManager.cs (79%)
 rename AllNetTest/Assets/Scripts/{ => Game}/GameManager.cs.meta (100%)
 rename AllNetTest/Assets/Scripts/{ => Game}/NetworkManager.cs (89%)
 rename AllNetTest/Assets/Scripts/{ => Game}/NetworkManager.cs.meta (100%)
 create mode 100644 AllNetTest/Assets/Scripts/UI.meta
 create mode 100644 AllNetTest/Assets/Scripts/UI/Leaderboard.cs
 create mode 100644 AllNetTest/Assets/Scripts/UI/Leaderboard.cs.meta
 create mode 100644 AllNetTest/Assets/Scripts/UI/NicknameHandler.cs
 create mode 100644 AllNetTest/Assets/Scripts/UI/NicknameHandler.cs.meta
 create mode 100644 AllNetTest/ProjectSettings/SceneTemplateSettings.json

diff --git a/AllNetTest/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset b/AllNetTest/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset
index 51692ee..17ed7c0 100644
--- a/AllNetTest/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset
+++ b/AllNetTest/Assets/Photon/PhotonUnityNetworking/Resources/PhotonServerSettings.asset
@@ -39,6 +39,7 @@ MonoBehaviour:
   - DestroySpaceship
   - Fire
   - RespawnSpaceship
+  - RPCRemoveRequest
   DisableAutoOpenWizard: 1
   ShowSettings: 0
   DevRegionSetOnce: 1
diff --git a/AllNetTest/Assets/Resources/PlayerBody.prefab b/AllNetTest/Assets/Resources/PlayerBody.prefab
index c0e2b57..3797bbe 100644
--- a/AllNetTest/Assets/Resources/PlayerBody.prefab
+++ b/AllNetTest/Assets/Resources/PlayerBody.prefab
@@ -124,6 +124,7 @@ MonoBehaviour:
   health: 1
   size: 1
   splitableHealthThreshold: 2
+  eatOtherThresholdFactor: 1.66
 --- !u!54 &7904763328923688592
 Rigidbody:
   m_ObjectHideFlags: 0
@@ -209,7 +210,7 @@ GameObject:
   - component: {fileID: 5008932867226782349}
   - component: {fileID: 3752674736368630228}
   m_Layer: 0
-  m_Name: New Text
+  m_Name: Nickname Text
   m_TagString: Untagged
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
@@ -223,7 +224,7 @@ Transform:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 7775670288862231465}
   m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
-  m_LocalPosition: {x: 0, y: 2, z: 0}
+  m_LocalPosition: {x: 0, y: 0, z: -0}
   m_LocalScale: {x: 0.05895516, y: 0.05895516, z: 0.05895516}
   m_Children: []
   m_Father: {fileID: 3861806293270926113}
diff --git a/AllNetTest/Assets/Scenes/SampleScene.unity b/AllNetTest/Assets/Scenes/SampleScene.unity
index 0688eaf..41eef04 100644
--- a/AllNetTest/Assets/Scenes/SampleScene.unity
+++ b/AllNetTest/Assets/Scenes/SampleScene.unity
@@ -316,6 +316,7 @@ MonoBehaviour:
   scoreTextboxObject: {fileID: 1005848150}
   playerPrefab: {fileID: 7970457776050004569, guid: cf0831828c9e1a74db538605b9dbbfd9,
     type: 3}
+  alwaysCreateRoom: 0
 --- !u!850595691 &714731879
 LightingSettings:
   m_ObjectHideFlags: 0
@@ -377,6 +378,85 @@ LightingSettings:
   m_PVRFilteringAtrousPositionSigmaDirect: 0.5
   m_PVRFilteringAtrousPositionSigmaIndirect: 2
   m_PVRFilteringAtrousPositionSigmaAO: 1
+--- !u!1 &802422768
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 802422769}
+  - component: {fileID: 802422771}
+  - component: {fileID: 802422770}
+  m_Layer: 5
+  m_Name: Text
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &802422769
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 802422768}
+  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: 1807337566}
+  m_RootOrder: 1
+  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.5}
+  m_SizeDelta: {x: -20, y: -13}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &802422770
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 802422768}
+  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: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 2
+    m_AlignByGeometry: 0
+    m_RichText: 0
+    m_HorizontalOverflow: 1
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 
+--- !u!222 &802422771
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 802422768}
+  m_CullTransparentMesh: 1
 --- !u!1 &1005848150
 GameObject:
   m_ObjectHideFlags: 0
@@ -411,7 +491,7 @@ RectTransform:
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
   m_AnchorMin: {x: 0, y: 0}
   m_AnchorMax: {x: 1, y: 0}
-  m_AnchoredPosition: {x: -11.400005, y: 0}
+  m_AnchoredPosition: {x: -11.399994, y: 0}
   m_SizeDelta: {x: -22.799988, y: 65.6}
   m_Pivot: {x: 0.5, y: 0.5}
 --- !u!114 &1005848152
@@ -548,6 +628,8 @@ RectTransform:
   m_LocalScale: {x: 0, y: 0, z: 0}
   m_Children:
   - {fileID: 1005848151}
+  - {fileID: 1346965200}
+  - {fileID: 1807337566}
   m_Father: {fileID: 0}
   m_RootOrder: 3
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -637,6 +719,181 @@ Transform:
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1173601659
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1173601660}
+  - component: {fileID: 1173601662}
+  - component: {fileID: 1173601661}
+  m_Layer: 5
+  m_Name: Placeholder
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1173601660
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1173601659}
+  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: 1807337566}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 1, y: 1}
+  m_AnchoredPosition: {x: 0, y: -0.5}
+  m_SizeDelta: {x: -20, y: -13}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1173601661
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1173601659}
+  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: 0.19607843, g: 0.19607843, b: 0.19607843, a: 0.5}
+  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: 2
+    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: nickname...
+--- !u!222 &1173601662
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1173601659}
+  m_CullTransparentMesh: 1
+--- !u!1 &1346965199
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1346965200}
+  - component: {fileID: 1346965203}
+  - component: {fileID: 1346965202}
+  - component: {fileID: 1346965201}
+  m_Layer: 5
+  m_Name: Leaderboard
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1346965200
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1346965199}
+  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: 1017788992}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 1}
+  m_AnchoredPosition: {x: 68.8, y: -7.235077}
+  m_SizeDelta: {x: 176.8, y: -14.469858}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1346965201
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1346965199}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 49dd71f3d492815439354caef8f37e2b, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!114 &1346965202
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1346965199}
+  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: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 12800000, guid: 4a4df204c321f9c40b0dbfb1baaffb4c, type: 3}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 1
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1.25
+  m_Text: 'Leaderboard
+
+    1. Hello
+
+    2. World'
+--- !u!222 &1346965203
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1346965199}
+  m_CullTransparentMesh: 1
 --- !u!1 &1640989542
 GameObject:
   m_ObjectHideFlags: 0
@@ -703,3 +960,158 @@ Transform:
   m_Father: {fileID: 0}
   m_RootOrder: 4
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1807337565
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1807337566}
+  - component: {fileID: 1807337570}
+  - component: {fileID: 1807337569}
+  - component: {fileID: 1807337568}
+  - component: {fileID: 1807337567}
+  m_Layer: 5
+  m_Name: Nickname
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1807337566
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1807337565}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.75, y: 0.75, z: 0.75}
+  m_Children:
+  - {fileID: 1173601660}
+  - {fileID: 802422769}
+  m_Father: {fileID: 1017788992}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 1, y: 0}
+  m_AnchorMax: {x: 1, y: 0}
+  m_AnchoredPosition: {x: -71.4, y: 49.63}
+  m_SizeDelta: {x: 129.8, y: 30}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1807337567
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1807337565}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 5c382255faaf17749991c400c527c948, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+--- !u!114 &1807337568
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1807337565}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d199490a83bb2b844b9695cbf13b01ef, 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: 1807337569}
+  m_TextComponent: {fileID: 802422770}
+  m_Placeholder: {fileID: 1173601661}
+  m_ContentType: 0
+  m_InputType: 0
+  m_AsteriskChar: 42
+  m_KeyboardType: 0
+  m_LineType: 0
+  m_HideMobileInput: 0
+  m_CharacterValidation: 0
+  m_CharacterLimit: 0
+  m_OnEndEdit:
+    m_PersistentCalls:
+      m_Calls: []
+  m_OnValueChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
+  m_CustomCaretColor: 0
+  m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
+  m_Text: 
+  m_CaretBlinkRate: 0.85
+  m_CaretWidth: 1
+  m_ReadOnly: 0
+--- !u!114 &1807337569
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1807337565}
+  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: 0.3764706}
+  m_RaycastTarget: 1
+  m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+  m_Maskable: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+  m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
+  m_Type: 1
+  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!222 &1807337570
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1807337565}
+  m_CullTransparentMesh: 1
diff --git a/AllNetTest/Assets/Scripts/Game.meta b/AllNetTest/Assets/Scripts/Game.meta
new file mode 100644
index 0000000..bcd98b1
--- /dev/null
+++ b/AllNetTest/Assets/Scripts/Game.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 44b6ebb445e3543459e5a6935de08729
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AllNetTest/Assets/Scripts/BodyController.cs b/AllNetTest/Assets/Scripts/Game/BodyController.cs
similarity index 77%
rename from AllNetTest/Assets/Scripts/BodyController.cs
rename to AllNetTest/Assets/Scripts/Game/BodyController.cs
index fe3019e..3c15dbc 100644
--- a/AllNetTest/Assets/Scripts/BodyController.cs
+++ b/AllNetTest/Assets/Scripts/Game/BodyController.cs
@@ -27,9 +27,9 @@ public class BodyController : MonoBehaviourPunCallbacks, IPunObservable
     public GameObject arrorCenterGameObject;
     public GameObject nicknameTextGameObject;
 
-    public float accelPerSec = 800;
-    public float rotatePerSec = 100;
-    public float maxAccel = 2000;
+    public float accelPerSec = 1800;
+    public float rotatePerSec = 250;
+    public float maxAccel = 4000;
 
     public float accel = 0;
     public float direction = 0;
@@ -37,13 +37,48 @@ public class BodyController : MonoBehaviourPunCallbacks, IPunObservable
     public float health = 1.0f;
     public float size = 1.0f;
     public float splitableHealthThreshold = 2.0f;
+    public float eatOtherThresholdFactor = 1.66f;
 
-    public event EventHandler BodyReleased;
     public event EventHandler<BodySplitEventArgs> BodySplitRequested;
     public event EventHandler BodyGatherRequested;
+    public event EventHandler BodyDestroyRequested;
+
+    public event EventHandler BodyReleased;
+
     public event EventHandler<float> FoodEaten;
+    public event EventHandler<float> PlayerEaten;
 
     float blockSplitBodyTimer = 0.0f;
+    float blockEatOtherTimer = 0.0f;
+
+    public bool GetFocus() { return focused; }
+
+    public void SetFocus(bool focused = true)
+    {
+        this.focused = focused;
+
+        if (focused)
+        {
+            this.arrorCenterGameObject.SetActive(true);
+            //this.direction = 0;
+            this.accel = 0;
+            arrorCenterGameObject.transform.localScale = new Vector3(1, 1, 1);
+        }
+        else
+        {
+            this.arrorCenterGameObject.SetActive(false);
+        }
+    }
+
+    public void SetHealth(float health)
+    {
+        this.health = health;
+
+        size = Mathf.Pow(Math.Max(0, this.health), 0.333333f);
+
+        transform.localScale = new Vector3(size, size, size);
+        this.gameObject.GetComponent<Rigidbody>().mass = size;
+    }
 
     // Start is called before the first frame update
     void Start()
@@ -117,6 +152,8 @@ public class BodyController : MonoBehaviourPunCallbacks, IPunObservable
         }
 
         blockSplitBodyTimer -= Time.deltaTime;
+
+        blockEatOtherTimer -= Time.deltaTime;
     }
 
     void OnTriggerEnter(Collider col)
@@ -131,33 +168,42 @@ public class BodyController : MonoBehaviourPunCallbacks, IPunObservable
         }
     }
 
-    public bool GetFocus() { return focused; }
-
-    public void SetFocus(bool focused = true)
+    void OnCollisionStay(Collision col)
     {
-        this.focused = focused;
-
-        if (focused)
-        {
-            this.arrorCenterGameObject.SetActive(true);
-            //this.direction = 0;
-            this.accel = 0;
-            arrorCenterGameObject.transform.localScale = new Vector3(1, 1, 1);
-        }
-        else
+        var other = col.gameObject;
+        if(other.tag == "Player")
         {
-            this.arrorCenterGameObject.SetActive(false);
+            var photonView = other.GetComponent<PhotonView>();
+            if (!photonView.IsMine)
+            {
+                var controller = other.GetComponent<BodyController>();
+                var otherHealth = controller.health;
+
+                if (health > otherHealth * eatOtherThresholdFactor && blockEatOtherTimer < 0)
+                {
+                    //perform eat other
+                    Debug.Log($"RPC: Send request to {photonView.Owner.NickName}");
+                    photonView.RPC("RPCRemoveRequest", RpcTarget.All, this.photonView.Owner.NickName);
+
+                    SetHealth(health + otherHealth);
+                    PlayerEaten?.Invoke(this, otherHealth);
+
+                    //block eat other for 0.5 sec
+                    blockEatOtherTimer = 0.5f;
+                }
+            }
         }
     }
 
-    public void SetHealth(float health)
+    [PunRPC]
+    void RPCRemoveRequest(string caller)
     {
-        this.health = health;
-
-        size = Mathf.Pow(Math.Max(0, this.health), 0.333333f);
-
-        transform.localScale = new Vector3(size, size, size);
-        this.gameObject.GetComponent<Rigidbody>().mass = size;
+        //requested
+        if (photonView.IsMine)
+        {
+            Debug.Log($"RPC: Remove requested. called by {caller}");
+            BodyDestroyRequested?.Invoke(this, null);
+        }
     }
 
     public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
diff --git a/AllNetTest/Assets/Scripts/BodyController.cs.meta b/AllNetTest/Assets/Scripts/Game/BodyController.cs.meta
similarity index 100%
rename from AllNetTest/Assets/Scripts/BodyController.cs.meta
rename to AllNetTest/Assets/Scripts/Game/BodyController.cs.meta
diff --git a/AllNetTest/Assets/Scripts/CameraFollowing.cs b/AllNetTest/Assets/Scripts/Game/CameraFollowing.cs
similarity index 99%
rename from AllNetTest/Assets/Scripts/CameraFollowing.cs
rename to AllNetTest/Assets/Scripts/Game/CameraFollowing.cs
index fbd8108..65bed8c 100644
--- a/AllNetTest/Assets/Scripts/CameraFollowing.cs
+++ b/AllNetTest/Assets/Scripts/Game/CameraFollowing.cs
@@ -6,6 +6,7 @@ public class CameraFollowing : MonoBehaviour
 {
     public GameObject targetObject;
     public GameObject cameraObject;
+
     public bool activeSmoothing = false;
 
     // Start is called before the first frame update
diff --git a/AllNetTest/Assets/Scripts/CameraFollowing.cs.meta b/AllNetTest/Assets/Scripts/Game/CameraFollowing.cs.meta
similarity index 100%
rename from AllNetTest/Assets/Scripts/CameraFollowing.cs.meta
rename to AllNetTest/Assets/Scripts/Game/CameraFollowing.cs.meta
diff --git a/AllNetTest/Assets/Scripts/FoodScript.cs b/AllNetTest/Assets/Scripts/Game/FoodScript.cs
similarity index 98%
rename from AllNetTest/Assets/Scripts/FoodScript.cs
rename to AllNetTest/Assets/Scripts/Game/FoodScript.cs
index 034d332..8adced9 100644
--- a/AllNetTest/Assets/Scripts/FoodScript.cs
+++ b/AllNetTest/Assets/Scripts/Game/FoodScript.cs
@@ -16,6 +16,15 @@ public class FoodScript : MonoBehaviourPunCallbacks, IPunObservable
 
     public event EventHandler OnPlayerCollide;
 
+    void SetColor(Color value)
+    {
+        if (color != value)
+        {
+            color = value;
+            this.sphere.GetComponent<MeshRenderer>().material.color = color;
+        }
+    }
+
     // Start is called before the first frame update
     void Start()
     {
@@ -36,14 +45,6 @@ public class FoodScript : MonoBehaviourPunCallbacks, IPunObservable
             OnPlayerCollide?.Invoke(this, null);
         }
     }
-    void SetColor(Color value)
-    {
-        if(color != value)
-        {
-            color = value;
-            this.sphere.GetComponent<MeshRenderer>().material.color = color;
-        }
-    }
 
     public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
     {
diff --git a/AllNetTest/Assets/Scripts/FoodScript.cs.meta b/AllNetTest/Assets/Scripts/Game/FoodScript.cs.meta
similarity index 100%
rename from AllNetTest/Assets/Scripts/FoodScript.cs.meta
rename to AllNetTest/Assets/Scripts/Game/FoodScript.cs.meta
diff --git a/AllNetTest/Assets/Scripts/GameManager.cs b/AllNetTest/Assets/Scripts/Game/GameManager.cs
similarity index 79%
rename from AllNetTest/Assets/Scripts/GameManager.cs
rename to AllNetTest/Assets/Scripts/Game/GameManager.cs
index 1ace218..f73cdf9 100644
--- a/AllNetTest/Assets/Scripts/GameManager.cs
+++ b/AllNetTest/Assets/Scripts/Game/GameManager.cs
@@ -71,6 +71,8 @@ class BubblePlacer
 
 public class GameManager : MonoBehaviourPunCallbacks, IPunObservable
 {
+    public static List<GameManager> Instances = new List<GameManager>();
+
     // Start is called before the first frame update
     public List<GameObject> myBodies;
     public int currentBodyIdx = 0;
@@ -83,27 +85,61 @@ public class GameManager : MonoBehaviourPunCallbacks, IPunObservable
     public float foodCreateInterval = 0.5f;
     public int maxFoodCount = 1000;
     public int mapRange = 50;
+
     public float score = 0;
 
     int foodCount = 0;
     float foodCreateTimeElapsed = 0;
 
-    void Start()
+    public void SetScore(float score)
     {
-        if (photonView.IsMine)
+        if (this.score != score)
+        {
+            this.score = score;
+            if (scoreTextboxObject) this.scoreTextboxObject.GetComponent<UnityEngine.UI.Text>().text = $"Score: {(int)score}";
+        }
+    }
+
+    public void SetCurrentBodyIdx(int idx)
+    {
+        if (currentBodyIdx != idx)
         {
-            var me = PhotonNetwork.Instantiate(playerBodyPrefab.name, new Vector3(0, 0.505f, 0), Quaternion.identity);
-            if (me == null) throw new NullReferenceException();
-            myBodies.Add(me);
+            currentBodyIdx = idx;
 
-            foreach (var item in myBodies)
+            if (idx >= 0 && idx < myBodies.Count)
             {
-                var controller = InitializeBodyGameObject(item);
+                var cameraWork = GetComponent<CameraFollowing>();
+                cameraWork.targetObject = myBodies[idx];
+                cameraWork.activeSmoothing = true;
             }
+        }
+    }
 
-            currentBodyIdx = -1;
-            SetCurrentBodyIdx(0);
+    void Start()
+    {
+        if (photonView.IsMine)
+        {
+            AddNewBody();
         }
+
+        Instances.Add(this);
+    }
+
+    void OnDestroy()
+    {
+        Instances.Remove(this);
+    }
+
+    void AddNewBody()
+    {
+        var me = PhotonNetwork.Instantiate(playerBodyPrefab.name, new Vector3(0, 0.505f, 0), Quaternion.identity);
+        if (me == null) throw new NullReferenceException();
+        myBodies.Add(me);
+
+        var controller = InitializeBodyGameObject(me);
+
+        currentBodyIdx = -1;
+        SetCurrentBodyIdx(myBodies.Count - 1);
     }
 
     BodyController InitializeBodyGameObject(GameObject body)
@@ -111,11 +147,46 @@ public class GameManager : MonoBehaviourPunCallbacks, IPunObservable
         var controller = body.GetComponent<BodyController>();
         controller.BodyReleased += Controller_BodyReleased;
         controller.FoodEaten += Controller_FoodEaten;
+        controller.PlayerEaten += Controller_PlayerEaten;
         controller.BodySplitRequested += Controller_BodySplitRequested;
         controller.BodyGatherRequested += Controller_BodyGatherRequested;
+        controller.BodyDestroyRequested += Controller_BodyDestroyRequested;
         return controller;
     }
 
+    private void Controller_PlayerEaten(object sender, float e)
+    {
+        SetScore(score + e * 200);
+    }
+
+    void Controller_BodyDestroyRequested(object sender, EventArgs e)
+    {
+        var caller = (BodyController)sender;
+        if(caller.photonView.IsMine)
+        {
+            for (int i = 0; i < myBodies.Count; i++) 
+            {
+                if(myBodies[i].GetInstanceID() == caller.gameObject.GetInstanceID())
+                {
+                    myBodies.RemoveAt(i);
+                    currentBodyIdx = Math.Min(myBodies.Count-1, currentBodyIdx);
+                    break;
+                }
+            }
+            PhotonNetwork.Destroy(caller.photonView);
+
+            if (myBodies.Count == 0)
+            {
+                //You dead!
+                Debug.Log("You dead!");
+                SetScore(0);
+
+                //Just make new body
+                AddNewBody();
+            }
+        }
+    }
+
     //Following controller event calls only from local object.
     void Controller_BodySplitRequested(object sender, BodySplitEventArgs e)
     {
@@ -201,30 +272,6 @@ public class GameManager : MonoBehaviourPunCallbacks, IPunObservable
         }
     }
 
-    public void SetScore(float score)
-    {
-        if (this.score != score) 
-        {
-            this.score = score;
-            if(scoreTextboxObject) this.scoreTextboxObject.GetComponent<UnityEngine.UI.Text>().text = $"Score: {(int)score}";
-        }
-    }
-
-    public void SetCurrentBodyIdx(int idx)
-    {
-        if (currentBodyIdx != idx)
-        {
-            currentBodyIdx = idx;
-
-            if (idx >= 0 && idx < myBodies.Count)
-            {
-                var cameraWork = GetComponent<CameraFollowing>();
-                cameraWork.targetObject = myBodies[idx];
-                cameraWork.activeSmoothing = true;
-            }
-        }
-    }
-
     public void OnPhotonSerializeView(PhotonStream stream, PhotonMessageInfo info)
     {
         if(stream.IsWriting)
diff --git a/AllNetTest/Assets/Scripts/GameManager.cs.meta b/AllNetTest/Assets/Scripts/Game/GameManager.cs.meta
similarity index 100%
rename from AllNetTest/Assets/Scripts/GameManager.cs.meta
rename to AllNetTest/Assets/Scripts/Game/GameManager.cs.meta
diff --git a/AllNetTest/Assets/Scripts/NetworkManager.cs b/AllNetTest/Assets/Scripts/Game/NetworkManager.cs
similarity index 89%
rename from AllNetTest/Assets/Scripts/NetworkManager.cs
rename to AllNetTest/Assets/Scripts/Game/NetworkManager.cs
index 06cc008..0235832 100644
--- a/AllNetTest/Assets/Scripts/NetworkManager.cs
+++ b/AllNetTest/Assets/Scripts/Game/NetworkManager.cs
@@ -25,7 +25,12 @@ public class NetworkManager : MonoBehaviourPunCallbacks
 
     public void Connect()
     {
-        var names = new[] { "AinL", "boerk", "Hello", "World", "Wow", "Test", "HelloWorld", "Joe", "Foo", "Bar", "foobar", "ASCII"};
+        var names = new[] { 
+            "Josep", "Visual", "Hello", "World", "Wonder", "Studio", "Android", "Joe", 
+            "Foo", "Bar", "foobar", "Sony", "Microsoft", "Windows", "Apple", "Dog", 
+            "Cat", "Frog", "White", "Black", "Pick", "Slime", "Robot", "Haje", "Vaccine",
+            "Steam", "Train", "Car", "Cart", "Elephant", "Flower", "Seed", "Food"
+        };
         PhotonNetwork.NickName = names[UnityEngine.Random.Range(0, names.Length)];
         if (PhotonNetwork.IsConnected)
         {
diff --git a/AllNetTest/Assets/Scripts/NetworkManager.cs.meta b/AllNetTest/Assets/Scripts/Game/NetworkManager.cs.meta
similarity index 100%
rename from AllNetTest/Assets/Scripts/NetworkManager.cs.meta
rename to AllNetTest/Assets/Scripts/Game/NetworkManager.cs.meta
diff --git a/AllNetTest/Assets/Scripts/UI.meta b/AllNetTest/Assets/Scripts/UI.meta
new file mode 100644
index 0000000..9f5cdfc
--- /dev/null
+++ b/AllNetTest/Assets/Scripts/UI.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9483a3d6132fdef46aedeaf189777907
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AllNetTest/Assets/Scripts/UI/Leaderboard.cs b/AllNetTest/Assets/Scripts/UI/Leaderboard.cs
new file mode 100644
index 0000000..92a3007
--- /dev/null
+++ b/AllNetTest/Assets/Scripts/UI/Leaderboard.cs
@@ -0,0 +1,38 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class Leaderboard : MonoBehaviour
+{
+    class StrIntComparer : IComparer<(string, int)>
+    {
+        public int Compare((string, int) x, (string, int) y)
+        {
+            return y.Item2.CompareTo(x.Item2);
+        }
+    }
+    // Start is called before the first frame update
+    void Start()
+    {
+        
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        var scores = new List<(string, int)>();
+        foreach(var item in GameManager.Instances)
+        {
+            scores.Add((item.photonView.Owner.NickName, (int)item.score));
+        }
+        scores.Sort(new StrIntComparer());
+
+        var content = "Leaderboard\n";
+        for(int i=0; i<scores.Count; i++)
+        {
+            content += $"{i+1}. {scores[i].Item1}, {scores[i].Item2}\n";
+        }
+
+        this.GetComponent<UnityEngine.UI.Text>().text = content;
+    }
+}
diff --git a/AllNetTest/Assets/Scripts/UI/Leaderboard.cs.meta b/AllNetTest/Assets/Scripts/UI/Leaderboard.cs.meta
new file mode 100644
index 0000000..3e6a7e9
--- /dev/null
+++ b/AllNetTest/Assets/Scripts/UI/Leaderboard.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 49dd71f3d492815439354caef8f37e2b
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AllNetTest/Assets/Scripts/UI/NicknameHandler.cs b/AllNetTest/Assets/Scripts/UI/NicknameHandler.cs
new file mode 100644
index 0000000..29c6c1b
--- /dev/null
+++ b/AllNetTest/Assets/Scripts/UI/NicknameHandler.cs
@@ -0,0 +1,27 @@
+using Photon.Pun;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class NicknameHandler : MonoBehaviourPunCallbacks
+{
+    // Start is called before the first frame update
+    void Start()
+    {
+        GetComponent<UnityEngine.UI.InputField>().onValueChanged.AddListener((s) =>
+        {
+            PhotonNetwork.NickName = s;
+        });
+    }
+
+    public override void OnJoinedRoom()
+    {
+        GetComponent<UnityEngine.UI.InputField>().text = PhotonNetwork.NickName;
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+
+    }
+}
diff --git a/AllNetTest/Assets/Scripts/UI/NicknameHandler.cs.meta b/AllNetTest/Assets/Scripts/UI/NicknameHandler.cs.meta
new file mode 100644
index 0000000..a81f60a
--- /dev/null
+++ b/AllNetTest/Assets/Scripts/UI/NicknameHandler.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5c382255faaf17749991c400c527c948
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/AllNetTest/ProjectSettings/ProjectSettings.asset b/AllNetTest/ProjectSettings/ProjectSettings.asset
index 386d194..3d23515 100644
--- a/AllNetTest/ProjectSettings/ProjectSettings.asset
+++ b/AllNetTest/ProjectSettings/ProjectSettings.asset
@@ -82,7 +82,7 @@ PlayerSettings:
   bakeCollisionMeshes: 0
   forceSingleInstance: 0
   useFlipModelSwapchain: 1
-  resizableWindow: 0
+  resizableWindow: 1
   useMacAppStoreValidation: 0
   macAppStoreCategory: public.app-category.games
   gpuSkinning: 1
diff --git a/AllNetTest/ProjectSettings/QualitySettings.asset b/AllNetTest/ProjectSettings/QualitySettings.asset
index 0621bef..b15e8a5 100644
--- a/AllNetTest/ProjectSettings/QualitySettings.asset
+++ b/AllNetTest/ProjectSettings/QualitySettings.asset
@@ -4,7 +4,7 @@
 QualitySettings:
   m_ObjectHideFlags: 0
   serializedVersion: 5
-  m_CurrentQuality: 4
+  m_CurrentQuality: 5
   m_QualitySettings:
   - serializedVersion: 2
     name: Very Low
@@ -18,7 +18,7 @@ QualitySettings:
     shadowCascade2Split: 0.33333334
     shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
     shadowmaskMode: 0
-    blendWeights: 1
+    skinWeights: 1
     textureQuality: 1
     anisotropicTextures: 0
     antiAliasing: 0
@@ -29,10 +29,18 @@ QualitySettings:
     vSyncCount: 0
     lodBias: 0.3
     maximumLODLevel: 0
+    streamingMipmapsActive: 0
+    streamingMipmapsAddAllCameras: 1
+    streamingMipmapsMemoryBudget: 512
+    streamingMipmapsRenderersPerFrame: 512
+    streamingMipmapsMaxLevelReduction: 2
+    streamingMipmapsMaxFileIORequests: 1024
     particleRaycastBudget: 4
     asyncUploadTimeSlice: 2
     asyncUploadBufferSize: 16
+    asyncUploadPersistentBuffer: 1
     resolutionScalingFixedDPIFactor: 1
+    customRenderPipeline: {fileID: 0}
     excludedTargetPlatforms: []
   - serializedVersion: 2
     name: Low
@@ -46,7 +54,7 @@ QualitySettings:
     shadowCascade2Split: 0.33333334
     shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
     shadowmaskMode: 0
-    blendWeights: 2
+    skinWeights: 2
     textureQuality: 0
     anisotropicTextures: 0
     antiAliasing: 0
@@ -57,10 +65,18 @@ QualitySettings:
     vSyncCount: 0
     lodBias: 0.4
     maximumLODLevel: 0
+    streamingMipmapsActive: 0
+    streamingMipmapsAddAllCameras: 1
+    streamingMipmapsMemoryBudget: 512
+    streamingMipmapsRenderersPerFrame: 512
+    streamingMipmapsMaxLevelReduction: 2
+    streamingMipmapsMaxFileIORequests: 1024
     particleRaycastBudget: 16
     asyncUploadTimeSlice: 2
     asyncUploadBufferSize: 16
+    asyncUploadPersistentBuffer: 1
     resolutionScalingFixedDPIFactor: 1
+    customRenderPipeline: {fileID: 0}
     excludedTargetPlatforms: []
   - serializedVersion: 2
     name: Medium
@@ -74,7 +90,7 @@ QualitySettings:
     shadowCascade2Split: 0.33333334
     shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
     shadowmaskMode: 0
-    blendWeights: 2
+    skinWeights: 2
     textureQuality: 0
     anisotropicTextures: 1
     antiAliasing: 0
@@ -85,10 +101,18 @@ QualitySettings:
     vSyncCount: 1
     lodBias: 0.7
     maximumLODLevel: 0
+    streamingMipmapsActive: 0
+    streamingMipmapsAddAllCameras: 1
+    streamingMipmapsMemoryBudget: 512
+    streamingMipmapsRenderersPerFrame: 512
+    streamingMipmapsMaxLevelReduction: 2
+    streamingMipmapsMaxFileIORequests: 1024
     particleRaycastBudget: 64
     asyncUploadTimeSlice: 2
     asyncUploadBufferSize: 16
+    asyncUploadPersistentBuffer: 1
     resolutionScalingFixedDPIFactor: 1
+    customRenderPipeline: {fileID: 0}
     excludedTargetPlatforms: []
   - serializedVersion: 2
     name: High
@@ -102,7 +126,7 @@ QualitySettings:
     shadowCascade2Split: 0.33333334
     shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
     shadowmaskMode: 1
-    blendWeights: 2
+    skinWeights: 2
     textureQuality: 0
     anisotropicTextures: 1
     antiAliasing: 2
@@ -113,10 +137,18 @@ QualitySettings:
     vSyncCount: 1
     lodBias: 1
     maximumLODLevel: 0
+    streamingMipmapsActive: 0
+    streamingMipmapsAddAllCameras: 1
+    streamingMipmapsMemoryBudget: 512
+    streamingMipmapsRenderersPerFrame: 512
+    streamingMipmapsMaxLevelReduction: 2
+    streamingMipmapsMaxFileIORequests: 1024
     particleRaycastBudget: 256
     asyncUploadTimeSlice: 2
     asyncUploadBufferSize: 16
+    asyncUploadPersistentBuffer: 1
     resolutionScalingFixedDPIFactor: 1
+    customRenderPipeline: {fileID: 0}
     excludedTargetPlatforms: []
   - serializedVersion: 2
     name: Very High
@@ -130,7 +162,7 @@ QualitySettings:
     shadowCascade2Split: 0.33333334
     shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
     shadowmaskMode: 1
-    blendWeights: 4
+    skinWeights: 4
     textureQuality: 0
     anisotropicTextures: 1
     antiAliasing: 4
@@ -141,10 +173,18 @@ QualitySettings:
     vSyncCount: 1
     lodBias: 1.5
     maximumLODLevel: 0
+    streamingMipmapsActive: 0
+    streamingMipmapsAddAllCameras: 1
+    streamingMipmapsMemoryBudget: 512
+    streamingMipmapsRenderersPerFrame: 512
+    streamingMipmapsMaxLevelReduction: 2
+    streamingMipmapsMaxFileIORequests: 1024
     particleRaycastBudget: 1024
     asyncUploadTimeSlice: 2
     asyncUploadBufferSize: 16
+    asyncUploadPersistentBuffer: 1
     resolutionScalingFixedDPIFactor: 1
+    customRenderPipeline: {fileID: 0}
     excludedTargetPlatforms: []
   - serializedVersion: 2
     name: Ultra
@@ -158,7 +198,7 @@ QualitySettings:
     shadowCascade2Split: 0.33333334
     shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667}
     shadowmaskMode: 1
-    blendWeights: 4
+    skinWeights: 4
     textureQuality: 0
     anisotropicTextures: 1
     antiAliasing: 4
@@ -169,10 +209,18 @@ QualitySettings:
     vSyncCount: 1
     lodBias: 2
     maximumLODLevel: 0
+    streamingMipmapsActive: 0
+    streamingMipmapsAddAllCameras: 1
+    streamingMipmapsMemoryBudget: 512
+    streamingMipmapsRenderersPerFrame: 512
+    streamingMipmapsMaxLevelReduction: 2
+    streamingMipmapsMaxFileIORequests: 1024
     particleRaycastBudget: 4096
     asyncUploadTimeSlice: 2
     asyncUploadBufferSize: 16
+    asyncUploadPersistentBuffer: 1
     resolutionScalingFixedDPIFactor: 1
+    customRenderPipeline: {fileID: 0}
     excludedTargetPlatforms: []
   m_PerPlatformDefaultQuality:
     Android: 2
diff --git a/AllNetTest/ProjectSettings/SceneTemplateSettings.json b/AllNetTest/ProjectSettings/SceneTemplateSettings.json
new file mode 100644
index 0000000..6f3e60f
--- /dev/null
+++ b/AllNetTest/ProjectSettings/SceneTemplateSettings.json
@@ -0,0 +1,167 @@
+{
+    "templatePinStates": [],
+    "dependencyTypeInfos": [
+        {
+            "userAdded": false,
+            "type": "UnityEngine.AnimationClip",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEditor.Animations.AnimatorController",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.AnimatorOverrideController",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEditor.Audio.AudioMixerController",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.ComputeShader",
+            "ignore": true,
+            "defaultInstantiationMode": 1,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Cubemap",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.GameObject",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEditor.LightingDataAsset",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": false
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.LightingSettings",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Material",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEditor.MonoScript",
+            "ignore": true,
+            "defaultInstantiationMode": 1,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.PhysicMaterial",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.PhysicsMaterial2D",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Rendering.VolumeProfile",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEditor.SceneAsset",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": false
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Shader",
+            "ignore": true,
+            "defaultInstantiationMode": 1,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.ShaderVariantCollection",
+            "ignore": true,
+            "defaultInstantiationMode": 1,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Texture",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Texture2D",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        },
+        {
+            "userAdded": false,
+            "type": "UnityEngine.Timeline.TimelineAsset",
+            "ignore": false,
+            "defaultInstantiationMode": 0,
+            "supportsModification": true
+        }
+    ],
+    "defaultDependencyTypeInfo": {
+        "userAdded": false,
+        "type": "<default_scene_template_dependencies>",
+        "ignore": false,
+        "defaultInstantiationMode": 1,
+        "supportsModification": true
+    },
+    "newSceneOverride": 0
+}
\ No newline at end of file
-- 
GitLab