diff --git a/.cursor/rules/aigame-basics.mdc b/.cursor/rules/aigame-basics.mdc
index 846abf2..b3a6892 100644
--- a/.cursor/rules/aigame-basics.mdc
+++ b/.cursor/rules/aigame-basics.mdc
@@ -15,7 +15,9 @@ alwaysApply: true
- sound → `Doc/ResDesc_Sound.md`
- effect → `Doc/ResDesc_Effect.md`
-2. **UI 自动生成(必须)**:业务面板使用 JSON→Prefab 管线,不要用运行时临时代码拼业务 UI 替代 Prefab。
+2. **3D 游戏网格**:导出 FBX 为 Y-up、原点在底面中点、**局部 -Z 为正面**。摆场景时让 -Z 朝向目标,不要用 Unity 默认 +Z forward。详见 `GameResProductProc.md` 附录 B。
+
+3. **UI 自动生成(必须)**:业务面板使用 JSON→Prefab 管线,不要用运行时临时代码拼业务 UI 替代 Prefab。
- 总览:`Doc/UI_AutoGen_Overview.md`
- 提示词契约:`Doc/Rule/UIGenerationPrompt.md`
- 规则详解:`Doc/Rule/UIGenerationRules.md`
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..c4860d3
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "cmake.sourceDirectory": "D:/UD/AI/AIGame/AIServer"
+}
\ No newline at end of file
diff --git a/AIClient/AgentScripts/BuildTownSquare.cs b/AIClient/AgentScripts/BuildTownSquare.cs
new file mode 100644
index 0000000..765167d
--- /dev/null
+++ b/AIClient/AgentScripts/BuildTownSquare.cs
@@ -0,0 +1,393 @@
+#if UNITY_EDITOR
+using System.Collections.Generic;
+using System.IO;
+using UnityEditor;
+using UnityEditor.SceneManagement;
+using UnityEngine;
+using UnityEngine.Rendering;
+using UnityEngine.SceneManagement;
+using YooAsset.Editor;
+
+///
+/// 把 TownSquare 8 类分件做成 Prefab,拼成可加载场景,并登记 Art 收集。
+/// 由 Unity Pipeline: unity command run_script --file AgentScripts/BuildTownSquare.cs --entry BuildTownSquare.Run
+///
+public static class BuildTownSquare
+{
+ const string SceneRoot = "Assets/Bundles/Scenes/Town/TownSquare";
+ const string ScenePath = SceneRoot + "/TownSquare.unity";
+ const string ScenePrefabPath = SceneRoot + "/TownSquare.prefab";
+ const string XPbrShaderName = "Test/XPbr";
+ const string ArtPackage = "Art";
+
+ static readonly string[] Parts =
+ {
+ "ground", "shop", "tree", "lamp", "board", "fountain", "bench", "bush"
+ };
+
+ public static string Run()
+ {
+ AssetDatabase.Refresh();
+ Directory.CreateDirectory(SceneRoot.Replace("Assets/", Application.dataPath + "/../Assets/").Replace('/', Path.DirectorySeparatorChar));
+
+ var reports = new List();
+ foreach (var name in Parts)
+ {
+ reports.Add(EnsurePartPrefab(name));
+ }
+
+ reports.Add(AssembleScenePrefab());
+ reports.Add(EnsurePlayableScene());
+ reports.Add(EnsureArtCollector());
+ AssetDatabase.SaveAssets();
+ AssetDatabase.Refresh();
+ return string.Join(" | ", reports);
+ }
+
+ static string EnsurePartPrefab(string name)
+ {
+ var dir = $"{SceneRoot}/{name}";
+ var fbxPath = $"{dir}/{name}.fbx";
+ var matPath = $"{dir}/{name}.mat";
+ var basePath = $"{dir}/{name}_base.png";
+ var mixPath = $"{dir}/{name}_mix.png";
+ var prefabPath = $"{dir}/{name}.prefab";
+
+ if (!File.Exists(fbxPath))
+ return $"{name}: missing fbx";
+
+ ConfigureTextures(basePath, mixPath);
+ ConfigureFbx(fbxPath, File.Exists(matPath), name);
+
+ var xpbr = Shader.Find(XPbrShaderName);
+ var urpLit = Shader.Find("Universal Render Pipeline/Lit") ?? Shader.Find("Standard");
+ var baseMap = AssetDatabase.LoadAssetAtPath(basePath);
+ var mixMap = AssetDatabase.LoadAssetAtPath(mixPath);
+ var useXpbr = xpbr != null && mixMap != null && baseMap != null;
+ var shader = useXpbr ? xpbr : urpLit;
+
+ var mat = AssetDatabase.LoadAssetAtPath(matPath);
+ if (mat == null)
+ {
+ mat = new Material(shader);
+ AssetDatabase.CreateAsset(mat, matPath);
+ }
+ else
+ {
+ mat.shader = shader;
+ }
+
+ if (useXpbr)
+ {
+ if (mat.HasProperty("_MainTex")) mat.SetTexture("_MainTex", baseMap);
+ if (mat.HasProperty("_MixTex")) mat.SetTexture("_MixTex", mixMap);
+ if (mat.HasProperty("_BaseColor")) mat.SetColor("_BaseColor", Color.white);
+ }
+ else if (baseMap != null && mat.HasProperty("_BaseMap"))
+ {
+ mat.SetTexture("_BaseMap", baseMap);
+ }
+
+ EditorUtility.SetDirty(mat);
+
+ var modelRoot = AssetDatabase.LoadAssetAtPath(fbxPath);
+ if (modelRoot == null)
+ return $"{name}: fbx not loaded";
+
+ var instance = (GameObject)PrefabUtility.InstantiatePrefab(modelRoot);
+ instance.name = name;
+ foreach (var renderer in instance.GetComponentsInChildren())
+ renderer.sharedMaterial = mat;
+
+ UprightAndSit(instance, name);
+ if (name == "ground")
+ EnsureGroundCollider(instance);
+ PrefabUtility.SaveAsPrefabAsset(instance, prefabPath);
+ Object.DestroyImmediate(instance);
+ return name == "ground" ? $"{name}.prefab+MeshCollider" : $"{name}.prefab";
+ }
+
+ static void ConfigureTextures(string basePath, string mixPath)
+ {
+ ConfigureOneTexture(basePath, srgb: true, alpha: true);
+ ConfigureOneTexture(mixPath, srgb: false, alpha: false);
+ }
+
+ static void ConfigureOneTexture(string path, bool srgb, bool alpha)
+ {
+ if (!File.Exists(path)) return;
+ var importer = AssetImporter.GetAtPath(path) as TextureImporter;
+ if (importer == null) return;
+ importer.textureType = TextureImporterType.Default;
+ importer.sRGBTexture = srgb;
+ importer.mipmapEnabled = true;
+ importer.alphaIsTransparency = alpha;
+ importer.SaveAndReimport();
+ }
+
+ static void ConfigureFbx(string fbxPath, bool hasMat, string name)
+ {
+ var model = AssetImporter.GetAtPath(fbxPath) as ModelImporter;
+ if (model == null) return;
+ model.globalScale = 1f;
+ model.useFileScale = false;
+ model.bakeAxisConversion = true;
+ model.materialImportMode = hasMat
+ ? ModelImporterMaterialImportMode.ImportViaMaterialDescription
+ : ModelImporterMaterialImportMode.None;
+ model.meshCompression = ModelImporterMeshCompression.Medium;
+ // MeshCollider 烹饪需要可读网格;其它分件保持不可读。
+ model.isReadable = name == "ground";
+ model.addCollider = false;
+ model.SaveAndReimport();
+ }
+
+ static void EnsureGroundCollider(GameObject instance)
+ {
+ var added = 0;
+ foreach (var filter in instance.GetComponentsInChildren())
+ {
+ if (filter.sharedMesh == null) continue;
+ var col = filter.GetComponent();
+ if (col == null)
+ col = filter.gameObject.AddComponent();
+ col.sharedMesh = filter.sharedMesh;
+ col.convex = false;
+ added++;
+ }
+ if (added == 0)
+ throw new System.InvalidOperationException("ground has no mesh for MeshCollider");
+ }
+
+ static void UprightAndSit(GameObject instance, string name)
+ {
+ instance.transform.localPosition = Vector3.zero;
+ instance.transform.localScale = Vector3.one;
+ instance.transform.localRotation = Quaternion.identity;
+
+ var bounds = MeshBounds(instance);
+ var target = TargetSize(name, bounds);
+ var current = CurrentSize(name, bounds);
+ if (target > 0.01f && current > 0.01f)
+ instance.transform.localScale = Vector3.one * (target / current);
+
+ // 游戏 FBX 原点已在底面中点,缩放后仍贴地;position 保持 0。
+ }
+
+ static float TargetSize(string name, Bounds bounds)
+ {
+ switch (name)
+ {
+ case "ground": return 18f;
+ case "shop": return 5.5f;
+ case "tree": return 5.5f;
+ case "lamp": return 3.6f;
+ case "board": return 2.4f;
+ case "fountain": return 3.2f;
+ case "bench": return 1.8f;
+ case "bush": return 0.9f;
+ default: return 1f;
+ }
+ }
+
+ static float CurrentSize(string name, Bounds bounds)
+ {
+ if (name == "ground" || name == "bench")
+ return Mathf.Max(bounds.size.x, bounds.size.z);
+ return bounds.size.y;
+ }
+
+ static Bounds MeshBounds(GameObject root)
+ {
+ Bounds bounds = default;
+ var has = false;
+ foreach (var r in root.GetComponentsInChildren())
+ {
+ if (!has)
+ {
+ bounds = r.bounds;
+ has = true;
+ }
+ else bounds.Encapsulate(r.bounds);
+ }
+ return has ? bounds : new Bounds(root.transform.position, Vector3.one * 0.01f);
+ }
+
+ static string AssembleScenePrefab()
+ {
+ var root = new GameObject("TownSquare");
+ var ground = Place(root.transform, "ground", Vector3.zero, 0f);
+ Physics.SyncTransforms();
+
+ // 总览 L 形;游戏网格正面是局部 -Z,用 YawFrontToward 对准广场中心。
+ // 水平位置按总览,Y 取地表 MeshCollider 碰撞高度。
+ var sits = new List();
+ void Sit(string part, Vector3 xz, float yaw, string instanceName = null)
+ {
+ var y = SampleGroundY(ground, xz.x, xz.z);
+ sits.Add($"{instanceName ?? part}={y:F3}");
+ Place(root.transform, part, new Vector3(xz.x, y, xz.z), yaw, instanceName);
+ }
+
+ var shopLeft = new Vector3(-6.3f, 0f, 3.4f);
+ var shopBack = new Vector3(0.6f, 0f, 6.7f);
+ Sit("shop", shopLeft, YawFrontToward(shopLeft, Vector3.zero), "shop_left");
+ Sit("shop", shopBack, YawFrontToward(shopBack, Vector3.zero), "shop_back");
+ Sit("tree", new Vector3(-8.0f, 0f, 5.2f), 15f, "tree_left");
+ Sit("tree", new Vector3(7.5f, 0f, 6.2f), -15f, "tree_right");
+ var boardPos = new Vector3(5.0f, 0f, 6.5f);
+ Sit("board", boardPos, YawFrontToward(boardPos, Vector3.zero));
+ Sit("fountain", new Vector3(6.1f, 0f, 0.6f), 0f);
+ Sit("lamp", new Vector3(-6.4f, 0f, -2.8f), 0f, "lamp_front_left");
+ Sit("lamp", new Vector3(2.7f, 0f, 6.6f), 10f, "lamp_back");
+ Sit("lamp", new Vector3(8.1f, 0f, 1.3f), -15f, "lamp_right");
+ var benchLeft = new Vector3(-5.2f, 0f, -5.2f);
+ var benchRight = new Vector3(5.6f, 0f, -4.2f);
+ Sit("bench", benchLeft, YawFrontToward(benchLeft, Vector3.zero), "bench_left");
+ Sit("bench", benchRight, YawFrontToward(benchRight, Vector3.zero), "bench_right");
+ Sit("bush", new Vector3(-6.2f, 0f, -5.8f), 0f, "bush_bench_l1");
+ Sit("bush", new Vector3(-4.2f, 0f, -6.0f), 40f, "bush_bench_l2");
+ Sit("bush", new Vector3(6.6f, 0f, -4.8f), 10f, "bush_bench_r");
+ Sit("bush", new Vector3(7.4f, 0f, 2.0f), 25f, "bush_fountain_1");
+ Sit("bush", new Vector3(4.8f, 0f, 1.4f), -10f, "bush_fountain_2");
+ Sit("bush", new Vector3(7.0f, 0f, 0.2f), 20f, "bush_fountain_3");
+ Sit("bush", new Vector3(6.6f, 0f, 6.8f), 0f, "bush_board");
+
+ PrefabUtility.SaveAsPrefabAsset(root, ScenePrefabPath);
+ Object.DestroyImmediate(root);
+ return "TownSquare.prefab sit=[" + string.Join(",", sits) + "]";
+ }
+
+ static GameObject Place(Transform parent, string part, Vector3 pos, float yaw, string instanceName = null)
+ {
+ var prefab = AssetDatabase.LoadAssetAtPath($"{SceneRoot}/{part}/{part}.prefab");
+ if (prefab == null)
+ throw new System.InvalidOperationException($"missing part prefab {part}");
+ var go = (GameObject)PrefabUtility.InstantiatePrefab(prefab, parent);
+ go.name = instanceName ?? part;
+ go.transform.position = pos;
+ go.transform.rotation = Quaternion.Euler(0f, yaw, 0f) * go.transform.rotation;
+ return go;
+ }
+
+ static float SampleGroundY(GameObject ground, float x, float z)
+ {
+ if (ground == null)
+ return 0f;
+ Physics.SyncTransforms();
+ var ray = new Ray(new Vector3(x, 80f, z), Vector3.down);
+ var bestDist = float.MaxValue;
+ var y = 0f;
+ var hitAny = false;
+ foreach (var col in ground.GetComponentsInChildren())
+ {
+ if (col == null || !col.enabled) continue;
+ if (!col.Raycast(ray, out var hit, 160f)) continue;
+ if (hit.distance >= bestDist) continue;
+ bestDist = hit.distance;
+ y = hit.point.y;
+ hitAny = true;
+ }
+ if (!hitAny)
+ Debug.LogWarning($"[BuildTownSquare] ground miss at ({x:F2}, {z:F2}), y=0");
+ return y;
+ }
+
+ static float YawFrontToward(Vector3 from, Vector3 to)
+ {
+ // 导出网格正面是局部 -Z(不是 Unity 默认 +Z)。让 +Z 背对目标,则 -Z 朝向目标。
+ var away = from - to;
+ away.y = 0f;
+ if (away.sqrMagnitude < 0.0001f) return 0f;
+ return Quaternion.LookRotation(away).eulerAngles.y;
+ }
+
+ static string EnsurePlayableScene()
+ {
+ var scene = EditorSceneManager.NewScene(NewSceneSetup.EmptyScene, NewSceneMode.Single);
+
+ var lightGo = new GameObject("Directional Light");
+ var light = lightGo.AddComponent();
+ light.type = LightType.Directional;
+ light.color = new Color(1f, 0.96f, 0.88f);
+ light.intensity = 1.05f;
+ light.shadows = LightShadows.Soft;
+ lightGo.transform.rotation = Quaternion.Euler(50f, -30f, 0f);
+
+ var camGo = new GameObject("Main Camera");
+ camGo.tag = "MainCamera";
+ var cam = camGo.AddComponent();
+ cam.clearFlags = CameraClearFlags.SolidColor;
+ cam.backgroundColor = new Color(0.78f, 0.88f, 0.94f);
+ cam.fieldOfView = 40f;
+ cam.nearClipPlane = 0.1f;
+ cam.farClipPlane = 80f;
+ camGo.AddComponent();
+ camGo.transform.position = new Vector3(0f, 12f, -22f);
+ camGo.transform.rotation = Quaternion.Euler(28f, 0f, 0f);
+
+ var plaza = AssetDatabase.LoadAssetAtPath(ScenePrefabPath);
+ PrefabUtility.InstantiatePrefab(plaza);
+
+ RenderSettings.ambientMode = AmbientMode.Trilight;
+ RenderSettings.ambientSkyColor = new Color(0.55f, 0.7f, 0.85f);
+ RenderSettings.ambientEquatorColor = new Color(0.5f, 0.52f, 0.48f);
+ RenderSettings.ambientGroundColor = new Color(0.35f, 0.32f, 0.28f);
+
+ EditorSceneManager.SaveScene(scene, ScenePath);
+ return ScenePath;
+ }
+
+ static string EnsureArtCollector()
+ {
+ var setting = BundleCollectorSettingData.Setting;
+ setting.ShowPackageView = true;
+ var package = setting.Packages.Find(p => p.PackageName == ArtPackage);
+ if (package == null)
+ package = BundleCollectorSettingData.CreatePackage(ArtPackage);
+
+ package.PackageDesc = "角色/场景美术";
+ package.EnableAddressable = true;
+ package.SupportExtensionless = true;
+ package.AutoCollectShaders = true;
+ package.IgnoreRuleName = nameof(NormalIgnoreRule);
+ BundleCollectorSettingData.ModifyPackage(package);
+
+ var group = package.Groups.Find(g => g.GroupName == "Scenes");
+ if (group == null)
+ group = BundleCollectorSettingData.CreateGroup(package, "Scenes");
+ group.ActiveRuleName = nameof(EnableGroup);
+ group.AssetTags = "art";
+ BundleCollectorSettingData.ModifyGroup(package, group);
+
+ const string collectPath = "Assets/Bundles/Scenes";
+ var collector = group.Collectors.Find(c => c.CollectPath == collectPath);
+ if (collector == null)
+ {
+ collector = new BundleCollector
+ {
+ CollectPath = collectPath,
+ CollectorGUID = AssetDatabase.AssetPathToGUID(collectPath),
+ CollectorType = ECollectorType.MainAssetCollector,
+ AddressRuleName = nameof(AddressByFileName),
+ PackRuleName = nameof(PackDirectory),
+ FilterRuleName = nameof(CollectAll),
+ AssetTags = "art",
+ };
+ BundleCollectorSettingData.CreateCollector(group, collector);
+ }
+ else
+ {
+ collector.CollectorGUID = AssetDatabase.AssetPathToGUID(collectPath);
+ collector.AddressRuleName = nameof(AddressByFileName);
+ collector.PackRuleName = nameof(PackDirectory);
+ collector.FilterRuleName = nameof(CollectAll);
+ BundleCollectorSettingData.ModifyCollector(group, collector);
+ }
+
+ package.CheckConfigError();
+ BundleCollectorSettingData.SaveFile();
+ return $"art collect={collectPath}";
+ }
+}
+#endif
diff --git a/AIClient/AgentScripts/FrameTownSquare.cs b/AIClient/AgentScripts/FrameTownSquare.cs
new file mode 100644
index 0000000..ad71a3d
--- /dev/null
+++ b/AIClient/AgentScripts/FrameTownSquare.cs
@@ -0,0 +1,18 @@
+using UnityEditor;
+using UnityEngine;
+
+public static class FrameTownSquare
+{
+ public static string Run()
+ {
+ SceneView.FocusWindowIfItsOpen();
+ var v = SceneView.lastActiveSceneView;
+ if (v == null && SceneView.sceneViews.Count > 0)
+ v = SceneView.sceneViews[0] as SceneView;
+ if (v == null)
+ return "no scene view";
+ v.LookAt(new Vector3(0f, 1.0f, 0.5f), Quaternion.Euler(38f, 12f, 0f), 22f);
+ v.Repaint();
+ return "framed";
+ }
+}
diff --git a/AIClient/AgentScripts/InspectTownSquare.cs b/AIClient/AgentScripts/InspectTownSquare.cs
new file mode 100644
index 0000000..afd968c
--- /dev/null
+++ b/AIClient/AgentScripts/InspectTownSquare.cs
@@ -0,0 +1,35 @@
+using System.Text;
+using UnityEngine;
+using UnityEngine.SceneManagement;
+
+public static class InspectTownSquare
+{
+ public static string Run()
+ {
+ var sb = new StringBuilder();
+ var root = GameObject.Find("TownSquare");
+ if (root == null)
+ return "no TownSquare";
+ foreach (Transform t in root.transform)
+ {
+ var b = default(Bounds);
+ var has = false;
+ foreach (var r in t.GetComponentsInChildren())
+ {
+ if (!has) { b = r.bounds; has = true; }
+ else b.Encapsulate(r.bounds);
+ }
+ var cols = t.GetComponentsInChildren().Length;
+ sb.AppendFormat(
+ "{0} pos={1} euler={2} scale={3} boundsC={4} size={5} meshCol={6}\n",
+ t.name,
+ t.position,
+ t.eulerAngles,
+ t.localScale,
+ has ? b.center : Vector3.zero,
+ has ? b.size : Vector3.zero,
+ cols);
+ }
+ return sb.ToString();
+ }
+}
diff --git a/AIClient/Assets/BundleCollectorSetting.asset b/AIClient/Assets/BundleCollectorSetting.asset
index a5d6880..b22fe73 100644
--- a/AIClient/Assets/BundleCollectorSetting.asset
+++ b/AIClient/Assets/BundleCollectorSetting.asset
@@ -60,3 +60,16 @@ MonoBehaviour:
FilterRuleName: CollectAll
AssetTags: art
UserData:
+ - GroupName: Scenes
+ GroupDesc:
+ AssetTags: art
+ ActiveRuleName: EnableGroup
+ Collectors:
+ - CollectPath: Assets/Bundles/Scenes
+ CollectorGUID: b0ed5e8d619c68a4fb7a5375f27dc6d8
+ CollectorType: 0
+ AddressRuleName: AddressByFileName
+ PackRuleName: PackDirectory
+ FilterRuleName: CollectAll
+ AssetTags: art
+ UserData:
diff --git a/AIClient/Assets/Bundles/Characters/MaleExplorer/concept.png b/AIClient/Assets/Bundles/Characters/MaleExplorer/concept.png
deleted file mode 100644
index b4891b5..0000000
Binary files a/AIClient/Assets/Bundles/Characters/MaleExplorer/concept.png and /dev/null differ
diff --git a/AIClient/Assets/Bundles/Characters/Textures.meta b/AIClient/Assets/Bundles/Characters/zhaoyun.meta
similarity index 77%
rename from AIClient/Assets/Bundles/Characters/Textures.meta
rename to AIClient/Assets/Bundles/Characters/zhaoyun.meta
index 15c7fca..7650f10 100644
--- a/AIClient/Assets/Bundles/Characters/Textures.meta
+++ b/AIClient/Assets/Bundles/Characters/zhaoyun.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 2579b7f8d4760cf479310562e005a7b4
+guid: 2a492169ea402324cb65c69fa774539b
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/AIClient/Assets/Bundles/Characters/zhaoyun/zhaoyun.glb b/AIClient/Assets/Bundles/Characters/zhaoyun/zhaoyun.glb
new file mode 100644
index 0000000..8280e50
Binary files /dev/null and b/AIClient/Assets/Bundles/Characters/zhaoyun/zhaoyun.glb differ
diff --git a/AIClient/Assets/Bundles/Characters/zhaoyun/zhaoyun.glb.meta b/AIClient/Assets/Bundles/Characters/zhaoyun/zhaoyun.glb.meta
new file mode 100644
index 0000000..dc1718a
--- /dev/null
+++ b/AIClient/Assets/Bundles/Characters/zhaoyun/zhaoyun.glb.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 23d4b07af196bbe46b8281d93f574119
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Characters/Models.meta b/AIClient/Assets/Bundles/Objects.meta
similarity index 77%
rename from AIClient/Assets/Bundles/Characters/Models.meta
rename to AIClient/Assets/Bundles/Objects.meta
index d4463bf..547471d 100644
--- a/AIClient/Assets/Bundles/Characters/Models.meta
+++ b/AIClient/Assets/Bundles/Objects.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 3bf2ea9f18173e349a1d79eadbc7b486
+guid: 9f5074b45542d8447a00910145a4ff0d
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/AIClient/Assets/Bundles/Characters/Prefabs.meta b/AIClient/Assets/Bundles/Scenes/Town.meta
similarity index 77%
rename from AIClient/Assets/Bundles/Characters/Prefabs.meta
rename to AIClient/Assets/Bundles/Scenes/Town.meta
index 3970f95..1814351 100644
--- a/AIClient/Assets/Bundles/Characters/Prefabs.meta
+++ b/AIClient/Assets/Bundles/Scenes/Town.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 0575d8260b338e84aacc3f29aab3cc72
+guid: 9f729a8fb8375d8459357197a27fc8ed
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare.meta
new file mode 100644
index 0000000..d12f775
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e087a8433113717479c10d798ca7d58a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.prefab b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.prefab
new file mode 100644
index 0000000..2906915
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.prefab
@@ -0,0 +1,1230 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &9152170130150289587
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7763301070212305587}
+ m_Layer: 0
+ m_Name: TownSquare
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &7763301070212305587
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9152170130150289587}
+ 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: 4293817592590564154}
+ - {fileID: 8441515262735298683}
+ - {fileID: 7949109967394972703}
+ - {fileID: 8720237554403338166}
+ - {fileID: 7722727046218954797}
+ - {fileID: 1224333897956492147}
+ - {fileID: 1379368979238596724}
+ - {fileID: 3356811204385584102}
+ - {fileID: 9001004293040969737}
+ - {fileID: 3496461176028689788}
+ - {fileID: 8206890212530257200}
+ - {fileID: 8142382449011867195}
+ - {fileID: 3570982630662476568}
+ - {fileID: 7864698265470887858}
+ - {fileID: 4033915300871063138}
+ - {fileID: 1152728081318508526}
+ - {fileID: 8400083889455037229}
+ - {fileID: 1431965699284209203}
+ - {fileID: 8584653561546441762}
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1001 &719836235406907081
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 8472501788905752657, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_Name
+ value: bush_board
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 6.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.58455855
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 6.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+--- !u!4 &8584653561546441762 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ m_PrefabInstance: {fileID: 719836235406907081}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &742135280312805830
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 8472501788905752657, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_Name
+ value: bush_fountain_2
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 4.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.58723086
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 1.4
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9961947
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.08715574
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+--- !u!4 &8400083889455037229 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ m_PrefabInstance: {fileID: 742135280312805830}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &1004434530219334561
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 1558007469531853167, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_Name
+ value: fountain
+ objectReference: {fileID: 0}
+ - target: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 6.1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.58903354
+ objectReference: {fileID: 0}
+ - target: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+--- !u!4 &1379368979238596724 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 2221672256238103509, guid: 9ba066298d11b474dac45a4dfa4e8a0c, type: 3}
+ m_PrefabInstance: {fileID: 1004434530219334561}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &1439615549735925081
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 8472501788905752657, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_Name
+ value: bush_bench_l2
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -4.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.5834071
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -6
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9396927
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.34202015
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+--- !u!4 &7864698265470887858 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ m_PrefabInstance: {fileID: 1439615549735925081}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &2684959409113588289
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 5971994386471821554, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_Name
+ value: lamp_back
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 2.7
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.5931935
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 6.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9961947
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.08715574
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+--- !u!4 &9001004293040969737 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ m_PrefabInstance: {fileID: 2684959409113588289}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &3405606639571946969
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.59815377
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 6.7
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.99900305
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.044642154
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5357063622626227068, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_Name
+ value: shop_back
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+--- !u!4 &7949109967394972703 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ m_PrefabInstance: {fileID: 3405606639571946969}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &3762059572758305213
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -6.3
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.5972598
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 3.4
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: -0.8587587
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.51238024
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5357063622626227068, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ propertyPath: m_Name
+ value: shop_left
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+--- !u!4 &8441515262735298683 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 4689316314336848326, guid: 910d7b88412b9c145a0bdccbc8e61ab5, type: 3}
+ m_PrefabInstance: {fileID: 3762059572758305213}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &4578848078401984664
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1105126713462880536, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ propertyPath: m_Name
+ value: ground
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+--- !u!4 &4293817592590564154 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 296641951909782434, guid: 483219c51459bb54290a72cbd4ab2973, type: 3}
+ m_PrefabInstance: {fileID: 4578848078401984664}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &5270574166931166345
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 8472501788905752657, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_Name
+ value: bush_bench_r
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 6.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.6196274
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -4.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9961947
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.08715574
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+--- !u!4 &4033915300871063138 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ m_PrefabInstance: {fileID: 5270574166931166345}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &5715386889047671283
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 8472501788905752657, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_Name
+ value: bush_bench_l1
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -6.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.63241756
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -5.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+--- !u!4 &3570982630662476568 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ m_PrefabInstance: {fileID: 5715386889047671283}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &6706111644710170049
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 5090897852391339016, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_Name
+ value: board
+ objectReference: {fileID: 0}
+ - target: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 5
+ objectReference: {fileID: 0}
+ - target: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.58773005
+ objectReference: {fileID: 0}
+ - target: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 6.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9467375
+ objectReference: {fileID: 0}
+ - target: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.3220063
+ objectReference: {fileID: 0}
+ - target: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 766282722268357408dc144817d72e7d, type: 3}
+--- !u!4 &1224333897956492147 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 5615232490997673650, guid: 766282722268357408dc144817d72e7d, type: 3}
+ m_PrefabInstance: {fileID: 6706111644710170049}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &7406613348130783644
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 481568918761005835, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_Name
+ value: tree_right
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 7.5
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.6298449
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 6.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9914449
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.1305262
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+--- !u!4 &7722727046218954797 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ m_PrefabInstance: {fileID: 7406613348130783644}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &7579264630587232052
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 5971994386471821554, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_Name
+ value: lamp_right
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 8.1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.6178468
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 1.3
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9914449
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0.1305262
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+--- !u!4 &3496461176028689788 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ m_PrefabInstance: {fileID: 7579264630587232052}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &7854509640523422936
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 8472501788905752657, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_Name
+ value: bush_fountain_3
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 7
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.59122396
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9848078
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.1736482
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+--- !u!4 &1431965699284209203 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ m_PrefabInstance: {fileID: 7854509640523422936}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &7928544030861079458
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 1488636833012782120, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_Name
+ value: bench_left
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -5.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.5858458
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -5.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: -0.3826834
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.92387956
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+--- !u!4 &8206890212530257200 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ m_PrefabInstance: {fileID: 7928544030861079458}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &8006536269741977769
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 1488636833012782120, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_Name
+ value: bench_right
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 5.6
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.6013606
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -4.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.44721365
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.8944272
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+--- !u!4 &8142382449011867195 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 2297790063208713874, guid: 26500fe63073b69458312f629cd758f8, type: 3}
+ m_PrefabInstance: {fileID: 8006536269741977769}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &8151761364449092869
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 8472501788905752657, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_Name
+ value: bush_fountain_1
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 7.4
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.6377788
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.976296
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.21643962
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+--- !u!4 &1152728081318508526 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 9142183893244744427, guid: 8be50e233ef041041be3f4ae70575d45, type: 3}
+ m_PrefabInstance: {fileID: 8151761364449092869}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &8422207491845479943
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 481568918761005835, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_Name
+ value: tree_left
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -8
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.5927529
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 5.2
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 0.9914449
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0.1305262
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+--- !u!4 &8720237554403338166 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 1001260152595036593, guid: 8f5cec98df935e04a88041ee3f2ac5a3, type: 3}
+ m_PrefabInstance: {fileID: 8422207491845479943}
+ m_PrefabAsset: {fileID: 0}
+--- !u!1001 &8592538154660252078
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 7763301070212305587}
+ m_Modifications:
+ - target: {fileID: 5971994386471821554, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_Name
+ value: lamp_front_left
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -6.4
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0.5878977
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -2.8
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: -0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+--- !u!4 &3356811204385584102 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 6461286593892710984, guid: fdc33772fdea5604abd4299d30ff0dd7, type: 3}
+ m_PrefabInstance: {fileID: 8592538154660252078}
+ m_PrefabAsset: {fileID: 0}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.prefab.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.prefab.meta
new file mode 100644
index 0000000..b053928
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d2f9f138bfd02b74789dd8208a22a87e
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.unity b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.unity
new file mode 100644
index 0000000..824efae
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.unity
@@ -0,0 +1,374 @@
+%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.55, g: 0.7, b: 0.85, a: 1}
+ m_AmbientEquatorColor: {r: 0.5, g: 0.52, b: 0.48, a: 1}
+ m_AmbientGroundColor: {r: 0.35, g: 0.32, b: 0.28, a: 1}
+ m_AmbientIntensity: 1
+ m_AmbientMode: 1
+ m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+ m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
+ m_HaloStrength: 0.5
+ m_FlareStrength: 1
+ m_FlareFadeSpeed: 3
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+ m_DefaultReflectionMode: 0
+ m_DefaultReflectionResolution: 128
+ m_ReflectionBounces: 1
+ m_ReflectionIntensity: 1
+ m_CustomReflection: {fileID: 0}
+ m_Sun: {fileID: 0}
+ m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ serializedVersion: 12
+ m_GIWorkflowMode: 1
+ m_GISettings:
+ serializedVersion: 2
+ m_BounceScale: 1
+ m_IndirectOutputScale: 1
+ m_AlbedoBoost: 1
+ m_EnvironmentLightingMode: 0
+ m_EnableBakedLightmaps: 1
+ m_EnableRealtimeLightmaps: 0
+ m_LightmapEditorSettings:
+ serializedVersion: 12
+ m_Resolution: 2
+ m_BakeResolution: 40
+ m_AtlasSize: 1024
+ m_AO: 0
+ m_AOMaxDistance: 1
+ m_CompAOExponent: 1
+ m_CompAOExponentDirect: 0
+ m_ExtractAmbientOcclusion: 0
+ m_Padding: 2
+ m_LightmapParameters: {fileID: 0}
+ m_LightmapsBakeMode: 1
+ m_TextureCompression: 1
+ m_FinalGather: 0
+ m_FinalGatherFiltering: 1
+ m_FinalGatherRayCount: 256
+ m_ReflectionCompression: 2
+ m_MixedBakeMode: 2
+ m_BakeBackend: 1
+ m_PVRSampling: 1
+ m_PVRDirectSampleCount: 32
+ m_PVRSampleCount: 512
+ m_PVRBounces: 2
+ m_PVREnvironmentSampleCount: 256
+ m_PVREnvironmentReferencePointCount: 2048
+ m_PVRFilteringMode: 1
+ m_PVRDenoiserTypeDirect: 1
+ m_PVRDenoiserTypeIndirect: 1
+ m_PVRDenoiserTypeAO: 1
+ m_PVRFilterTypeDirect: 0
+ m_PVRFilterTypeIndirect: 0
+ m_PVRFilterTypeAO: 0
+ m_PVREnvironmentMIS: 1
+ m_PVRCulling: 1
+ m_PVRFilteringGaussRadiusDirect: 1
+ m_PVRFilteringGaussRadiusIndirect: 5
+ m_PVRFilteringGaussRadiusAO: 2
+ m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+ m_PVRFilteringAtrousPositionSigmaIndirect: 2
+ m_PVRFilteringAtrousPositionSigmaAO: 1
+ m_ExportTrainingData: 0
+ m_TrainingDataDestination: TrainingData
+ m_LightProbeSampleCountMultiplier: 4
+ m_LightingDataAsset: {fileID: 0}
+ m_LightingSettings: {fileID: 0}
+--- !u!196 &4
+NavMeshSettings:
+ serializedVersion: 2
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ serializedVersion: 3
+ agentTypeID: 0
+ agentRadius: 0.5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: 0.4
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ minRegionArea: 2
+ manualCellSize: 0
+ cellSize: 0.16666667
+ manualTileSize: 0
+ tileSize: 256
+ buildHeightMesh: 0
+ maxJobWorkers: 0
+ preserveTilesOutsideBounds: 0
+ debug:
+ m_Flags: 0
+ m_NavMeshData: {fileID: 0}
+--- !u!1001 &1182938795
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 7763301070212305587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7763301070212305587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7763301070212305587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7763301070212305587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: 7763301070212305587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7763301070212305587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7763301070212305587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7763301070212305587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7763301070212305587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 7763301070212305587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 9152170130150289587, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+ propertyPath: m_Name
+ value: TownSquare
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: d2f9f138bfd02b74789dd8208a22a87e, type: 3}
+--- !u!1 &1319296323
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1319296326}
+ - component: {fileID: 1319296325}
+ - component: {fileID: 1319296324}
+ 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 &1319296324
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1319296323}
+ m_Enabled: 1
+--- !u!20 &1319296325
+Camera:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1319296323}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 2
+ m_BackGroundColor: {r: 0.78, g: 0.88, b: 0.94, a: 1}
+ 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.1
+ far clip plane: 80
+ field of view: 40
+ orthographic: 0
+ orthographic size: 5
+ m_Depth: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_TargetDisplay: 0
+ m_TargetEye: 3
+ m_HDR: 1
+ m_AllowMSAA: 1
+ m_AllowDynamicResolution: 0
+ m_ForceIntoRT: 0
+ m_OcclusionCulling: 1
+ m_StereoConvergence: 10
+ m_StereoSeparation: 0.022
+--- !u!4 &1319296326
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1319296323}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.2419219, y: 0, z: 0, w: 0.9702957}
+ m_LocalPosition: {x: 0, y: 12, z: -22}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &2073245440
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 2073245442}
+ - component: {fileID: 2073245441}
+ 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 &2073245441
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2073245440}
+ m_Enabled: 1
+ serializedVersion: 10
+ m_Type: 1
+ m_Shape: 0
+ m_Color: {r: 1, g: 0.96, b: 0.88, a: 1}
+ m_Intensity: 1.05
+ 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: 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_UseViewFrustumForShadowCasterCull: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+--- !u!4 &2073245442
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 2073245440}
+ serializedVersion: 2
+ m_LocalRotation: {x: 0.40821794, y: -0.23456973, z: 0.10938166, w: 0.8754261}
+ 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!1660057539 &9223372036854775807
+SceneRoots:
+ m_ObjectHideFlags: 0
+ m_Roots:
+ - {fileID: 2073245442}
+ - {fileID: 1319296326}
+ - {fileID: 1182938795}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.unity.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.unity.meta
new file mode 100644
index 0000000..1298af0
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.unity.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f540d06f45f292a42bf64f9378311ef0
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench.meta
new file mode 100644
index 0000000..e055730
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 96e53e34f52eb074b8ab562a6b83ca79
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.fbx b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.fbx
new file mode 100644
index 0000000..46f5a88
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.fbx differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.fbx.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.fbx.meta
new file mode 100644
index 0000000..916a9d1
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.fbx.meta
@@ -0,0 +1,114 @@
+fileFormatVersion: 2
+guid: 226566fab2d64da2add0f480326ea0f7
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: bench
+ second: {fileID: 2100000, guid: 55230c5f30ea4d29b076ad7d47473768, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 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: 2
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.mat b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.mat
new file mode 100644
index 0000000..3faa4ba
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.mat
@@ -0,0 +1,43 @@
+%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: bench
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: fd1b81c49178493496127fb1c4f4349d, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: c897eeeae69f45dea81f6f9622934804, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.mat.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.mat.meta
new file mode 100644
index 0000000..f01a702
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 55230c5f30ea4d29b076ad7d47473768
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.prefab b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.prefab
new file mode 100644
index 0000000..15b2171
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.prefab
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &1759177502062225785
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 1.7928138
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 1.7928138
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 1.7928138
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
+ propertyPath: m_Name
+ value: bench
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 226566fab2d64da2add0f480326ea0f7, type: 3}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.prefab.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.prefab.meta
new file mode 100644
index 0000000..ba553ce
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 26500fe63073b69458312f629cd758f8
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_base.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_base.png
new file mode 100644
index 0000000..e8de7ce
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_base.png differ
diff --git a/AIClient/Assets/Bundles/Characters/MaleExplorer/concept.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_base.png.meta
similarity index 94%
rename from AIClient/Assets/Bundles/Characters/MaleExplorer/concept.png.meta
rename to AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_base.png.meta
index d01f9e5..2c91207 100644
--- a/AIClient/Assets/Bundles/Characters/MaleExplorer/concept.png.meta
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_base.png.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 9cc915e55ce2c8945ba546d42029a5be
+guid: fd1b81c49178493496127fb1c4f4349d
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
@@ -31,7 +31,7 @@ TextureImporter:
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
- maxTextureSize: 2048
+ maxTextureSize: 1024
textureSettings:
serializedVersion: 2
filterMode: 1
@@ -69,7 +69,7 @@ TextureImporter:
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
- maxTextureSize: 2048
+ maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@@ -82,7 +82,7 @@ TextureImporter:
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
- maxTextureSize: 2048
+ maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@@ -95,7 +95,7 @@ TextureImporter:
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: iPhone
- maxTextureSize: 2048
+ maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@@ -108,7 +108,7 @@ TextureImporter:
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
- maxTextureSize: 2048
+ maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@@ -121,7 +121,7 @@ TextureImporter:
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
- maxTextureSize: 2048
+ maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_mix.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_mix.png
new file mode 100644
index 0000000..e4b6fae
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_mix.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_mix.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_mix.png.meta
new file mode 100644
index 0000000..b5f551a
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/bench_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: c897eeeae69f45dea81f6f9622934804
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board.meta
new file mode 100644
index 0000000..b2083a4
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7a37f641be7059e4aa061c123d58ad5e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.fbx b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.fbx
new file mode 100644
index 0000000..2474863
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.fbx differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.fbx.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.fbx.meta
new file mode 100644
index 0000000..637d601
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.fbx.meta
@@ -0,0 +1,114 @@
+fileFormatVersion: 2
+guid: 2f1665ece9e74a84bc219d29feb8c479
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: board
+ second: {fileID: 2100000, guid: 48215abcd83d4be78bf763ddbd8bf5b9, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 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: 2
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.mat b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.mat
new file mode 100644
index 0000000..eb02211
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.mat
@@ -0,0 +1,43 @@
+%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: board
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: edb2761cf05c48f4979fdb48a2ceecf4, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: 3895a530acae4babb5e4640e6e4c9391, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.mat.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.mat.meta
new file mode 100644
index 0000000..56f85d2
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 48215abcd83d4be78bf763ddbd8bf5b9
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.prefab b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.prefab
new file mode 100644
index 0000000..1cbbc67
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.prefab
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &5361510404161309017
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 2.9276035
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 2.9276035
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 2.9276035
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
+ propertyPath: m_Name
+ value: board
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 2f1665ece9e74a84bc219d29feb8c479, type: 3}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.prefab.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.prefab.meta
new file mode 100644
index 0000000..19fa992
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 766282722268357408dc144817d72e7d
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_base.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_base.png
new file mode 100644
index 0000000..dcc6148
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_base.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_base.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_base.png.meta
new file mode 100644
index 0000000..44fa0df
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_base.png.meta
@@ -0,0 +1,153 @@
+fileFormatVersion: 2
+guid: edb2761cf05c48f4979fdb48a2ceecf4
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: WebGL
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_mix.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_mix.png
new file mode 100644
index 0000000..709d9af
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_mix.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_mix.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_mix.png.meta
new file mode 100644
index 0000000..93526d3
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/board_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 3895a530acae4babb5e4640e6e4c9391
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush.meta
new file mode 100644
index 0000000..7ebbba4
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9d1e2ef118d495147a7507afd81f5b5a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.fbx b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.fbx
new file mode 100644
index 0000000..b0647b5
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.fbx differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.fbx.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.fbx.meta
new file mode 100644
index 0000000..851293f
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.fbx.meta
@@ -0,0 +1,114 @@
+fileFormatVersion: 2
+guid: eb5252e1abad43c4997f02c745ab54a5
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: bush
+ second: {fileID: 2100000, guid: 859a730b4c2e47509b323df9aa67ff48, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 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: 2
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.mat b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.mat
new file mode 100644
index 0000000..d0703f9
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.mat
@@ -0,0 +1,43 @@
+%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: bush
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 540b11023a16465daf769198ab0605e4, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: fafff3b99b2a4abdb19435873668b77d, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.mat.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.mat.meta
new file mode 100644
index 0000000..c47c84c
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 859a730b4c2e47509b323df9aa67ff48
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.prefab b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.prefab
new file mode 100644
index 0000000..e61b382
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.prefab
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &8742954369250227456
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 1.366722
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 1.366722
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 1.366722
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
+ propertyPath: m_Name
+ value: bush
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: eb5252e1abad43c4997f02c745ab54a5, type: 3}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.prefab.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.prefab.meta
new file mode 100644
index 0000000..9bd58eb
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8be50e233ef041041be3f4ae70575d45
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_base.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_base.png
new file mode 100644
index 0000000..c2e5f57
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_base.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_base.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_base.png.meta
new file mode 100644
index 0000000..5789c3d
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_base.png.meta
@@ -0,0 +1,153 @@
+fileFormatVersion: 2
+guid: 540b11023a16465daf769198ab0605e4
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: WebGL
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_mix.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_mix.png
new file mode 100644
index 0000000..4a9b7a4
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_mix.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_mix.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_mix.png.meta
new file mode 100644
index 0000000..9fe20f3
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/bush_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: fafff3b99b2a4abdb19435873668b77d
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain.meta
new file mode 100644
index 0000000..6c22bf4
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9718b42be3f495b48a0bb76634613af8
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.fbx b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.fbx
new file mode 100644
index 0000000..7fa4bb4
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.fbx differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.fbx.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.fbx.meta
new file mode 100644
index 0000000..b3be0a9
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.fbx.meta
@@ -0,0 +1,114 @@
+fileFormatVersion: 2
+guid: 6c96e775588a46d1a79bbc57503c5342
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: fountain
+ second: {fileID: 2100000, guid: bcfd4e6476794bc1b6ed06f5fcadd94e, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 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: 2
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.mat b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.mat
new file mode 100644
index 0000000..df7af27
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.mat
@@ -0,0 +1,43 @@
+%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: fountain
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 553d63347e0347fd87d8f793e938c2d0, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: 1ef97907d7854d19bc5c09129b09244a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.mat.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.mat.meta
new file mode 100644
index 0000000..050d236
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bcfd4e6476794bc1b6ed06f5fcadd94e
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.prefab b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.prefab
new file mode 100644
index 0000000..81fef92
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.prefab
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &1827984639006133310
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 4.449792
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 4.449792
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 4.449792
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
+ propertyPath: m_Name
+ value: fountain
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 6c96e775588a46d1a79bbc57503c5342, type: 3}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.prefab.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.prefab.meta
new file mode 100644
index 0000000..fa2d794
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 9ba066298d11b474dac45a4dfa4e8a0c
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_base.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_base.png
new file mode 100644
index 0000000..fa59420
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_base.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_base.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_base.png.meta
new file mode 100644
index 0000000..59f649c
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_base.png.meta
@@ -0,0 +1,153 @@
+fileFormatVersion: 2
+guid: 553d63347e0347fd87d8f793e938c2d0
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: WebGL
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_mix.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_mix.png
new file mode 100644
index 0000000..6f60679
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_mix.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_mix.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_mix.png.meta
new file mode 100644
index 0000000..598c554
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/fountain_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 1ef97907d7854d19bc5c09129b09244a
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground.meta
new file mode 100644
index 0000000..2b072df
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 1e63427267c80684fbe388230b4a9e73
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.fbx b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.fbx
new file mode 100644
index 0000000..19be66d
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.fbx differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.fbx.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.fbx.meta
new file mode 100644
index 0000000..b03314c
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.fbx.meta
@@ -0,0 +1,114 @@
+fileFormatVersion: 2
+guid: b390ab0d88514e4bbfd4958f51381630
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: ground
+ second: {fileID: 2100000, guid: c68e560375d04856a2ee162b8191dc96, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 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: 1
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 2
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.mat b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.mat
new file mode 100644
index 0000000..f2e7dde
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.mat
@@ -0,0 +1,43 @@
+%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: ground
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: d90020924f924727afbba0cbf1f39ffc, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: 2ae033e6268d4109a410ed17ff6d1495, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.mat.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.mat.meta
new file mode 100644
index 0000000..5337659
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c68e560375d04856a2ee162b8191dc96
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.prefab b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.prefab
new file mode 100644
index 0000000..f9bab0f
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.prefab
@@ -0,0 +1,101 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &258775790675739721
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 21.102217
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 21.102217
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 21.102217
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ propertyPath: m_Name
+ value: ground
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents:
+ - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 3957376469491048071}
+ m_SourcePrefab: {fileID: 100100000, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+--- !u!1 &1105126713462880536 stripped
+GameObject:
+ m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
+ m_PrefabInstance: {fileID: 258775790675739721}
+ m_PrefabAsset: {fileID: 0}
+--- !u!64 &3957376469491048071
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1105126713462880536}
+ m_Material: {fileID: 0}
+ m_IncludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_ExcludeLayers:
+ serializedVersion: 2
+ m_Bits: 0
+ m_LayerOverridePriority: 0
+ m_IsTrigger: 0
+ m_ProvidesContacts: 0
+ m_Enabled: 1
+ serializedVersion: 5
+ m_Convex: 0
+ m_CookingOptions: 30
+ m_Mesh: {fileID: -3920555075548088813, guid: b390ab0d88514e4bbfd4958f51381630, type: 3}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.prefab.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.prefab.meta
new file mode 100644
index 0000000..68537b0
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 483219c51459bb54290a72cbd4ab2973
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_base.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_base.png
new file mode 100644
index 0000000..48d3374
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_base.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_base.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_base.png.meta
new file mode 100644
index 0000000..89bae42
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_base.png.meta
@@ -0,0 +1,153 @@
+fileFormatVersion: 2
+guid: d90020924f924727afbba0cbf1f39ffc
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: WebGL
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_mix.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_mix.png
new file mode 100644
index 0000000..63f6615
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_mix.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_mix.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_mix.png.meta
new file mode 100644
index 0000000..9f109d0
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/ground_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 2ae033e6268d4109a410ed17ff6d1495
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp.meta
new file mode 100644
index 0000000..1c0dab1
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 417b00084214c7348bb42bd40a51f5b0
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.fbx b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.fbx
new file mode 100644
index 0000000..7e827ac
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.fbx differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.fbx.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.fbx.meta
new file mode 100644
index 0000000..07a42fc
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.fbx.meta
@@ -0,0 +1,114 @@
+fileFormatVersion: 2
+guid: ff5acbe2307d447498be0bbe355379a2
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: lamp
+ second: {fileID: 2100000, guid: 4b0b81bb411e4e039ce2e6465f3451ec, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 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: 2
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.mat b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.mat
new file mode 100644
index 0000000..51239f7
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.mat
@@ -0,0 +1,43 @@
+%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: lamp
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: be30cac86190498b80056e9674c9f2ea, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: a9b52565251c4340bb32866ec397c2d8, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.mat.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.mat.meta
new file mode 100644
index 0000000..b47eac4
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4b0b81bb411e4e039ce2e6465f3451ec
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.prefab b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.prefab
new file mode 100644
index 0000000..454bbce
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.prefab
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &6782879058465824163
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 3.0233471
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 3.0233471
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 3.0233471
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
+ propertyPath: m_Name
+ value: lamp
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: ff5acbe2307d447498be0bbe355379a2, type: 3}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.prefab.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.prefab.meta
new file mode 100644
index 0000000..525001e
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: fdc33772fdea5604abd4299d30ff0dd7
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_base.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_base.png
new file mode 100644
index 0000000..4cce96b
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_base.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_base.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_base.png.meta
new file mode 100644
index 0000000..26bb034
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_base.png.meta
@@ -0,0 +1,153 @@
+fileFormatVersion: 2
+guid: be30cac86190498b80056e9674c9f2ea
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: WebGL
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_mix.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_mix.png
new file mode 100644
index 0000000..cc72625
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_mix.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_mix.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_mix.png.meta
new file mode 100644
index 0000000..1225a6a
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/lamp_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: a9b52565251c4340bb32866ec397c2d8
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop.meta
new file mode 100644
index 0000000..646dd9a
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 440a2a706b61a49469cca11764000473
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.fbx b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.fbx
new file mode 100644
index 0000000..dd070c4
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.fbx differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.fbx.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.fbx.meta
new file mode 100644
index 0000000..79a65a2
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.fbx.meta
@@ -0,0 +1,114 @@
+fileFormatVersion: 2
+guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: shop
+ second: {fileID: 2100000, guid: 2a414afe20754afeb9dac51f39b5ad66, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 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: 2
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.mat b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.mat
new file mode 100644
index 0000000..17feb35
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.mat
@@ -0,0 +1,43 @@
+%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: shop
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: a0a548d530b24caab5da0cf358c3e03d, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: 3944b80257f14402a5b19ee022deabbb, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.mat.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.mat.meta
new file mode 100644
index 0000000..14ff344
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2a414afe20754afeb9dac51f39b5ad66
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.prefab b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.prefab
new file mode 100644
index 0000000..5be4659
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.prefab
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &5087226080524275245
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 7.5466785
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 7.5466785
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 7.5466785
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
+ propertyPath: m_Name
+ value: shop
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e, type: 3}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.prefab.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.prefab.meta
new file mode 100644
index 0000000..1f1c444
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 910d7b88412b9c145a0bdccbc8e61ab5
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_base.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_base.png
new file mode 100644
index 0000000..3fbd02a
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_base.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_base.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_base.png.meta
new file mode 100644
index 0000000..ffaea2f
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_base.png.meta
@@ -0,0 +1,153 @@
+fileFormatVersion: 2
+guid: a0a548d530b24caab5da0cf358c3e03d
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: WebGL
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_mix.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_mix.png
new file mode 100644
index 0000000..e848684
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_mix.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_mix.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_mix.png.meta
new file mode 100644
index 0000000..56fb958
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/shop_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 3944b80257f14402a5b19ee022deabbb
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree.meta
new file mode 100644
index 0000000..42840f0
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 358adbacca30231438e68a2a02dfc8eb
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.fbx b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.fbx
new file mode 100644
index 0000000..1b612d6
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.fbx differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.fbx.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.fbx.meta
new file mode 100644
index 0000000..329f8be
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.fbx.meta
@@ -0,0 +1,114 @@
+fileFormatVersion: 2
+guid: 7efa4251f48c424da9b7ede1a8b28ddf
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: tree
+ second: {fileID: 2100000, guid: b7aba4b7bc7842c2a137e14bf8c5946c, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 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: 2
+ addColliders: 0
+ useSRGBMaterialColor: 1
+ sortHierarchyByName: 1
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.mat b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.mat
new file mode 100644
index 0000000..5f9b258
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.mat
@@ -0,0 +1,43 @@
+%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: tree
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: ef36f5faaa2643bdabd30c5e5d2033b8, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: a1aad368ce7e44cbb2872bcc89ab34cd, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.mat.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.mat.meta
new file mode 100644
index 0000000..5e3154f
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b7aba4b7bc7842c2a137e14bf8c5946c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.prefab b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.prefab
new file mode 100644
index 0000000..f153756
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.prefab
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1001 &751971054847745626
+PrefabInstance:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ serializedVersion: 3
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalScale.x
+ value: 5.1825867
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalScale.y
+ value: 5.1825867
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalScale.z
+ value: 5.1825867
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: 1
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.y
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: -8679921383154817045, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_LocalEulerAnglesHint.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 919132149155446097, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
+ propertyPath: m_Name
+ value: tree
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_RemovedGameObjects: []
+ m_AddedGameObjects: []
+ m_AddedComponents: []
+ m_SourcePrefab: {fileID: 100100000, guid: 7efa4251f48c424da9b7ede1a8b28ddf, type: 3}
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.prefab.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.prefab.meta
new file mode 100644
index 0000000..469ead9
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 8f5cec98df935e04a88041ee3f2ac5a3
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_base.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_base.png
new file mode 100644
index 0000000..7c4f3ed
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_base.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_base.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_base.png.meta
new file mode 100644
index 0000000..99ca150
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_base.png.meta
@@ -0,0 +1,153 @@
+fileFormatVersion: 2
+guid: ef36f5faaa2643bdabd30c5e5d2033b8
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: iPhone
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: WebGL
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Android
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_mix.png b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_mix.png
new file mode 100644
index 0000000..a6a92e2
Binary files /dev/null and b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_mix.png differ
diff --git a/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_mix.png.meta b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_mix.png.meta
new file mode 100644
index 0000000..d5cf39f
--- /dev/null
+++ b/AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/tree_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: a1aad368ce7e44cbb2872bcc89ab34cd
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/HotUpdate/Scripts/CharacterSpawner.cs b/AIClient/Assets/HotUpdate/Scripts/CharacterSpawner.cs
index c80e4c1..ec158ed 100644
--- a/AIClient/Assets/HotUpdate/Scripts/CharacterSpawner.cs
+++ b/AIClient/Assets/HotUpdate/Scripts/CharacterSpawner.cs
@@ -67,11 +67,11 @@ namespace HotUpdate
_instance = Instantiate(prefab);
_instance.name = "MaleExplorer_Runtime";
- var y = _instance.transform.position.y;
- _instance.transform.position = new Vector3(0f, y, 2.5f);
+ var plaza = GameObject.Find("TownSquare_Runtime");
+ var y = GroundSit.Height(Vector3.zero, plaza != null ? plaza.transform : null);
+ _instance.transform.position = new Vector3(0f, y, 0f);
DontDestroyOnLoad(_instance);
- // 仅对概念图 Billboard 子节点做朝向;真 3D 网格不要转,否则会拧成纸片
var billboardTf = _instance.transform.Find("Billboard");
if (billboardTf != null && Camera.main != null)
{
@@ -82,8 +82,7 @@ namespace HotUpdate
billboardTf.rotation = Quaternion.LookRotation(-dir.normalized);
}
- // 调整主相机看向角色(竖屏)
- if (Camera.main != null)
+ if (GameObject.Find("TownSquare_Runtime") == null && Camera.main != null)
{
var cam = Camera.main;
cam.transform.position = new Vector3(0f, 1.2f, -2.2f);
diff --git a/AIClient/Assets/HotUpdate/Scripts/Gameplay/GameplayBootstrap.cs b/AIClient/Assets/HotUpdate/Scripts/Gameplay/GameplayBootstrap.cs
index 0d68641..29caf5c 100644
--- a/AIClient/Assets/HotUpdate/Scripts/Gameplay/GameplayBootstrap.cs
+++ b/AIClient/Assets/HotUpdate/Scripts/Gameplay/GameplayBootstrap.cs
@@ -28,6 +28,14 @@ namespace HotUpdate.Gameplay
WireNet();
MaybeShowBootNotice();
+ var plaza = gameObject.AddComponent();
+ plaza.Bind(_ctx);
+ StartCoroutine(SpawnWorld(plaza));
+ }
+
+ System.Collections.IEnumerator SpawnWorld(TownSquareSpawner plaza)
+ {
+ yield return plaza.SpawnCo();
var spawner = gameObject.AddComponent();
spawner.Bind(_ctx);
spawner.Spawn();
diff --git a/AIClient/Assets/HotUpdate/Scripts/GroundSit.cs b/AIClient/Assets/HotUpdate/Scripts/GroundSit.cs
new file mode 100644
index 0000000..08b7626
--- /dev/null
+++ b/AIClient/Assets/HotUpdate/Scripts/GroundSit.cs
@@ -0,0 +1,64 @@
+using UnityEngine;
+
+namespace HotUpdate
+{
+ ///
+ /// 用地表 MeshCollider 的碰撞高度作为放置 Y。原点在底面中点的物件直接用该值。
+ ///
+ public static class GroundSit
+ {
+ const float RayStartY = 80f;
+ const float RayLength = 160f;
+
+ public static float Height(Vector3 xz, Transform searchRoot = null, float fallback = 0f)
+ {
+ Physics.SyncTransforms();
+ var ray = new Ray(new Vector3(xz.x, RayStartY, xz.z), Vector3.down);
+ var bestDist = float.MaxValue;
+ var y = fallback;
+ var hitAny = false;
+
+ foreach (var col in Collect(searchRoot))
+ {
+ if (col == null || !col.enabled) continue;
+ if (!IsGroundCollider(col)) continue;
+ if (!col.Raycast(ray, out var hit, RayLength)) continue;
+ if (hit.distance >= bestDist) continue;
+ bestDist = hit.distance;
+ y = hit.point.y;
+ hitAny = true;
+ }
+
+ if (hitAny) return y;
+
+ foreach (var col in Collect(searchRoot))
+ {
+ if (col == null || !col.enabled) continue;
+ if (!col.Raycast(ray, out var hit, RayLength)) continue;
+ if (hit.distance >= bestDist) continue;
+ bestDist = hit.distance;
+ y = hit.point.y;
+ hitAny = true;
+ }
+
+ return hitAny ? y : fallback;
+ }
+
+ static MeshCollider[] Collect(Transform searchRoot)
+ {
+ if (searchRoot != null)
+ return searchRoot.GetComponentsInChildren();
+ return Object.FindObjectsByType(FindObjectsSortMode.None);
+ }
+
+ static bool IsGroundCollider(MeshCollider col)
+ {
+ for (var t = col.transform; t != null; t = t.parent)
+ {
+ if (t.name.IndexOf("ground", System.StringComparison.OrdinalIgnoreCase) >= 0)
+ return true;
+ }
+ return false;
+ }
+ }
+}
diff --git a/AIClient/Assets/HotUpdate/Scripts/GroundSit.cs.meta b/AIClient/Assets/HotUpdate/Scripts/GroundSit.cs.meta
new file mode 100644
index 0000000..12bd92f
--- /dev/null
+++ b/AIClient/Assets/HotUpdate/Scripts/GroundSit.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 64eb3db5d5ad0e54e97d931d86a31bbb
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/AIClient/Assets/HotUpdate/Scripts/TownSquareSpawner.cs b/AIClient/Assets/HotUpdate/Scripts/TownSquareSpawner.cs
new file mode 100644
index 0000000..40c4c9e
--- /dev/null
+++ b/AIClient/Assets/HotUpdate/Scripts/TownSquareSpawner.cs
@@ -0,0 +1,67 @@
+using System.Collections;
+using AOT.Boot;
+using UnityEngine;
+using YooAsset;
+
+namespace HotUpdate
+{
+ ///
+ /// 加载小镇广场环境,供角色站在广场中央。
+ ///
+ public sealed class TownSquareSpawner : MonoBehaviour
+ {
+ public const string PrefabAddress = "TownSquare";
+ public const string EditorPrefabPath = "Assets/Bundles/Scenes/Town/TownSquare/TownSquare.prefab";
+ public const string ArtPackageName = "Art";
+
+ BootContext _ctx;
+ GameObject _instance;
+
+ public void Bind(BootContext ctx) => _ctx = ctx;
+
+ public IEnumerator SpawnCo()
+ {
+ GameObject prefab = null;
+
+ if (YooAssets.IsInitialized && YooAssets.TryGetPackage(ArtPackageName, out var art) &&
+ art.InitializeStatus == EOperationStatus.Succeeded)
+ {
+ var handle = art.LoadAssetAsync(PrefabAddress);
+ yield return handle;
+ if (handle.Status == EOperationStatus.Succeeded)
+ prefab = handle.GetAssetObject();
+ else
+ handle.Release();
+ }
+
+#if UNITY_EDITOR
+ if (prefab == null)
+ prefab = UnityEditor.AssetDatabase.LoadAssetAtPath(EditorPrefabPath);
+#endif
+
+ if (prefab == null)
+ {
+ Debug.LogError("[TownSquareSpawner] TownSquare prefab not found");
+ yield break;
+ }
+
+ if (_instance != null)
+ Destroy(_instance);
+
+ _instance = Instantiate(prefab);
+ _instance.name = "TownSquare_Runtime";
+ DontDestroyOnLoad(_instance);
+
+ if (Camera.main != null)
+ {
+ var cam = Camera.main;
+ cam.transform.position = new Vector3(0f, 12f, -22f);
+ cam.transform.rotation = Quaternion.Euler(28f, 0f, 0f);
+ cam.fieldOfView = 40f;
+ cam.backgroundColor = new Color(0.78f, 0.88f, 0.94f);
+ }
+
+ Debug.Log($"[TownSquareSpawner] spawned ok res={_ctx?.ResVersion}");
+ }
+ }
+}
diff --git a/AIClient/Assets/HotUpdate/Scripts/TownSquareSpawner.cs.meta b/AIClient/Assets/HotUpdate/Scripts/TownSquareSpawner.cs.meta
new file mode 100644
index 0000000..2898c06
--- /dev/null
+++ b/AIClient/Assets/HotUpdate/Scripts/TownSquareSpawner.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 561555ac8c9a26a498a4416023b2810e
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Agents.md b/Agents.md
index 55cc1d4..9959a08 100644
--- a/Agents.md
+++ b/Agents.md
@@ -16,7 +16,9 @@
- sound → `Doc/ResDesc_Sound.md`
- effect → `Doc/ResDesc_Effect.md`
-2. **UI 自动生成(必须)**:业务面板走 JSON→Prefab,禁止用运行时代码临时拼业务 UI 骨架替代 Prefab。
+2. **3D 游戏网格**:导出 FBX 为 Y-up、原点在底面中点、局部 **-Z 为正面**。摆放时 -Z 朝向目标。细则见 [GameResProductProc.md](GameResProductProc.md) 附录 B。
+
+3. **UI 自动生成(必须)**:业务面板走 JSON→Prefab,禁止用运行时代码临时拼业务 UI 骨架替代 Prefab。
- 总览:`Doc/UI_AutoGen_Overview.md`
- JSON 目录:`Doc/UIPrefabCreater/`
- Prefab 输出:`AIClient/Assets/Bundles/UI/Prefab/`
diff --git a/Doc/Design/Character/CaoCao/caocao.png b/Doc/Design/Character/CaoCao/caocao.png
new file mode 100644
index 0000000..71aadbc
Binary files /dev/null and b/Doc/Design/Character/CaoCao/caocao.png differ
diff --git a/Doc/Design/Scene/TownSquare/bench.png b/Doc/Design/Scene/TownSquare/bench.png
new file mode 100644
index 0000000..86e3e77
Binary files /dev/null and b/Doc/Design/Scene/TownSquare/bench.png differ
diff --git a/Doc/Design/Scene/TownSquare/board.png b/Doc/Design/Scene/TownSquare/board.png
new file mode 100644
index 0000000..f861b61
Binary files /dev/null and b/Doc/Design/Scene/TownSquare/board.png differ
diff --git a/Doc/Design/Scene/TownSquare/bush.png b/Doc/Design/Scene/TownSquare/bush.png
new file mode 100644
index 0000000..b76ed72
Binary files /dev/null and b/Doc/Design/Scene/TownSquare/bush.png differ
diff --git a/Doc/Design/Scene/TownSquare/fountain.png b/Doc/Design/Scene/TownSquare/fountain.png
new file mode 100644
index 0000000..0919eca
Binary files /dev/null and b/Doc/Design/Scene/TownSquare/fountain.png differ
diff --git a/Doc/Design/Scene/TownSquare/ground.png b/Doc/Design/Scene/TownSquare/ground.png
new file mode 100644
index 0000000..9bf9e24
Binary files /dev/null and b/Doc/Design/Scene/TownSquare/ground.png differ
diff --git a/Doc/Design/Scene/TownSquare/lamp.png b/Doc/Design/Scene/TownSquare/lamp.png
new file mode 100644
index 0000000..292735e
Binary files /dev/null and b/Doc/Design/Scene/TownSquare/lamp.png differ
diff --git a/Doc/Design/Scene/TownSquare/shop.png b/Doc/Design/Scene/TownSquare/shop.png
new file mode 100644
index 0000000..60a6cc0
Binary files /dev/null and b/Doc/Design/Scene/TownSquare/shop.png differ
diff --git a/Doc/Design/Scene/TownSquare/town_square.png b/Doc/Design/Scene/TownSquare/town_square.png
new file mode 100644
index 0000000..9608e38
Binary files /dev/null and b/Doc/Design/Scene/TownSquare/town_square.png differ
diff --git a/Doc/Design/Scene/TownSquare/tree.png b/Doc/Design/Scene/TownSquare/tree.png
new file mode 100644
index 0000000..d705ad4
Binary files /dev/null and b/Doc/Design/Scene/TownSquare/tree.png differ
diff --git a/Doc/Design/UI/Casual/casual_ui.png b/Doc/Design/UI/Casual/casual_ui.png
new file mode 100644
index 0000000..ba3a4a5
Binary files /dev/null and b/Doc/Design/UI/Casual/casual_ui.png differ
diff --git a/Doc/ResDesc_Model.md b/Doc/ResDesc_Model.md
index 8d1bd27..7e99218 100644
--- a/Doc/ResDesc_Model.md
+++ b/Doc/ResDesc_Model.md
@@ -2,14 +2,27 @@
3D 模型及相关烘焙贴图。每条包含:路径、简要说明。
-约定:游戏用角色放在 `AIClient/Assets/Bundles/Characters/{ActorName}/`(YooAsset Art / `PackDirectory`)。
+约定:
+- 角色:`AIClient/Assets/Bundles/Characters/{ActorName}/`
+- 场景分件:`AIClient/Assets/Bundles/Scenes/{类型}/{场景号}/{英文短名}/`
| 资源路径 | 简要说明 |
| --- | --- |
+| `AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.prefab` | 小镇广场拼装体;Pipeline `BuildTownSquare.Run`;运行时地址 `TownSquare`;物件 Y 取地表碰撞高度 |
+| `AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.unity` | 可进游戏的广场场景(相机约 28° 俯斜 + 方向光) |
+| `AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground/` | 广场地表;减面 800;XPbr;Prefab 带非凸 MeshCollider |
+| `AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop/` | 红顶店铺;减面 1797;XPbr |
+| `AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree/` | 树;减面 1498;XPbr |
+| `AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp/` | 路灯;减面 500;XPbr |
+| `AIClient/Assets/Bundles/Scenes/Town/TownSquare/board/` | 告示牌;减面 800;XPbr |
+| `AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain/` | 两层喷泉;减面 1798;XPbr |
+| `AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench/` | 长椅;减面 699;XPbr |
+| `AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush/` | 灌木花箱;collapse 卡住后体素重网格,减面 436;XPbr |
+| `Tools/output/townsquare_3d/` | TownSquare 混元高模 GLB(不进 Bundle) |
+| `Tools/output/townsquare_game/` | TownSquare 减面/烘焙中间输出(不进 Bundle) |
| `AIClient/Assets/Bundles/Characters/MaleExplorer/` | 角色 MaleExplorer 目录(寻址 Prefab=`MaleExplorer`) |
| `…/MaleExplorer.fbx` | 混元高模减面低模(约 5k tris) |
| `…/MaleExplorer_*.png` | color / normal / ao / metallic / roughness 烘焙贴图 |
-| `…/concept.png` | 图生3D 概念参考图 |
| `…/MaleExplorer.prefab` | 运行时加载 Prefab(菜单 `AIGame/M3/Setup Character…` 生成) |
| `Tools/output/male_explorer_3d/male_explorer.glb` | 混元高模中间件(不进 Bundle) |
| `Tools/output/male_explorer_game/` | 减面/烘焙中间输出(不进 Bundle) |
diff --git a/Doc/ResDesc_Picture.md b/Doc/ResDesc_Picture.md
index e0f5bb8..0fece3d 100644
--- a/Doc/ResDesc_Picture.md
+++ b/Doc/ResDesc_Picture.md
@@ -4,6 +4,17 @@
| 资源路径 | 简要说明 |
| --- | --- |
+| `Doc/Design/UI/Casual/casual_ui.png` | 轻松休闲竖屏 UI 设计图;gpt-image-2.5、`--aspect-ratio 9:16`、实测 940×1672、参考 `Doc/Design/ui_design.jpg`、纯白底 |
+| `Doc/Design/Scene/TownSquare/town_square.png` | 简单小镇广场总览设计图(多人活动空地);gpt-image-2.5、`1:1`、实测 1254×1254、纯白底 |
+| `Doc/Design/Scene/TownSquare/ground.png` | TownSquare 分件·地表;gpt-image-2.5、`1:1`、1254×1254、参考总览、纯白底 |
+| `Doc/Design/Scene/TownSquare/shop.png` | TownSquare 分件·店铺(红顶代表);gpt-image-2.5、`1:1`、1254×1254、参考总览、纯白底 |
+| `Doc/Design/Scene/TownSquare/tree.png` | TownSquare 分件·树;gpt-image-2.5、`1:1`、1254×1254、参考总览、纯白底 |
+| `Doc/Design/Scene/TownSquare/lamp.png` | TownSquare 分件·路灯;gpt-image-2.5、`2:3`、1024×1536、参考总览、纯白底 |
+| `Doc/Design/Scene/TownSquare/board.png` | TownSquare 分件·告示牌;gpt-image-2.5、`1:1`、1254×1254、参考总览、纯白底 |
+| `Doc/Design/Scene/TownSquare/fountain.png` | TownSquare 分件·喷泉(两层,对齐总览);gpt-image-2.5、`1:1`、1254×1254、参考总览、纯白底 |
+| `Doc/Design/Scene/TownSquare/bench.png` | TownSquare 分件·长椅;gpt-image-2.5、`1:1`、1254×1254、参考总览、纯白底 |
+| `Doc/Design/Scene/TownSquare/bush.png` | TownSquare 分件·灌木花箱;gpt-image-2.5、`1:1`、1254×1254、参考总览、纯白底 |
+| `Doc/Design/Character/CaoCao/caocao.png` | 轻科幻曹操全身设计图,正面 T Pose;gpt-image-2.5、`2:3`、实测 1024×1536、纯白底 |
| `Tools/output/ui_simple_atlas_gpt.png` | UI Simple Set 图集;gpt-image-2.5 + 参考 `Doc/ui_design.jpg`;约 1254×1254;对应 `Doc/UI_Simple_Set.md` |
| `Tools/output/ui_normal_atlas_gpt.png` | UI Normal Set 图集;gpt-image-2-vip、2048×2048、透明底 + 参考图;对应 `Doc/UI_Normal_Set.md` |
| `AIClient/Assets/Bundles/UI/Texture/Common/*.png` | Normal 图集切出的 **38** 张 Common 单图;脚本 `Tools/slice_ui_normal_atlas.py` |
@@ -11,7 +22,7 @@
| `AIClient/Assets/Bundles/UI/Font/siyuan_CN_Bold SDF.asset` | TMP 动态 SDF 字体资源;JSON→Prefab 默认使用;菜单 `Tools/UI/Ensure SiYuan TMP Font Asset` |
| `Tools/output/male_explorer_test.png` | 男性探险者角色试做;项目文生图脚本 |
| `Tools/output/male_explorer_cursor.png` | 男性探险者对照;Cursor GenerateImage |
-| `AIClient/Assets/Bundles/Characters/MaleExplorer/concept.png` | MaleExplorer 概念图(进角色目录) |
+| `Tools/output/male_explorer_test.png` | 男性探险者角色试做;项目文生图脚本 |
| `AIClient/Assets/Bundles/Characters/MaleExplorer/MaleExplorer_*.png` | 低模烘焙贴图(color/normal/ao/metallic/roughness) |
| `Doc/ui_design.jpg` | UI 视觉基准图;糖果休闲风控件参考(`Doc/Design/ui_design.jpg` 为同内容副本) |
| `Doc/UI_AutoGen_Overview.md` | UI 自动生成方案总览(JSON→Prefab + 图集) |
diff --git a/GameResProductProc.md b/GameResProductProc.md
new file mode 100644
index 0000000..17fe2b3
--- /dev/null
+++ b/GameResProductProc.md
@@ -0,0 +1,288 @@
+# 游戏资源生产流程
+
+> 本文说明游戏内各类资源从设计到入库的生产步骤。
+> 工具用法见 [`ResourceCreate.md`](ResourceCreate.md)。生成完成后必须登记 [`Doc/ResDesc.md`](Doc/ResDesc.md) 对应分册,未登记视为流程未完成。
+
+当前状态:**框架已立**。各条的细化与实跑验证按文末清单逐条进行;标「待细化」的条目只保留步骤骨架,不写未经验证的命令。
+
+---
+
+## 0. 总则
+
+1. **画图**一律走项目画图方案(见附录 A)。设计图、UI 原图、序列帧、粒子贴图的生成底为**纯白**。
+2. **3D**一律走 3D 模型生成流程(见附录 B)。面数是减面后的游戏用三角面,不是混元高模面数。游戏 FBX:**Y-up**、原点在**底面中点**、局部 **-Z 为正面**(设计图朝向相机的那面)。摆放时正面朝向目标,不要按 Unity 默认 +Z forward。
+3. **中间件**放 `Tools/output/`,不进正式包。**游戏用资源**放 `AIClient/Assets/Bundles/` 对应目录。
+4. **设计原稿**放 `Doc/Design/{类型}/{名称}/`,**不要拷进** `AIClient/`。`{类型}` 与下文各大类对应(如 `Scene`、`Character`、`UI`、`Weapon`、`Prop`、`Effect`)。
+5. **英文名称**用于 Bundle 目录与文件名:帕斯卡或既有角色名风格均可,目录内保持一致,不含空格与中文。
+6. **确认点**写在步骤里的,必须等人确认后再进入下一步。
+7. **Unity 操作**一律走 Unity Pipeline(`unity command …`),见 [`UNITY-GUIDE.md`](UNITY-GUIDE.md) 与 `unity-pipeline` 技能。不要用 Unity MCP;场景、Prefab、材质、导入设置、以及 `Assets/` 下文件的移动/重命名/删除,都通过 Pipeline 完成。
+
+| 登记 | 文件 |
+| --- | --- |
+| 图、设计原稿、UI 切图 | `Doc/ResDesc_Picture.md` |
+| 模型、贴图、Prefab | `Doc/ResDesc_Model.md` |
+| 动画 | `Doc/ResDesc_Animation.md` |
+| 特效 | `Doc/ResDesc_Effect.md` |
+| 音乐、音效 | `Doc/ResDesc_Sound.md` |
+
+---
+
+## 一、2D 资源
+
+### 1. 设计图
+
+状态:已跑通。样例为轻松休闲 UI、小镇广场、轻科幻曹操(2026-09-28)。
+
+1. 用 `Tools/gpt_image_generate.py` 出图。默认模型 `gpt-image-2.5`,`--quality high`。背景写进提示词:纯白 `#FFFFFF`,不要场景底、渐变和纸纹。
+2. 比例用字符串,不要自己传大于 1K 的像素。本次实测映射为:
+
+| 用途 | `--aspect-ratio` | 实测尺寸 |
+| --- | --- | --- |
+| 竖屏 UI | `9:16` | 940×1672 |
+| 场景总览 | `1:1` | 1254×1254 |
+| 全身角色 | `2:3` | 1024×1536 |
+
+3. 需要锁已有风格时加 `-i` 参考图。UI 样例参考 `Doc/Design/ui_design.jpg`。
+4. 原稿放到 `Doc/Design/{类型}/{名称}/`,文件名用英文。本次:
+
+| 类型 | 路径 |
+| --- | --- |
+| UI | `Doc/Design/UI/Casual/casual_ui.png` |
+| Scene | `Doc/Design/Scene/TownSquare/town_square.png` |
+| Character | `Doc/Design/Character/CaoCao/caocao.png` |
+
+5. 检查四角 RGB。接近 255(本次均 ≥253)即视为纯白通过。
+6. 在 `Doc/ResDesc_Picture.md` 登记路径、用途、模型与尺寸。
+
+角色若接着走 3D,设计图按人物条目画成正面 T Pose、双手空、全身入画。本次曹操已按此出图。
+
+本条产出不进 `Bundles`。场景总览画出后先归纳物件类型(10 种以内)等人确认,再进入分件。
+
+```bash
+python Tools/gpt_image_generate.py --result-only --quality high --aspect-ratio 9:16 -i Doc/Design/ui_design.jpg -o Doc/Design/UI/Casual/casual_ui.png -p "..."
+python Tools/gpt_image_generate.py --result-only --quality high --aspect-ratio 1:1 -o Doc/Design/Scene/TownSquare/town_square.png -p "..."
+python Tools/gpt_image_generate.py --result-only --quality high --aspect-ratio 2:3 -o Doc/Design/Character/CaoCao/caocao.png -p "..."
+```
+
+### 2. UI 图
+
+状态:待细化。切图与 Sprite 导入已有样例(`Doc/UI_Normal_Set.md`、`Tools/slice_ui_normal_atlas.py`、`Assets/Bundles/UI/Texture/Common/`),新风格组件仍按本条重走一遍并核对。
+
+1. 参考既有 UI 范例图,用项目画图方案绘制新的风格组件图,背景纯白。
+ - 视觉基准:`Doc/Design/ui_design.jpg`、`Doc/Design/UI_Design_Principles.md`。
+ - 范例图集:`Doc/UI_Simple_Set.md`、`Doc/UI_Normal_Set.md`。
+ - 原稿放到 `Doc/Design/UI/{名称}/`。
+2. 把组件图拆成单张图。
+3. 导入 Unity,贴图类型改为 **Sprite (2D and UI)**。
+ - 落点:`AIClient/Assets/Bundles/UI/Texture/Common/`(或该套组件的子目录)。
+ - 现有 Common 图:`spriteMode: 1`(Single),`textureType: 8`(Sprite),`spritePixelsToUnits: 100`,关闭 Mip Map。
+4. 业务界面仍走 JSON→Prefab,见 `Doc/UI_AutoGen_Overview.md`。不要用运行时代码拼业务 UI。
+5. 登记 `Doc/ResDesc_Picture.md`。
+
+---
+
+## 二、3D 资源
+
+### 1. 场景
+
+状态:a / b / c / d 已用 `TownSquare` 跑通。
+
+**a. 整体设计图(需确认)**
+
+1. 用项目画图方案绘制整场景设计图(样例:`Doc/Design/Scene/TownSquare/town_square.png`)。
+2. 从设计图归纳场景物件类型,**控制在 10 种以内**(含地表计 1 种)。
+3. **停在这里等人确认**类型清单与整体设计图。未确认不画组件、不生成模型。
+4. 原稿放到 `Doc/Design/Scene/{场景号}/`。
+
+`TownSquare` 已确认 8 类:地表、店铺、树、路灯、告示牌、喷泉、长椅、灌木花箱。
+
+**b. 分件设计图**
+
+确认后,总览图作 `-i` 参考,一类一张、单件、纯白底、3/4 视角。文件放在 `Doc/Design/Scene/{场景号}/`,英文短名:
+
+| 类型 | 文件 |
+| --- | --- |
+| 地表 | `ground.png` |
+| 店铺 | `shop.png` |
+| 树 | `tree.png` |
+| 路灯 | `lamp.png` |
+| 告示牌 | `board.png` |
+| 喷泉 | `fountain.png` |
+| 长椅 | `bench.png` |
+| 灌木花箱 | `bush.png` |
+
+提示词约束:只画该类型一件,不要把总览里的其它物件带进来。分件必须对齐总览(本次喷泉第一次出成三层,已按总览改回两层)。比例默认 `1:1`;瘦高件(路灯)用 `2:3`。四角纯白检查同「一.1」。登记 `Doc/ResDesc_Picture.md`。
+
+```bash
+python Tools/gpt_image_generate.py --result-only --quality high --aspect-ratio 1:1 -i Doc/Design/Scene/TownSquare/town_square.png -o Doc/Design/Scene/TownSquare/{name}.png -p "..."
+```
+
+**c. 生成模型并入库**
+
+1. 分件设计图逐一走附录 B:混元 `--faces 50k` → `model_lowpoly_bake.py --tris <目标> --size 1024`。
+2. 减面后面数 **300~2000**。`TownSquare` 取值:地表 800、店铺 1800、树 1500、路灯 500、告示牌 800、喷泉 1800、长椅 700、灌木 500。
+3. 碎叶类(灌木)普通 collapse 会卡在约 2 万面;减面脚本在超差且仍高于目标 2 倍时改用**体素重网格**回退。本次灌木最终 **436** 面。
+4. 校验 GLB 文件头须为 `glTF`,且**内嵌贴图能解码**(`hunyuan_3d.glb_check`)。中断拷贝可能得到全 0 文件;贴图 CRC 损坏时 Blender 当缺贴图处理,颜色烘焙会出品红(路灯曾中招)。
+5. 最终资源放到 `AIClient/Assets/Bundles/Scenes/{类型}/{场景号}/{英文短名}/`,含 `{名}.fbx`、`{名}_base.png`、`{名}_mix.png`、`{名}.mat`。设计图留在 `Doc/Design/Scene/{场景号}/`,不进 Unity。
+ - 样例:`AIClient/Assets/Bundles/Scenes/Town/TownSquare/{ground,shop,tree,lamp,board,fountain,bench,bush}/`
+6. 高模与烘焙中间件留在 `Tools/output/townsquare_3d/`、`Tools/output/townsquare_game/`。编排脚本:`Tools/output/run_townsquare_pipeline.py`。
+7. 登记 `Doc/ResDesc_Model.md`。
+
+**d. 摆场景(可进游戏)**
+
+状态:已用 `TownSquare` 跑通(Unity Pipeline)。
+
+1. 所有 Unity 操作走 Pipeline:`unity command run_script --file AgentScripts/BuildTownSquare.cs --entry BuildTownSquare.Run`。
+2. 每个分件做成 Prefab(缩放、XPbr),再拼 `TownSquare.prefab`。游戏 FBX 与混元 GLB 同为 Y-up,原点在底面中点,**正面为局部 -Z**。地表 Prefab 加非凸 **MeshCollider**(FBX Read/Write 打开以便烹饪)。其它物件水平位置按总览图 L 形,**Y 用地表碰撞高度**(从上往下打到 MeshCollider)。店铺/告示牌/长椅的 **-Z 朝向广场中心**。只有红顶店网格,两座店共用。运行时角色同样用 `GroundSit` 贴地。
+3. 可编辑场景:`AIClient/Assets/Bundles/Scenes/Town/TownSquare/TownSquare.unity`(主相机 + 方向光 + 广场实例)。
+4. 运行时由 `TownSquareSpawner` 按地址 `TownSquare` 加载 Prefab(YooAsset Art;编辑器走 AssetDatabase)。`GameplayBootstrap` 先摆广场再刷角色。
+5. Art 收集增加 `Assets/Bundles/Scenes`(`PackDirectory` / `AddressByFileName`)。
+
+`TownSquare` 实测三角面:ground 800、shop 1797、tree 1498、lamp 500、board 800、fountain 1798、bench 699、bush 436。
+
+### 2. 角色
+
+#### A. 人物角色
+
+状态:待细化。工具链已在 MaleExplorer 上跑通过(`Doc/ResDesc_Model.md`);本条按新目录与约 3000 面重核。
+
+1. 参照风格图绘制设计图:**T Pose**,背景纯白。
+2. 原稿放到 `Doc/Design/Character/{英文名称}/`。
+3. 设计图走附录 B,减面后约 **3000** 面。
+4. 最终资源放到 `AIClient/Assets/Bundles/Characters/{类型}/{英文名称}/`。
+5. 登记 `Doc/ResDesc_Model.md` 与 `Doc/ResDesc_Picture.md`。
+
+既有 `Characters/MaleExplorer/` 是早期平铺目录,新角色按 `{类型}/{英文名称}` 存放。
+
+#### B. 非人角色
+
+状态:待细化。
+
+步骤骨架与人物相同(风格图 → 纯白设计图 → 附录 B → 入库 → 登记)。差异留到细化时写明:姿势、面数、`{类型}` 取值、是否需要与人形共用骨骼。
+
+### 3. 动画
+
+状态:待细化。仓库尚无入库的动画生产脚本,本节不预设工具。
+
+#### A. 人形角色动画
+
+骨架:动作列表确认 → 生成或导入剪辑 → 绑定到对应角色 → 放到该角色目录或统一动画目录 → 登记 `Doc/ResDesc_Animation.md`。
+
+#### B. 非人角色动画
+
+骨架同上。与人形是否共用动作、是否单独绑定,细化时确定。
+
+### 4. 独立物件
+
+状态:待细化。生产走附录 B;**入库目录细化时确定**(本框架不先占一个未使用的 Bundle 路径)。
+
+#### A. 武器
+
+骨架:纯白设计图 `Doc/Design/Weapon/{英文名称}/` → 附录 B → 入库 → 登记 Model / Picture。
+
+#### B. 道具
+
+骨架:纯白设计图 `Doc/Design/Prop/{英文名称}/` → 附录 B → 入库 → 登记 Model / Picture。
+
+面数在细化时按物件尺度定,默认参照场景组件的 300~2000,不默认使用角色的 3000。
+
+### 5. 特效
+
+用户提纲里本条与「独立物件」同为第 4 点,流程文档中改为第 5 点。
+
+#### A. 序列帧动画
+
+状态:待细化。
+
+1. 用项目画图方案生成 **4×4** 序列帧,画布 **1024×1024**,背景纯白。
+2. 整图缩小为 **256×256**。
+3. 在 Unity 中做成 Particle 特效供游戏使用。
+4. 图片、Prefab 及相关资源全部放到 `AIClient/Assets/Bundles/Effects/{英文名称}/`。
+5. 登记 `Doc/ResDesc_Effect.md`(序列帧图可同时在 Picture 记一笔)。
+
+#### B. 粒子动画
+
+状态:待细化。
+
+1. 用项目画图方案生成粒子图,画布 **1024×1024**,背景纯白。
+2. 缩小为 **128×128**。
+3. 在 Unity 中做成 Particle 特效供游戏使用。
+4. 图片、Prefab 及相关资源全部放到 `AIClient/Assets/Bundles/Effects/{英文名称}/`。
+5. 登记 `Doc/ResDesc_Effect.md`。
+
+---
+
+## 三、声音资源
+
+状态:待细化。仓库尚无入库的音频生成脚本,本节不预设工具。
+
+### 1. 音乐
+
+骨架:确定用途与时长 → 生成或导入 → 放到声音 Bundle 目录 → 登记 `Doc/ResDesc_Sound.md`。目录在细化时确定。
+
+### 2. 音效
+
+骨架同上,与音乐分开登记。
+
+---
+
+## 附录 A. 项目画图方案
+
+节点说明与命令见 [`ResourceCreate.md`](ResourceCreate.md)「文/图生图」。
+
+- 脚本:`Tools/gpt_image_generate.py`
+- 边长 ≤1024(含 `1024×1024`):默认模型 `gpt-image-2.5`
+- 任一边 >1024:必须用 `gpt-image-2-vip`,并传像素尺寸(如 `2048x2048`),不要用 `"16:9"` 这类比例字符串
+- 需要锁风格时用图生图(`--image` / JSON `image`),参考图为对应风格图或 UI 范例图
+- 本流程额外约束:**背景纯白**。写进提示词,出图后目视确认,不把灰底、场景底直接交给切图或图生 3D
+
+### 出图尺寸(与上文条目对应)
+
+| 用途 | 尺寸 | 模型 |
+| --- | --- | --- |
+| 设计图 | 见「一.1」:UI `9:16`、场景 `1:1`、角色 `2:3`(比例字符串,默认模型) | 默认模型 |
+| UI 组件图集(沿用现有图集) | `2048×2048` | VIP |
+| 序列帧 | 先 `1024×1024`(4×4),再缩到 `256×256` | 默认模型 |
+| 粒子图 | 先 `1024×1024`,再缩到 `128×128` | 默认模型 |
+
+缩小在细化时写成固定步骤(脚本或图像工具二选一,选定后写回本节)。
+
+---
+
+## 附录 B. 3D 模型生成流程
+
+节点说明见 [`ResourceCreate.md`](ResourceCreate.md)「腾讯混元 3D」与「高模减面与贴图烘焙」。调用方只改面数、输出目录和登记类型。
+
+```text
+纯白设计图
+ → 混元图生 3D(Tools/hunyuan_3d_generate.py)→ GLB 高模
+ → 减面 + 烘焙 + XPbr(Tools/model_tools/model_lowpoly_bake.py)
+ → 安装到对应 Bundles 目录
+ → 登记 Doc/ResDesc_*.md
+```
+
+- 混元面数档:`--faces 50k|500k|1m`(默认 `50k`)。这是高模档,不是游戏面数。
+- 游戏面数用 `--tris` 控制。场景组件 / 地表:**300~2000**。人物:约 **3000**。
+- 高模与烘焙中间件留在 `Tools/output/`。
+- 角色安装可参考:`Tools/install_character_bundles.py`。场景分件:拷到 `Bundles/Scenes/{类型}/{场景号}/{英文短名}/`(`Tools/output/run_townsquare_pipeline.py`)。设计原稿不进 Bundles。
+- 碎叶等非流形:`bl_decimate.py` 在 collapse 卡住后会体素重网格再减面。
+- 轴向:混元 GLB = glTF Y-up。烘焙在 Blender 里用 Z-up;**导出 FBX 时** `prepare_game_export` 转回 Y-up,原点放在**底面中点**。**局部 -Z 是正面**(设计图朝相机的那面,与 glTF 相机看向 -Z 一致)。Unity 摆放用「-Z 指向目标」,不要用 `LookRotation` 默认的 +Z forward,也不要再绕 X 扶正或抬高度。
+- 角色 Prefab:Unity 菜单 `AIGame/M3/Setup Character Prefab`。其他类型的 Prefab 步骤在细化时写明。
+
+---
+
+## 细化验证清单
+
+按表从上到下逐条做。一条通过(步骤可重复执行、路径与登记写回本文)后再做下一条。
+
+| 顺序 | 条目 | 验证时要写回本文的内容 |
+| --- | --- | --- |
+| 1 | 一.1 设计图 | 已写回:比例与实测尺寸、三张样例路径、四角纯白检查 |
+| 2 | 一.2 UI 图 | 参考图、拆单图步骤、Sprite 导入参数、与 JSON→Prefab 的衔接 |
+| 3 | 二.1 场景 | a/b/c/d 已写回:TownSquare 分件入库、拼装 Prefab/场景、运行时加载 |
+| 4 | 二.2.A 人物 | 按约 3000 面与 `{类型}/{英文名称}` 重跑或核对 MaleExplorer 差异 |
+| 5 | 二.2.B 非人角色 | 姿势、面数、骨骼、目录 |
+| 6 | 二.3 动画 | 人形 / 非人各自的生成与绑定方式 |
+| 7 | 二.4 独立物件 | 武器与道具的面数和 Bundle 目录 |
+| 8 | 二.5 特效 | 缩小步骤、序列帧切格、Particle Prefab 做法 |
+| 9 | 三 声音 | 音乐与音效的生成方式和目录 |
diff --git a/GameResourceProduct.md b/GameResourceProduct.md
new file mode 100644
index 0000000..d4f23c0
--- /dev/null
+++ b/GameResourceProduct.md
@@ -0,0 +1,401 @@
+# 游戏资源生产流程
+
+> 文档状态:**框架已完成,逐条细化与验证中**
+> 适用项目:AIGame(Unity、竖屏、YooAsset)
+> 关联规范:[`ResourceCreate.md`](ResourceCreate.md)、[`UNITY-GUIDE.md`](UNITY-GUIDE.md)、[`Doc/ResDesc.md`](Doc/ResDesc.md)
+
+## 1. 文档目标与使用方式
+
+本文规定游戏资源从需求、设计图、生成、处理、Unity 导入、验收,到资源登记和发布的统一流程。本文先固定流程骨架;带有“待确认”“待验证”的项目,在实际生产前逐条补齐,并在验收记录中留下结论。
+
+每个资源都必须经过以下状态:
+
+```text
+需求单
+ → 设计图 / 参考图
+ → AI 或 DCC 生成
+ → 格式、尺寸、面数、贴图处理
+ → Unity 导入与组装
+ → 功能、视觉、性能验收
+ → Doc/ResDesc_*.md 登记
+ → YooAsset 打包 / 发布
+```
+
+### 1.1 角色分工(框架)
+
+| 角色 | 主要责任 | 必须产出 |
+| --- | --- | --- |
+| 需求 / 设计 | 用途、风格、规格、引用图、验收标准 | 资源需求单、参考图 |
+| 资源制作 | 设计图、模型、贴图、动画、音频或特效源文件 | 可编辑源文件与中间产物 |
+| Unity 集成 | 导入设置、Prefab、场景组装、粒子参数、播放配置 | Unity 资产 |
+| 验收 | 检查视觉、规格、运行效果、性能和命名 | 验收记录、问题清单 |
+| 资源维护 | 登记路径、生成方式、版本和依赖 | `Doc/ResDesc_*.md` 条目 |
+
+### 1.2 统一门禁
+
+| 门禁 | 检查内容 | 未通过时 |
+| --- | --- | --- |
+| G0 需求 | 用途、类型、中文名、英文名、目标路径明确 | 退回补需求 |
+| G1 设计 | 风格、构图、尺寸、背景、参考图符合要求 | 退回重绘 |
+| G2 生成 | 使用项目规定的生成工具或 DCC 流程,有源文件 | 补齐工具和源文件 |
+| G3 处理 | 格式、面数、贴图、命名、目录符合本表 | 重新处理 |
+| G4 Unity | 导入设置正确,Prefab / 场景 / Animator / Particle 可用 | 在 Unity 中修复并复验 |
+| G5 验收 | 运行效果、性能和目标平台通过 | 记录问题并回到对应步骤 |
+| G6 登记 | `Doc/ResDesc_*.md` 已记录用途、路径、生成方式 | 不得进入正式 Bundle |
+
+## 2. 目录、命名与版本约定
+
+### 2.1 目录约定
+
+| 内容 | 路径 | 状态 |
+| --- | --- | --- |
+| 设计图、参考图 | `Doc/Design/{类型}/{名称}/` | 已确定 |
+| 临时源文件和中间文件 | `TempResource/` 或 `Tools/output/` | 已确定;不直接进入 Bundle |
+| UI 生成 JSON | `Doc/UIPrefabCreater/{界面名}.json` | 已确定 |
+| UI 单图 / 图集 | `AIClient/Assets/Bundles/UI/Texture/Common/` 或业务子目录 | 已确定 |
+| UI Prefab | `AIClient/Assets/Bundles/UI/Prefab/` | 已确定 |
+| 场景资源 | `AIClient/Assets/Bundles/Scenes/{类型}/{场景号}/` | 已确定 |
+| 角色资源 | `AIClient/Assets/Bundles/Characters/{类型}/{英文名称}/` | 已确定 |
+| 特效资源 | `AIClient/Assets/Bundles/Effects/{英文名称}/` | 已确定 |
+| 武器、道具 | `AIClient/Assets/Bundles/Items/{类型}/{英文名称}/` | **暂定,待确认** |
+| 音乐、音效 | `AIClient/Assets/Bundles/Audio/{类型}/{英文名称}/` | **暂定,待确认** |
+
+移动、重命名或删除 `AIClient/Assets/` 下已有资源时遵循 [`UNITY-GUIDE.md`](UNITY-GUIDE.md),通过 Unity Pipeline 操作,不手改 `.meta` 文件。
+
+### 2.2 命名约定
+
+- 中文名称用于需求和设计目录;英文名称用于 Unity 资产、Prefab、动画片段和运行时寻址。
+- 英文名称只使用 `A-Z`、`a-z`、数字和下划线;同一资源全流程保持一致。
+- 目录名、Prefab 名、主模型名、主贴图名和登记名应能互相对应。
+- 版本建议采用 `名称_v主版本.次版本`;正式资源的版本号由项目版本策略最终确认。
+- 设计源文件、导出文件、中间文件和 Bundle 成品应区分存放,避免把中间文件误收集进 YooAsset。
+
+### 2.3 资源登记矩阵
+
+| 资源类型 | 登记文件 | 至少记录 |
+| --- | --- | --- |
+| 2D 设计图、UI 图、贴图、参考图 | [`Doc/ResDesc_Picture.md`](Doc/ResDesc_Picture.md) | 路径、用途、生成方式、尺寸或图集信息 |
+| 3D 场景、角色、武器、道具、模型贴图 | [`Doc/ResDesc_Model.md`](Doc/ResDesc_Model.md) | 路径、用途、生成方式、面数、配套资源 |
+| 人形 / 非人形动画 | [`Doc/ResDesc_Animation.md`](Doc/ResDesc_Animation.md) | 路径、绑定对象、片段清单、生成方式 |
+| 序列帧 / 粒子特效 | [`Doc/ResDesc_Effect.md`](Doc/ResDesc_Effect.md) | 路径、粒子预设、贴图规格、生成方式 |
+| 音乐 / 音效 | [`Doc/ResDesc_Sound.md`](Doc/ResDesc_Sound.md) | 路径、用途、格式、时长、生成方式 |
+
+**登记是 G6 门禁的一部分。** 本文新增流程不会替代资源登记文件;实际产出完成后必须同时更新对应登记表。
+
+## 3. 通用生产卡(每个资源一份)
+
+在开始制作前建立一张生产卡,可放在对应的 `Doc/Design/{类型}/{名称}/` 目录中。字段如下:
+
+```text
+资源 ID:
+中文名称:
+英文名称:
+资源类型:
+用途 / 使用场景:
+风格参考:
+输入设计图 / 参考图:
+生成工具与版本:
+源文件路径:
+中间文件路径:
+Unity 成品路径:
+规格预算(尺寸 / 面数 / 时长 / 帧数):
+依赖资源:
+验收人:
+状态:G0 / G1 / G2 / G3 / G4 / G5 / G6
+问题与待确认项:
+```
+
+## 4. 一、2D 资源
+
+### 4.1 设计图
+
+**目标**:为 UI、场景、角色、物件和特效提供统一的风格设计依据。
+
+#### 流程
+
+1. 明确资源用途、视角、构图、尺寸和使用平台。
+2. 读取项目画图方案并选定生成模型、提示词和参考图。工具用法遵循 [`ResourceCreate.md`](ResourceCreate.md)。
+3. 使用项目画图方案绘制,背景保持纯白;如后续用途要求透明通道,单独导出透明版本,不能用白底文件直接代替。
+4. 将源图、导出图和生产卡保存到 `Doc/Design/{类型}/{名称}/`。
+5. 通过 G1 设计验收后,才能作为 3D、UI 或特效生成输入。
+
+#### 设计图验收
+
+- [ ] 主体完整、比例和视角符合用途。
+- [ ] 风格与项目参考图一致,并记录引用文件。
+- [ ] 背景为纯白;透明版本(如需要)另行检查 Alpha。
+- [ ] 文件尺寸、色彩空间和导出格式已写入生产卡。
+- [ ] 文件名、目录名和资源 ID 一致。
+
+**待确认**:各资源类型的标准分辨率、源文件格式、是否必须保留可编辑图层。
+
+### 4.2 UI 图
+
+**目标**:生成可复用的风格组件图,并在 Unity 中转换为 Sprite UI 资源。
+
+#### 流程
+
+1. 参考现有 UI 范例图和项目风格文件:`Doc/Design/ui_design.jpg`、`Doc/UI_Simple_Set.md`、`Doc/UI_Normal_Set.md`、`Doc/UI_Pic_Set.md`。
+2. 使用项目画图方案绘制新的风格组件图,初稿背景纯白;需要运行时透明的组件另导出带 Alpha 的版本。
+3. 将组件拆成单一图,建立单图名称、用途和九宫格信息清单。若保留图集,则按对应图集文档记录切片坐标。
+4. 将单图或图集导入 `AIClient/Assets/Bundles/UI/Texture/Common/` 或业务子目录。
+5. Unity 导入设置:`Texture Type = Sprite (2D and UI)`;单图使用 `Sprite Mode = Single`,图集使用 `Multiple`;`Mesh Type = Full Rect`;按项目规范选择过滤和压缩。
+6. 业务面板必须建立 `Doc/UIPrefabCreater/{界面名}.json`,通过 JSON→Prefab 生成 `AIClient/Assets/Bundles/UI/Prefab/{界面名}.prefab`,不能用运行时代码临时拼业务 UI 骨架。
+7. UI 设计分辨率固定为竖屏 `[1080, 1920]`;文字控件使用 TextMeshPro,节点使用英文命名。
+8. 通过 Unity 检查九宫格、锚点、透明边缘、不同分辨率适配和交互态,再登记图片资源。
+
+#### UI 图验收
+
+- [ ] 与现有 UI 风格一致,组件边缘和圆角无明显接缝。
+- [ ] 单图名称与清单、JSON 和代码引用一致。
+- [ ] Sprite 类型、模式、Full Rect、过滤、压缩和 Alpha 设置正确。
+- [ ] 9-slice 的 Border 已在 Sprite Editor 中验证;图标类不误设九宫格。
+- [ ] 业务 Prefab 来源于 JSON,分辨率为 `[1080,1920]`。
+- [ ] 已在 `Doc/ResDesc_Picture.md` 登记图集、单图或设计图。
+
+**待确认**:各 UI 组件的标准尺寸、是否统一使用白底源图、公共图集与业务图集的拆分策略。
+
+## 5. 二、3D 资源
+
+### 5.1 场景
+
+#### A. 整体场景设计图
+
+1. 收集关卡功能、相机、路线、部署区和风格参考。
+2. 参照风格图绘制整体设计图,标出地表、建筑、机关、装饰和交互区域。
+3. 整体场景中的物件类型控制在 **10 种以内**,同时列出类型编号、用途、复用关系和数量预估。
+4. 在 G1 提交整体设计图和物件类型清单,等待确认;未确认前不进入批量建模。
+
+交付物:整体设计图、物件类型表、场景号、相机 / 尺度说明、确认记录。
+
+#### B. 场景组件与地表设计图
+
+1. 按整体设计图逐一拆出场景各类型组件和地表模块。
+2. 每个组件绘制正视图、侧视图或必要的尺寸标注;背景纯白。
+3. 地表设计图应标明拼接边、可行走区域、碰撞或阻挡区域,以及重复使用方式。
+4. 为每个组件分配英文名称和类型编号,保存到 `Doc/Design/Scene/{场景号}/{类型}/`(目录大小写以项目最终约定为准)。
+
+交付物:组件设计图、地表设计图、尺寸 / 枢轴说明、组件清单。
+
+#### C. 3D 模型生成与 Unity 集成
+
+1. 将组件和地表设计图逐一送入项目 3D 模型生成流程:图生 3D、低模处理、UV、贴图烘焙和格式导出,具体命令遵循 [`ResourceCreate.md`](ResourceCreate.md)。
+2. 游戏成品的目标面数为 **300–2,000**;“面数”统计口径(面 / 三角面、是否包含碰撞体)必须在验收前确认并记录。
+3. 完成材质、贴图、碰撞、枢轴、缩放和 LOD(如需要)处理。
+4. 将最终模型、贴图、材质、Prefab 和场景配套资源放入:
+
+ `AIClient/Assets/Bundles/Scenes/{类型}/{场景号}/`
+
+5. 在 Unity 中验证拼接、光照、相机可见性、碰撞、批次 / 内存和移动端表现。
+6. 通过 G5 后登记 `Doc/ResDesc_Model.md`;中间 GLB、减面和烘焙目录留在 `Tools/output/` 或 `TempResource/`,不进入正式 Bundle。
+
+#### 场景验收
+
+- [ ] 整体设计图已确认,物件类型不超过 10 种或有书面例外。
+- [ ] 每种组件与地表都有独立设计图和资源 ID。
+- [ ] 面数落在 300–2,000 目标内,统计口径已记录。
+- [ ] UV、贴图、材质、碰撞、枢轴和缩放正确。
+- [ ] 场景可在目标设备档位运行,无明显穿插、漏面、紫材质或拼接缝。
+- [ ] 最终资源路径和模型登记已完成。
+
+**待确认**:场景类型命名、场景号格式、地表模块尺寸、碰撞体规则、LOD 档位和面数统计工具。
+
+### 5.2 角色
+
+#### A. 人物角色
+
+1. 参照风格图绘制角色设计图,采用 **T Pose**,背景纯白;正面、侧面和关键装备应清晰可见。
+2. 通过项目图生 3D、减面、UV 和贴图烘焙流程生成模型。
+3. 游戏角色模型目标约 **3,000 面**;面数口径和是否包含配件需在验收时记录。
+4. 角色、贴图、材质、Prefab、骨骼和概念图放入:
+
+ `AIClient/Assets/Bundles/Characters/{类型}/{英文名称}/`
+
+5. 通过 Unity 验证骨骼、材质、比例、T Pose、Animator 绑定和目标平台性能。
+6. 完成后登记 `Doc/ResDesc_Model.md`;动画另登记 `Doc/ResDesc_Animation.md`。
+
+#### B. 非人角色
+
+1. 先确定体型、移动方式、攻击方式、骨骼需求和是否需要飞行 / 多足 / 触手等特殊结构。
+2. 按对应动作姿态绘制设计图;若需要建模对照,背景纯白,并提供关键视图。
+3. 走与人物角色相同的图生 3D、低模、UV、烘焙和 Unity 验收流程;面数预算按角色类型单独记录,不能直接套用人物预算。
+4. 最终目录沿用:`AIClient/Assets/Bundles/Characters/{类型}/{英文名称}/`。
+
+**待确认**:非人角色的标准姿态、骨骼模板、面数预算、动画重定向策略和飞行单位的碰撞规则。
+
+### 5.3 动画
+
+动画资源与绑定对象一起评审,避免模型完成后才发现骨骼或动作缺失。默认建议将动画放在角色目录下:
+
+`AIClient/Assets/Bundles/Characters/{类型}/{英文名称}/Animations/`(**目录方案待确认**)
+
+#### A. 人形角色动画
+
+1. 确认骨骼 / Avatar、单位比例和根节点规则。
+2. 建立动作清单:待机、移动、攻击、受击、死亡、技能、胜利 / 失败等,按实际角色裁剪。
+3. 统一片段命名、循环设置、Root Motion 规则和 Animator 状态机参数。
+4. 在 Unity 中验证过渡、循环首尾、脚底滑动、攻击事件和技能时序。
+
+#### B. 非人角色动画
+
+1. 按移动方式和攻击方式建立动作清单,覆盖多足、飞行、爬行或特殊肢体。
+2. 验证根骨骼、碰撞体、寻路方向和攻击判定点与动画同步。
+3. 特殊动画不能假设可直接重定向到人形 Avatar,应在生产卡中写明绑定方式。
+
+#### 动画验收与登记
+
+- [ ] 所有片段可在目标 Animator 中播放。
+- [ ] 循环、速度、过渡、Root Motion 和事件经过实机或模拟验证。
+- [ ] 片段清单、帧率、时长、绑定对象和路径已登记。
+- [ ] 生成方式和源文件可追溯。
+
+## 6. 三、独立物件
+
+独立物件沿用场景 / 角色的 3D 生成、低模、UV、烘焙和 Unity 验收流程;若物件需要动画或特效,按相应章节追加门禁。
+
+### 6.1 武器
+
+- 先确定持握点、尺寸、攻击方向、挂点和角色 / 机关兼容关系。
+- 设计图应标注正面、侧面、关键结构和材质区域;背景纯白。
+- 模型需验证 Pivot、缩放、碰撞、材质和挂点;武器若独立寻址,使用英文名称。
+- 暂定成品路径:`AIClient/Assets/Bundles/Items/Weapons/{英文名称}/`。
+
+### 6.2 道具
+
+- 先确定拾取、摆放、交互、破坏或掉落状态。
+- 设计图应标明可见面、底部接触面和与场景地表的关系;背景纯白。
+- 模型需验证 Pivot、碰撞、交互点、材质和是否需要 LOD / 简化版。
+- 暂定成品路径:`AIClient/Assets/Bundles/Items/Props/{英文名称}/`。
+
+**待确认**:武器和道具是否统一放入 `Items`,是否需要独立的登记文件,以及各类别面数预算。
+
+## 7. 四、特效
+
+特效成品目录必须包含使用所需的图片、材质、粒子系统、Prefab 及其他依赖资源:
+
+`AIClient/Assets/Bundles/Effects/{英文名称}/`
+
+特效在 Unity 中制作和持久化;不得用运行时代码临时拼出正式特效资源。
+
+### 7.1 序列帧动画
+
+1. 使用项目画图方案生成 **4×4 序列帧动画**,源图尺寸为 **1024×1024**。
+2. 检查 16 帧排列、帧间距、主体中心、透明边缘和播放顺序。
+3. 将序列帧缩小为 **256×256** 的运行时图;源图和运行时图均保留可追溯关系。
+4. 导入 Unity,按序列帧切片并制作 Particle System / VFX Prefab。
+5. 将图片、材质、粒子配置、Prefab 和依赖资源放入 `Effects/{英文名称}/`。
+6. 验证播放速度、循环 / 单次、朝向、排序、过度绘制和移动端性能。
+
+### 7.2 粒子动画
+
+1. 使用项目画图方案生成粒子图,源图尺寸为 **1024×1024**。
+2. 将粒子图缩小为 **128×128** 的运行时图。
+3. 在 Unity 中制作粒子系统和 Prefab,验证贴图采样、混合、生命周期、发射量和回收。
+4. 将图片、材质、粒子配置、Prefab 和依赖资源放入 `Effects/{英文名称}/`。
+
+#### 特效验收与登记
+
+- [ ] 序列帧为 4×4、源图 1024×1024、运行时图 256×256;粒子图运行时为 128×128。
+- [ ] 背景 / Alpha、混合模式、采样边缘和排序正确;透明要求需在生产卡明确。
+- [ ] Prefab 在目标场景中可播放,生命周期和销毁策略正确。
+- [ ] 同屏数量、粒子数、Overdraw 和内存达到目标平台要求。
+- [ ] 已登记 `Doc/ResDesc_Effect.md` 和其中引用的图片资源。
+
+**待确认**:粒子源图是否强制透明、序列帧切片命名、特效粒子数预算、低端机降级方案。
+
+## 8. 五、声音资源
+
+音乐和音效使用同一套“需求 → 试听样片 → 编辑 / 导出 → Unity 导入 → 播放验证 → 登记”流程。暂定运行时目录为 `AIClient/Assets/Bundles/Audio/{类型}/{英文名称}/`,最终目录需确认。
+
+### 8.1 音乐
+
+1. 明确使用场景:主界面、战斗、Boss、胜利、失败或活动。
+2. 记录情绪、速度、循环点、时长、层次切换和是否支持无缝循环。
+3. 生成或采购后保留源工程、母带和运行时导出文件,写明授权 / 来源。
+4. 按目标平台导出并在 Unity 中验证循环、淡入淡出、暂停恢复、切场景和内存占用。
+5. 登记路径、格式、采样率、声道、时长、循环点和生成方式。
+
+### 8.2 音效
+
+1. 建立事件清单:UI、召唤、合成、攻击、受击、技能、警告、Boss、胜负等。
+2. 为每个事件指定英文名称、变体数量、随机 / 顺序播放规则和优先级。
+3. 编辑音量、起始静音、尾部、响度和循环属性;具体响度标准待确认。
+4. Unity 中验证多次触发、并发上限、混音组、距离衰减(如有)和低端设备表现。
+5. 登记到 `Doc/ResDesc_Sound.md`。
+
+**待确认**:音频目录、主格式(如 WAV / OGG)、采样率、响度基准、音乐循环格式、音效并发上限和授权字段。
+
+## 9. Unity 导入、打包与发布检查
+
+### 9.1 导入检查
+
+- [ ] 资源放在正确的 `AIClient/Assets/Bundles/` 子目录。
+- [ ] 使用 Unity Pipeline 或编辑器完成导入和序列化资源变更。
+- [ ] 纹理、模型、音频、动画、材质和粒子设置与生产卡一致。
+- [ ] 没有缺失引用、紫色材质、错误坐标、异常缩放、重复 GUID 或无关中间文件。
+
+### 9.2 YooAsset 检查
+
+- [ ] Collector 收集到正确 Package,场景 / 角色 / UI / 特效 / 音频的更新策略符合项目规划。
+- [ ] Bundle 中不包含 `Tools/output/`、`TempResource/` 或源工程等中间文件。
+- [ ] 资源寻址名、依赖和版本可通过开发期加载模式验证。
+- [ ] 打包前对应 `Doc/ResDesc_*.md` 已更新。
+
+### 9.3 运行检查
+
+- [ ] 编辑器模拟模式可加载并使用。
+- [ ] 目标平台或等效性能档通过视觉、内存、加载和帧率检查。
+- [ ] 资源卸载、切场景、重复播放和异常中断后无明显泄漏或残留。
+- [ ] 变更记录包含资源 ID、版本、变更内容、验证环境和已知问题。
+
+## 10. 逐条细化与验证计划
+
+本文下一阶段按下列顺序把“待确认”项变成可执行标准,每完成一条就更新对应章节的验收表和示例:
+
+1. **工具与输入**:确认画图、图生 3D、减面、烘焙、音频编辑工具及版本。
+2. **路径与命名**:确认武器、道具、动画和音频的最终目录、英文命名和寻址规则。
+3. **尺寸与性能**:确认各类 2D 尺寸、模型面数统计口径、贴图尺寸、粒子预算和音频规格。
+4. **设计评审**:用一个场景样例验证“10 种以内组件”和“等待确认”门禁。
+5. **2D 样例**:验证一张设计图、一套 UI 单图和一个 JSON→Prefab 面板。
+6. **3D 样例**:验证一个场景组件、一个人物角色、一个非人角色、一个武器和一个道具。
+7. **动画与特效样例**:验证一套人形动作、一套非人动作、一个 4×4 序列帧和一个粒子特效。
+8. **声音样例**:验证一首循环音乐和三类常用音效的导入、混音与登记。
+9. **打包回归**:将已验收样例走完 YooAsset 收集、加载、卸载和登记流程。
+
+### 10.1 验证记录模板
+
+```text
+验证日期:
+资源 ID / 版本:
+验证章节:
+验证环境:Unity 版本 / 平台 / 性能档
+输入文件:
+检查项:
+结果:通过 / 不通过 / 待确认
+问题:
+修复记录:
+验收人:
+关联登记文件:
+```
+
+## 11. 首轮待确认清单
+
+| 编号 | 事项 | 影响章节 | 当前结论 |
+| --- | --- | --- | --- |
+| C01 | “项目画图方案”的固定模型、提示词和参考图 | 2D、特效 | 待确认 |
+| C02 | 纯白背景与透明 Alpha 的适用边界 | 2D、特效 | 待确认 |
+| C03 | 2D 各类标准分辨率和源文件格式 | 2D | 待确认 |
+| C04 | 场景组件不超过 10 种的计数口径和审批人 | 场景 | 待确认 |
+| C05 | “面数”是面数还是三角面数,以及统计工具 | 场景、角色 | 待确认 |
+| C06 | 非人角色姿态、骨骼和面数预算 | 角色、动画 | 待确认 |
+| C07 | 动画目录、片段命名和 Root Motion 规则 | 动画 | 待确认 |
+| C08 | 武器、道具最终目录和面数预算 | 独立物件 | 待确认 |
+| C09 | 序列帧 / 粒子 Alpha、切片命名和粒子预算 | 特效 | 待确认 |
+| C10 | 音频目录、格式、采样率、响度和授权字段 | 声音 | 待确认 |
+| C11 | 各类型资源的验收人和审批记录位置 | 全部 | 待确认 |
+
+## 12. 变更记录
+
+| 日期 | 版本 | 变更 | 状态 |
+| --- | --- | --- | --- |
+| 2026-09-28 | 0.1 | 建立 2D、3D、动画、独立物件、特效、声音的生产流程框架;加入目录、门禁、登记和逐条验证计划 | 框架完成 |
diff --git a/Tools/hunyuan_3d/auth.py b/Tools/hunyuan_3d/auth.py
index c5c699f..f6a273e 100644
--- a/Tools/hunyuan_3d/auth.py
+++ b/Tools/hunyuan_3d/auth.py
@@ -81,7 +81,17 @@ def status() -> dict:
def is_logged_in() -> bool:
- return storage_state_path().is_file()
+ path = storage_state_path()
+ if not path.is_file() or path.stat().st_size < 8:
+ return False
+ try:
+ with path.open("rb") as fp:
+ if fp.read(1) != b"{":
+ return False
+ json.loads(path.read_text("utf-8"))
+ return True
+ except (OSError, ValueError, UnicodeDecodeError):
+ return False
def logout() -> dict:
diff --git a/Tools/hunyuan_3d/client.py b/Tools/hunyuan_3d/client.py
index 3b03985..b576f4e 100644
--- a/Tools/hunyuan_3d/client.py
+++ b/Tools/hunyuan_3d/client.py
@@ -798,6 +798,9 @@ def generate_from_image(
saved = directory / "hunyuan_raw.glb"
_download_url(context.request, glb_url, saved, log)
mesh = _extract_mesh(saved, directory)
+ from .glb_check import assert_glb_textures_ok
+
+ assert_glb_textures_ok(mesh)
log.write(f"extracted {mesh}\n")
(directory / "hunyuan_network.json").write_text(
json.dumps(network_hits[-120:], ensure_ascii=False, indent=2),
diff --git a/Tools/hunyuan_3d/glb_check.py b/Tools/hunyuan_3d/glb_check.py
new file mode 100644
index 0000000..c829b1e
--- /dev/null
+++ b/Tools/hunyuan_3d/glb_check.py
@@ -0,0 +1,88 @@
+"""检查混元 GLB 内嵌贴图能否解码。损坏 PNG 在 Blender 里是品红,烘进 color 就会整灯发紫。"""
+from __future__ import annotations
+
+import json
+import struct
+from pathlib import Path
+from typing import List, Tuple
+
+
+def _glb_chunks(data: bytes) -> Tuple[dict, bytes]:
+ if len(data) < 12 or data[:4] != b"glTF":
+ raise ValueError("不是 glTF GLB")
+ offset = 12
+ gltf = None
+ blob = b""
+ while offset + 8 <= len(data):
+ chunk_len, chunk_type = struct.unpack_from(" List[bytes]:
+ views = gltf.get("bufferViews") or []
+ out: List[bytes] = []
+ for image in gltf.get("images") or []:
+ uri = image.get("uri")
+ if isinstance(uri, str) and uri.startswith("data:"):
+ continue
+ index = image.get("bufferView")
+ if index is None:
+ continue
+ view = views[int(index)]
+ start = int(view.get("byteOffset") or 0)
+ length = int(view.get("byteLength") or 0)
+ out.append(blob[start : start + length])
+ return out
+
+
+def glb_textures_ok(path: Path) -> Tuple[bool, str]:
+ """内嵌贴图都能解码则 (True, '')。无贴图或损坏返回 False 与原因。"""
+ path = Path(path)
+ if not path.is_file() or path.stat().st_size < 12:
+ return False, "文件不存在或过短"
+ data = path.read_bytes()
+ if data[:4] != b"glTF":
+ return False, "文件头不是 glTF"
+ try:
+ gltf, blob = _glb_chunks(data)
+ blobs = _image_blobs(gltf, blob)
+ except Exception as exc: # noqa: BLE001
+ return False, str(exc)
+ if not blobs:
+ return False, "没有内嵌贴图"
+ try:
+ from PIL import Image
+ except ImportError:
+ for raw in blobs:
+ if not (raw.startswith(b"\x89PNG") or raw[:2] == b"\xff\xd8"):
+ return False, "内嵌贴图不是 PNG/JPEG"
+ return True, ""
+ import io
+
+ for i, raw in enumerate(blobs):
+ try:
+ img = Image.open(io.BytesIO(raw))
+ img.load()
+ if img.size[0] < 8 or img.size[1] < 8:
+ return False, f"贴图 {i} 尺寸无效 {img.size}"
+ except Exception as exc: # noqa: BLE001
+ return False, f"贴图 {i} 无法解码: {exc}"
+ return True, ""
+
+
+def assert_glb_textures_ok(path: Path) -> None:
+ ok, reason = glb_textures_ok(path)
+ if not ok:
+ raise RuntimeError(
+ f"{path} 内嵌贴图不可用({reason})。Blender 会显示品红并烘进 color。"
+ )
diff --git a/Tools/install_character_bundles.py b/Tools/install_character_bundles.py
index 349a9f1..03fd6fb 100644
--- a/Tools/install_character_bundles.py
+++ b/Tools/install_character_bundles.py
@@ -6,13 +6,14 @@
{ActorName}_base.png # RGB albedo, A=AO/透明
{ActorName}_mix.png # RG sphere-normal, B=metallic, A=roughness
{ActorName}.mat # Test/XPbr
- concept.png # 可选
{ActorName}.prefab # Unity 菜单生成
+概念图留在 Doc/Design/Character/,不要拷进 Bundles。
+
兼容旧五通道烘焙目录(_color/_normal/_ao/_metallic/_roughness)。
用法:
- python Tools/install_character_bundles.py -a MaleExplorer -b Tools/output/actor_game/actor_xpbr -c ref.png
+ python Tools/install_character_bundles.py -a MaleExplorer -b Tools/output/actor_game/actor_xpbr
"""
from __future__ import annotations
@@ -116,19 +117,13 @@ def install(
shutil.copy2(meta, Path(str(target) + ".meta"))
copied.append(str(target.relative_to(_repo_root())).replace("\\", "/"))
- concept_rel = None
if concept is not None:
concept = concept.expanduser().resolve()
if not concept.is_file():
raise FileNotFoundError(f"概念图不存在: {concept}")
- target = dest / "concept.png"
- if not dry_run:
- shutil.copy2(concept, target)
- concept_rel = str(target.relative_to(_repo_root())).replace("\\", "/")
- copied.append(concept_rel)
mode = "xpbr" if "base" in sources else "legacy_pbr"
- return {
+ result = {
"ok": True,
"actor": actor,
"mode": mode,
@@ -139,6 +134,9 @@ def install(
f"生成挂 XPbr 的 {actor}.prefab;并登记 Doc/ResDesc_Model.md"
),
}
+ if concept is not None:
+ result["design"] = str(concept.relative_to(_repo_root())).replace("\\", "/")
+ return result
def main(argv: list[str] | None = None) -> int:
@@ -150,7 +148,12 @@ def main(argv: list[str] | None = None) -> int:
required=True,
help="model_lowpoly_bake 的 *_xpbr 目录,或旧五通道 bake 子目录",
)
- p.add_argument("--concept", "-c", default=None, help="可选概念图,复制为 concept.png")
+ p.add_argument(
+ "--concept",
+ "-c",
+ default=None,
+ help="设计原稿路径(仅校验存在,不拷进 Bundles;应放在 Doc/Design/)",
+ )
p.add_argument("--dry-run", action="store_true")
args = p.parse_args(argv)
try:
diff --git a/Tools/model_tools/bl_bake.py b/Tools/model_tools/bl_bake.py
index 5ad4ad2..f758532 100644
--- a/Tools/model_tools/bl_bake.py
+++ b/Tools/model_tools/bl_bake.py
@@ -91,6 +91,7 @@ def _import_model_joined(path, warnings):
bpy.ops.object.select_all(action='DESELECT')
obj.select_set(True)
bpy.context.view_layer.objects.active = obj
+ # 导入补偿(FBX +90°X)烤进顶点,烘焙在 Blender Z-up 下进行;导出前 restore_source_yup。
bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)
return obj
@@ -269,11 +270,13 @@ def main():
# 导出低模:剥掉烘焙 image 节点,材质名保留 stem(工具3 兜底识别用)
bake_mat.node_tree.nodes.remove(target_node)
+ from bl_decimate import export_fbx_source_yup, prepare_game_export
+ prepare_game_export(low, restore_axis=True)
out_fbx = os.path.join(outdir, stem + ".fbx")
bpy.ops.object.select_all(action='DESELECT')
low.select_set(True)
- bpy.ops.export_scene.fbx(filepath=out_fbx, use_selection=True,
- path_mode='STRIP', embed_textures=False)
+ bpy.context.view_layer.objects.active = low
+ export_fbx_source_yup(out_fbx)
print("MT_SUMMARY " + json.dumps(
{"stem": stem, "fbx": os.path.basename(out_fbx), "outputs": outputs,
diff --git a/Tools/model_tools/bl_convert.py b/Tools/model_tools/bl_convert.py
index 6dcdf4f..a4e406e 100644
--- a/Tools/model_tools/bl_convert.py
+++ b/Tools/model_tools/bl_convert.py
@@ -397,8 +397,17 @@ def main():
for m in used_mats]
_strip_textures()
+ from bl_decimate import export_fbx_source_yup, prepare_game_export
+ meshes = [o for o in bpy.data.objects if o.type == "MESH"]
+ for obj in meshes:
+ prepare_game_export(obj)
+ bpy.ops.object.select_all(action="DESELECT")
+ for obj in meshes:
+ obj.select_set(True)
+ if meshes:
+ bpy.context.view_layer.objects.active = meshes[0]
fbx_out = os.path.join(outdir, model_name + ".fbx")
- bpy.ops.export_scene.fbx(filepath=fbx_out, path_mode='STRIP', embed_textures=False)
+ export_fbx_source_yup(fbx_out)
print("MT_SUMMARY " + json.dumps(
{"model": model_name, "fbx": os.path.basename(fbx_out), "materials": results},
diff --git a/Tools/model_tools/bl_decimate.py b/Tools/model_tools/bl_decimate.py
index 3c6dba2..96887a6 100644
--- a/Tools/model_tools/bl_decimate.py
+++ b/Tools/model_tools/bl_decimate.py
@@ -32,6 +32,74 @@ def import_model_objects(path):
bpy.ops.import_scene.gltf(filepath=path)
return [obj for obj in bpy.data.objects if obj not in before]
+
+def restore_source_yup(obj):
+ """Blender Z-up 顶点还原为混元/glTF Y-up(-90°X)。须在 transform_apply 之后调用。"""
+ import math
+ import bpy
+ bpy.ops.object.select_all(action='DESELECT')
+ obj.select_set(True)
+ bpy.context.view_layer.objects.active = obj
+ obj.rotation_mode = "XYZ"
+ obj.rotation_euler = (-math.pi / 2.0, 0.0, 0.0)
+ bpy.ops.object.transform_apply(location=False, rotation=True, scale=False)
+
+
+def snap_origin_bottom_center(obj):
+ """原点放到底面中点:X/Z 居中,Y = 最低点。须已是 Y-up 且 transform 已 apply。"""
+ from mathutils import Vector
+ verts = obj.data.vertices
+ if not verts:
+ return
+ xs = [v.co.x for v in verts]
+ ys = [v.co.y for v in verts]
+ zs = [v.co.z for v in verts]
+ origin = Vector((
+ (min(xs) + max(xs)) * 0.5,
+ min(ys),
+ (min(zs) + max(zs)) * 0.5,
+ ))
+ for v in verts:
+ v.co -= origin
+ obj.data.update()
+ obj.location = (0.0, 0.0, 0.0)
+
+
+def prepare_game_export(obj, restore_axis=None):
+ """最终游戏 FBX:Y-up,原点在底面中点。
+
+ restore_axis: True 强制 -90°X;False 跳过;None 则导入后物体仍带约 +90°X 才还原。
+ 烘焙结束时顶点已是 Z-up、旋转已 apply,必须传 True。
+ 导出后:Y-up、原点底面中点、局部 -Z 为正面(与混元/glTF 一致)。
+ """
+ import math
+ import bpy
+ bpy.ops.object.select_all(action='DESELECT')
+ obj.select_set(True)
+ bpy.context.view_layer.objects.active = obj
+ if restore_axis is None:
+ obj.rotation_mode = "XYZ"
+ restore_axis = abs(obj.rotation_euler.x) > math.radians(45.0)
+ bpy.ops.object.transform_apply(location=True, rotation=True, scale=True)
+ if restore_axis:
+ restore_source_yup(obj)
+ snap_origin_bottom_center(obj)
+
+
+def export_fbx_source_yup(filepath):
+ """导出与混元 GLB 相同的 Y-up FBX。调用前顶点须已是 Y-up。"""
+ import bpy
+ bpy.ops.export_scene.fbx(
+ filepath=filepath,
+ use_selection=True,
+ object_types={"MESH"},
+ axis_forward="-Z",
+ axis_up="Y",
+ bake_space_transform=False,
+ path_mode="STRIP",
+ embed_textures=False,
+ )
+
TOLERANCE = 0.03 # 面数相对误差容忍
MAX_RETRY = 2 # ratio 修正轮数上限
@@ -159,6 +227,56 @@ def _decimate(obj, ratio):
_apply_modifier(obj, mod)
+def _voxel_remesh(obj, voxel_size):
+ import bpy
+ bpy.context.view_layer.objects.active = obj
+ obj.select_set(True)
+ mod = obj.modifiers.new("mt_voxel", "REMESH")
+ mod.mode = "VOXEL"
+ mod.voxel_size = max(float(voxel_size), 1e-4)
+ _apply_modifier(obj, mod)
+
+
+def _voxel_fallback(obj, target, warnings):
+ """碎叶/非流形上 collapse 会卡在高面数;复制试体素尺寸后重网格,再 collapse。"""
+ import bpy
+ import mathutils
+
+ bb = [mathutils.Vector(c) for c in obj.bound_box]
+ diag = (bb[0] - bb[6]).length
+ if diag <= 0.0:
+ return len(obj.data.polygons)
+
+ bpy.context.view_layer.objects.active = obj
+ obj.select_set(True)
+ best_size = diag / 16.0
+ best_diff = None
+ for div in (12, 16, 20, 24, 32):
+ size = diag / float(div)
+ bpy.ops.object.duplicate()
+ dup = bpy.context.view_layer.objects.active
+ _voxel_remesh(dup, size)
+ cur = len(dup.data.polygons)
+ diff = abs(cur - target)
+ if best_diff is None or diff < best_diff:
+ best_diff = diff
+ best_size = size
+ bpy.data.objects.remove(dup, do_unlink=True)
+ bpy.context.view_layer.objects.active = obj
+ obj.select_set(True)
+
+ _voxel_remesh(obj, best_size)
+ cur = len(obj.data.polygons)
+ warnings.append(
+ "collapse 卡住后改用体素重网格 voxel=%.5f → %d 面" % (best_size, cur)
+ )
+ if cur > target:
+ _decimate(obj, decimate_ratio(target, cur))
+ _triangulate(obj)
+ cur = len(obj.data.polygons)
+ return cur
+
+
def _clean_mesh(obj, warnings):
"""减面前清理:按局部包围盒对角线相对焊接重合点 + 去退化面,给 collapse 更干净的流形,
减少被迫加的 seam。各步失败降级不中断。"""
@@ -474,6 +592,8 @@ def main():
# 重试用尽仍超差且偏多:记录警告,交由上层决定是否可接受
if not within_tolerance(target, cur) and cur > target:
warnings.append("修正 %d 轮后仍超差:%d 面(目标 %d ±3%%)" % (MAX_RETRY, cur, target))
+ if cur > max(target * 2, target + 500):
+ cur = _voxel_fallback(obj, target, warnings)
uv_info = _do_unwrap(obj, unwrap_mode, warnings, overlap_tol)
uv_png = os.path.splitext(os.path.abspath(out_fbx))[0] + "_uv.png"
diff --git a/Tools/model_tools/bl_restore_yup.py b/Tools/model_tools/bl_restore_yup.py
new file mode 100644
index 0000000..ca8f6f9
--- /dev/null
+++ b/Tools/model_tools/bl_restore_yup.py
@@ -0,0 +1,58 @@
+"""把游戏 FBX 整理成混元 GLB 轴向(Y-up)且原点在底面中点。可重复执行。
+调用:blender -b --factory-startup --python bl_restore_yup.py -- [fbx...]
+"""
+import json
+import os
+import sys
+
+sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
+
+from bl_decimate import ( # noqa: E402
+ export_fbx_source_yup,
+ import_model_objects,
+ prepare_game_export,
+)
+
+
+def restore_file(path):
+ import bpy
+
+ bpy.ops.wm.read_factory_settings(use_empty=True)
+ imported = import_model_objects(path)
+ meshes = [o for o in imported if o.type == "MESH"]
+ if not meshes:
+ return {"path": path, "error": "no mesh"}
+ for obj in meshes:
+ prepare_game_export(obj)
+ bpy.ops.object.select_all(action="DESELECT")
+ for obj in meshes:
+ obj.select_set(True)
+ bpy.context.view_layer.objects.active = meshes[0]
+ export_fbx_source_yup(path)
+ verts = meshes[0].data.vertices
+ xs = [v.co.x for v in verts]
+ ys = [v.co.y for v in verts]
+ zs = [v.co.z for v in verts]
+ return {
+ "path": os.path.basename(path),
+ "meshes": len(meshes),
+ "min_y": round(min(ys), 6),
+ "mid_x": round((min(xs) + max(xs)) * 0.5, 6),
+ "mid_z": round((min(zs) + max(zs)) * 0.5, 6),
+ }
+
+
+def main():
+ argv = sys.argv[sys.argv.index("--") + 1 :]
+ results = []
+ for raw in argv:
+ path = os.path.abspath(raw)
+ if not os.path.isfile(path):
+ results.append({"path": raw, "error": "missing"})
+ continue
+ results.append(restore_file(path))
+ print("MT_SUMMARY " + json.dumps(results, ensure_ascii=False))
+
+
+if __name__ == "__main__" and "--" in sys.argv:
+ main()
diff --git a/Tools/output/run_townsquare_pipeline.py b/Tools/output/run_townsquare_pipeline.py
new file mode 100644
index 0000000..70bb07e
--- /dev/null
+++ b/Tools/output/run_townsquare_pipeline.py
@@ -0,0 +1,193 @@
+"""TownSquare 分件:图生3D → 减面烘焙 → 安装到 Bundles/Scenes/Town/TownSquare/{name}/"""
+from __future__ import annotations
+
+import json
+import os
+import shutil
+import subprocess
+import sys
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parents[2]
+if str(ROOT / "Tools") not in sys.path:
+ sys.path.insert(0, str(ROOT / "Tools"))
+PARTS = [
+ ("ground", 800),
+ ("shop", 1800),
+ ("tree", 1500),
+ ("lamp", 500),
+ ("board", 800),
+ ("fountain", 1800),
+ ("bench", 700),
+ ("bush", 500),
+]
+SCENE_TYPE = "Town"
+SCENE_ID = "TownSquare"
+TEX_SIZE = 1024
+
+
+def _decode(raw: bytes | None) -> str:
+ if not raw:
+ return ""
+ return raw.decode("utf-8", errors="replace")
+
+
+def run(cmd: list[str]) -> dict:
+ print(f"RUN {' '.join(cmd)}", flush=True)
+ env = dict(os.environ)
+ env["PYTHONIOENCODING"] = "utf-8"
+ proc = subprocess.run(cmd, cwd=ROOT, capture_output=True, env=env)
+ out = _decode(proc.stdout).strip()
+ err = _decode(proc.stderr).strip()
+ if proc.returncode != 0:
+ raise RuntimeError(
+ f"exit {proc.returncode}\nstdout:\n{out[-4000:]}\nstderr:\n{err[-4000:]}"
+ )
+ last = None
+ for line in out.splitlines():
+ line = line.strip()
+ if line.startswith("{") and line.endswith("}"):
+ try:
+ last = json.loads(line)
+ except json.JSONDecodeError:
+ continue
+ if last is None and out.startswith("{"):
+ try:
+ last = json.loads(out)
+ except json.JSONDecodeError:
+ last = None
+ return last or {"ok": True, "raw": out[-2000:]}
+
+
+def is_valid_glb(path: Path) -> bool:
+ from hunyuan_3d.glb_check import glb_textures_ok
+
+ ok, _ = glb_textures_ok(path)
+ return ok
+
+
+def pick(files: list[Path], pred) -> Path | None:
+ for path in files:
+ if path.is_file() and pred(path.name.lower()):
+ return path
+ return None
+
+
+def install_part(name: str, xpbr_dir: Path, concept: Path) -> Path:
+ dest = ROOT / "AIClient/Assets/Bundles/Scenes" / SCENE_TYPE / SCENE_ID / name
+ dest.mkdir(parents=True, exist_ok=True)
+ files = list(xpbr_dir.iterdir())
+ fbx = pick(files, lambda n: n.endswith(".fbx"))
+ base = pick(files, lambda n: n.endswith("_base.png") or n.endswith("_basemap.png"))
+ mix = pick(files, lambda n: n.endswith("_mix.png") or n.endswith("_mixmap.png"))
+ mat = pick(files, lambda n: n.endswith(".mat"))
+ if not fbx or not base:
+ raise FileNotFoundError(f"XPbr 不完整: {xpbr_dir} files={[p.name for p in files]}")
+ mapping = {
+ fbx: dest / f"{name}.fbx",
+ base: dest / f"{name}_base.png",
+ mix: dest / f"{name}_mix.png" if mix else None,
+ mat: dest / f"{name}.mat" if mat else None,
+ }
+ copied = []
+ for src, target in mapping.items():
+ if src is None or target is None:
+ continue
+ shutil.copy2(src, target)
+ meta = Path(str(src) + ".meta")
+ if meta.is_file():
+ shutil.copy2(meta, Path(str(target) + ".meta"))
+ copied.append(target.name)
+ print(json.dumps({"installed": str(dest), "files": copied, "design": str(concept)}, ensure_ascii=False), flush=True)
+ return dest
+
+
+def main() -> int:
+ summary = []
+ for name, tris in PARTS:
+ img = ROOT / "Doc/Design/Scene/TownSquare" / f"{name}.png"
+ glb = ROOT / "Tools/output/townsquare_3d" / name / f"{name}.glb"
+ bake_out = ROOT / "Tools/output/townsquare_game" / name
+ glb.parent.mkdir(parents=True, exist_ok=True)
+ print(json.dumps({"event": "part_start", "name": name, "tris": tris}, ensure_ascii=False), flush=True)
+
+ if not is_valid_glb(glb):
+ if glb.is_file():
+ print(
+ json.dumps({"event": "hunyuan_regen", "name": name, "reason": "invalid_glb"}, ensure_ascii=False),
+ flush=True,
+ )
+ glb.unlink()
+ hunyuan = run(
+ [
+ sys.executable,
+ str(ROOT / "Tools/hunyuan_3d_generate.py"),
+ "-i",
+ str(img),
+ "-o",
+ str(glb),
+ "--faces",
+ "50k",
+ "--result-only",
+ "--quiet",
+ ]
+ )
+ if hunyuan.get("ok") is False or hunyuan.get("status") not in (None, "succeeded"):
+ raise RuntimeError(f"hunyuan failed {name}: {hunyuan}")
+ if not is_valid_glb(glb):
+ raise RuntimeError(f"hunyuan produced invalid glb: {glb}")
+ else:
+ print(
+ json.dumps({"event": "hunyuan_skip", "name": name}, ensure_ascii=False),
+ flush=True,
+ )
+
+ xpbr_dir = bake_out / f"{name}_xpbr"
+ bake: dict = {}
+ has_xpbr = xpbr_dir.is_dir() and any(xpbr_dir.glob("*.fbx"))
+ if has_xpbr:
+ print(
+ json.dumps({"event": "bake_skip", "name": name}, ensure_ascii=False),
+ flush=True,
+ )
+ else:
+ bake = run(
+ [
+ sys.executable,
+ str(ROOT / "Tools/model_tools/model_lowpoly_bake.py"),
+ str(glb),
+ "-o",
+ str(bake_out),
+ "--tris",
+ str(tris),
+ "--size",
+ str(TEX_SIZE),
+ "--result-only",
+ "--quiet",
+ ]
+ )
+ if bake.get("xpbr_dir"):
+ xpbr_dir = Path(bake["xpbr_dir"])
+ dest = install_part(name, xpbr_dir, img)
+ rec = {
+ "name": name,
+ "tris_target": tris,
+ "tris_after": bake.get("tris_after"),
+ "glb": str(glb.relative_to(ROOT)).replace("\\", "/"),
+ "dest": str(dest.relative_to(ROOT)).replace("\\", "/"),
+ }
+ summary.append(rec)
+ print(json.dumps({"event": "part_done", **rec}, ensure_ascii=False), flush=True)
+
+ out = ROOT / "Tools/output/townsquare_pipeline_summary.json"
+ out.write_text(json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8")
+ print(json.dumps({"ok": True, "summary": summary}, ensure_ascii=False), flush=True)
+ return 0
+
+
+if __name__ == "__main__":
+ try:
+ raise SystemExit(main())
+ except Exception as exc:
+ print(json.dumps({"ok": False, "error": str(exc)}, ensure_ascii=False), flush=True)
+ raise
diff --git a/Tools/output/townsquare_3d/bench/bench.glb b/Tools/output/townsquare_3d/bench/bench.glb
new file mode 100644
index 0000000..da8e97e
Binary files /dev/null and b/Tools/output/townsquare_3d/bench/bench.glb differ
diff --git a/Tools/output/townsquare_3d/board/board.glb b/Tools/output/townsquare_3d/board/board.glb
new file mode 100644
index 0000000..7fb8530
Binary files /dev/null and b/Tools/output/townsquare_3d/board/board.glb differ
diff --git a/Tools/output/townsquare_3d/bush/bush.glb b/Tools/output/townsquare_3d/bush/bush.glb
new file mode 100644
index 0000000..4120056
Binary files /dev/null and b/Tools/output/townsquare_3d/bush/bush.glb differ
diff --git a/Tools/output/townsquare_3d/fountain/fountain.glb b/Tools/output/townsquare_3d/fountain/fountain.glb
new file mode 100644
index 0000000..19879ba
Binary files /dev/null and b/Tools/output/townsquare_3d/fountain/fountain.glb differ
diff --git a/Tools/output/townsquare_3d/ground/ground.glb b/Tools/output/townsquare_3d/ground/ground.glb
new file mode 100644
index 0000000..286db79
Binary files /dev/null and b/Tools/output/townsquare_3d/ground/ground.glb differ
diff --git a/Tools/output/townsquare_3d/lamp/lamp.glb b/Tools/output/townsquare_3d/lamp/lamp.glb
new file mode 100644
index 0000000..9faad56
Binary files /dev/null and b/Tools/output/townsquare_3d/lamp/lamp.glb differ
diff --git a/Tools/output/townsquare_3d/shop/shop.glb b/Tools/output/townsquare_3d/shop/shop.glb
new file mode 100644
index 0000000..3d7d592
Binary files /dev/null and b/Tools/output/townsquare_3d/shop/shop.glb differ
diff --git a/Tools/output/townsquare_3d/tree/tree.glb b/Tools/output/townsquare_3d/tree/tree.glb
new file mode 100644
index 0000000..80c2331
Binary files /dev/null and b/Tools/output/townsquare_3d/tree/tree.glb differ
diff --git a/Tools/output/townsquare_game/bench/bench/bench.fbx b/Tools/output/townsquare_game/bench/bench/bench.fbx
new file mode 100644
index 0000000..41fc9ca
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench/bench.fbx differ
diff --git a/Tools/output/townsquare_game/bench/bench/bench_ao.png b/Tools/output/townsquare_game/bench/bench/bench_ao.png
new file mode 100644
index 0000000..938322f
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench/bench_ao.png differ
diff --git a/Tools/output/townsquare_game/bench/bench/bench_color.png b/Tools/output/townsquare_game/bench/bench/bench_color.png
new file mode 100644
index 0000000..6851dec
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench/bench_color.png differ
diff --git a/Tools/output/townsquare_game/bench/bench/bench_metallic.png b/Tools/output/townsquare_game/bench/bench/bench_metallic.png
new file mode 100644
index 0000000..74cdd61
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench/bench_metallic.png differ
diff --git a/Tools/output/townsquare_game/bench/bench/bench_normal.png b/Tools/output/townsquare_game/bench/bench/bench_normal.png
new file mode 100644
index 0000000..d480d9c
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench/bench_normal.png differ
diff --git a/Tools/output/townsquare_game/bench/bench/bench_roughness.png b/Tools/output/townsquare_game/bench/bench/bench_roughness.png
new file mode 100644
index 0000000..a10a139
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench/bench_roughness.png differ
diff --git a/Tools/output/townsquare_game/bench/bench_low.fbx b/Tools/output/townsquare_game/bench/bench_low.fbx
new file mode 100644
index 0000000..4630de6
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench_low.fbx differ
diff --git a/Tools/output/townsquare_game/bench/bench_low_uv.png b/Tools/output/townsquare_game/bench/bench_low_uv.png
new file mode 100644
index 0000000..083fb58
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench_low_uv.png differ
diff --git a/Tools/output/townsquare_game/bench/bench_xpbr/bench.fbx b/Tools/output/townsquare_game/bench/bench_xpbr/bench.fbx
new file mode 100644
index 0000000..6d7900e
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench_xpbr/bench.fbx differ
diff --git a/Tools/output/townsquare_game/bench/bench_xpbr/bench.fbx.meta b/Tools/output/townsquare_game/bench/bench_xpbr/bench.fbx.meta
new file mode 100644
index 0000000..679e856
--- /dev/null
+++ b/Tools/output/townsquare_game/bench/bench_xpbr/bench.fbx.meta
@@ -0,0 +1,112 @@
+fileFormatVersion: 2
+guid: 226566fab2d64da2add0f480326ea0f7
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: bench
+ second: {fileID: 2100000, guid: 55230c5f30ea4d29b076ad7d47473768, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ 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
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/bench/bench_xpbr/bench.mat b/Tools/output/townsquare_game/bench/bench_xpbr/bench.mat
new file mode 100644
index 0000000..db6c1cd
--- /dev/null
+++ b/Tools/output/townsquare_game/bench/bench_xpbr/bench.mat
@@ -0,0 +1,43 @@
+%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: bench
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: fd1b81c49178493496127fb1c4f4349d, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: c897eeeae69f45dea81f6f9622934804, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Tools/output/townsquare_game/bench/bench_xpbr/bench.mat.meta b/Tools/output/townsquare_game/bench/bench_xpbr/bench.mat.meta
new file mode 100644
index 0000000..f01a702
--- /dev/null
+++ b/Tools/output/townsquare_game/bench/bench_xpbr/bench.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 55230c5f30ea4d29b076ad7d47473768
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/bench/bench_xpbr/bench_base.png b/Tools/output/townsquare_game/bench/bench_xpbr/bench_base.png
new file mode 100644
index 0000000..e8de7ce
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench_xpbr/bench_base.png differ
diff --git a/Tools/output/townsquare_game/bench/bench_xpbr/bench_base.png.meta b/Tools/output/townsquare_game/bench/bench_xpbr/bench_base.png.meta
new file mode 100644
index 0000000..f47c4ba
--- /dev/null
+++ b/Tools/output/townsquare_game/bench/bench_xpbr/bench_base.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: fd1b81c49178493496127fb1c4f4349d
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/bench/bench_xpbr/bench_mix.png b/Tools/output/townsquare_game/bench/bench_xpbr/bench_mix.png
new file mode 100644
index 0000000..e4b6fae
Binary files /dev/null and b/Tools/output/townsquare_game/bench/bench_xpbr/bench_mix.png differ
diff --git a/Tools/output/townsquare_game/bench/bench_xpbr/bench_mix.png.meta b/Tools/output/townsquare_game/bench/bench_xpbr/bench_mix.png.meta
new file mode 100644
index 0000000..b5f551a
--- /dev/null
+++ b/Tools/output/townsquare_game/bench/bench_xpbr/bench_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: c897eeeae69f45dea81f6f9622934804
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/board/board/board.fbx b/Tools/output/townsquare_game/board/board/board.fbx
new file mode 100644
index 0000000..5bd7f99
Binary files /dev/null and b/Tools/output/townsquare_game/board/board/board.fbx differ
diff --git a/Tools/output/townsquare_game/board/board/board_ao.png b/Tools/output/townsquare_game/board/board/board_ao.png
new file mode 100644
index 0000000..72d5d24
Binary files /dev/null and b/Tools/output/townsquare_game/board/board/board_ao.png differ
diff --git a/Tools/output/townsquare_game/board/board/board_color.png b/Tools/output/townsquare_game/board/board/board_color.png
new file mode 100644
index 0000000..de38109
Binary files /dev/null and b/Tools/output/townsquare_game/board/board/board_color.png differ
diff --git a/Tools/output/townsquare_game/board/board/board_metallic.png b/Tools/output/townsquare_game/board/board/board_metallic.png
new file mode 100644
index 0000000..022ac5b
Binary files /dev/null and b/Tools/output/townsquare_game/board/board/board_metallic.png differ
diff --git a/Tools/output/townsquare_game/board/board/board_normal.png b/Tools/output/townsquare_game/board/board/board_normal.png
new file mode 100644
index 0000000..4f0cc53
Binary files /dev/null and b/Tools/output/townsquare_game/board/board/board_normal.png differ
diff --git a/Tools/output/townsquare_game/board/board/board_roughness.png b/Tools/output/townsquare_game/board/board/board_roughness.png
new file mode 100644
index 0000000..88dad63
Binary files /dev/null and b/Tools/output/townsquare_game/board/board/board_roughness.png differ
diff --git a/Tools/output/townsquare_game/board/board_low.fbx b/Tools/output/townsquare_game/board/board_low.fbx
new file mode 100644
index 0000000..8295fea
Binary files /dev/null and b/Tools/output/townsquare_game/board/board_low.fbx differ
diff --git a/Tools/output/townsquare_game/board/board_low_uv.png b/Tools/output/townsquare_game/board/board_low_uv.png
new file mode 100644
index 0000000..2f84332
Binary files /dev/null and b/Tools/output/townsquare_game/board/board_low_uv.png differ
diff --git a/Tools/output/townsquare_game/board/board_xpbr/board.fbx b/Tools/output/townsquare_game/board/board_xpbr/board.fbx
new file mode 100644
index 0000000..96eaa3f
Binary files /dev/null and b/Tools/output/townsquare_game/board/board_xpbr/board.fbx differ
diff --git a/Tools/output/townsquare_game/board/board_xpbr/board.fbx.meta b/Tools/output/townsquare_game/board/board_xpbr/board.fbx.meta
new file mode 100644
index 0000000..9191e08
--- /dev/null
+++ b/Tools/output/townsquare_game/board/board_xpbr/board.fbx.meta
@@ -0,0 +1,112 @@
+fileFormatVersion: 2
+guid: 2f1665ece9e74a84bc219d29feb8c479
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: board
+ second: {fileID: 2100000, guid: 48215abcd83d4be78bf763ddbd8bf5b9, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ 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
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/board/board_xpbr/board.mat b/Tools/output/townsquare_game/board/board_xpbr/board.mat
new file mode 100644
index 0000000..ae2971e
--- /dev/null
+++ b/Tools/output/townsquare_game/board/board_xpbr/board.mat
@@ -0,0 +1,43 @@
+%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: board
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: edb2761cf05c48f4979fdb48a2ceecf4, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: 3895a530acae4babb5e4640e6e4c9391, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Tools/output/townsquare_game/board/board_xpbr/board.mat.meta b/Tools/output/townsquare_game/board/board_xpbr/board.mat.meta
new file mode 100644
index 0000000..56f85d2
--- /dev/null
+++ b/Tools/output/townsquare_game/board/board_xpbr/board.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 48215abcd83d4be78bf763ddbd8bf5b9
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/board/board_xpbr/board_base.png b/Tools/output/townsquare_game/board/board_xpbr/board_base.png
new file mode 100644
index 0000000..dcc6148
Binary files /dev/null and b/Tools/output/townsquare_game/board/board_xpbr/board_base.png differ
diff --git a/Tools/output/townsquare_game/board/board_xpbr/board_base.png.meta b/Tools/output/townsquare_game/board/board_xpbr/board_base.png.meta
new file mode 100644
index 0000000..89237eb
--- /dev/null
+++ b/Tools/output/townsquare_game/board/board_xpbr/board_base.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: edb2761cf05c48f4979fdb48a2ceecf4
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/board/board_xpbr/board_mix.png b/Tools/output/townsquare_game/board/board_xpbr/board_mix.png
new file mode 100644
index 0000000..709d9af
Binary files /dev/null and b/Tools/output/townsquare_game/board/board_xpbr/board_mix.png differ
diff --git a/Tools/output/townsquare_game/board/board_xpbr/board_mix.png.meta b/Tools/output/townsquare_game/board/board_xpbr/board_mix.png.meta
new file mode 100644
index 0000000..93526d3
--- /dev/null
+++ b/Tools/output/townsquare_game/board/board_xpbr/board_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 3895a530acae4babb5e4640e6e4c9391
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/bush/bush/bush.fbx b/Tools/output/townsquare_game/bush/bush/bush.fbx
new file mode 100644
index 0000000..1ec71c5
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush/bush.fbx differ
diff --git a/Tools/output/townsquare_game/bush/bush/bush_ao.png b/Tools/output/townsquare_game/bush/bush/bush_ao.png
new file mode 100644
index 0000000..9a040e4
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush/bush_ao.png differ
diff --git a/Tools/output/townsquare_game/bush/bush/bush_color.png b/Tools/output/townsquare_game/bush/bush/bush_color.png
new file mode 100644
index 0000000..d149f4f
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush/bush_color.png differ
diff --git a/Tools/output/townsquare_game/bush/bush/bush_metallic.png b/Tools/output/townsquare_game/bush/bush/bush_metallic.png
new file mode 100644
index 0000000..54cd418
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush/bush_metallic.png differ
diff --git a/Tools/output/townsquare_game/bush/bush/bush_normal.png b/Tools/output/townsquare_game/bush/bush/bush_normal.png
new file mode 100644
index 0000000..2abf3e4
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush/bush_normal.png differ
diff --git a/Tools/output/townsquare_game/bush/bush/bush_roughness.png b/Tools/output/townsquare_game/bush/bush/bush_roughness.png
new file mode 100644
index 0000000..d7028d5
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush/bush_roughness.png differ
diff --git a/Tools/output/townsquare_game/bush/bush_low.fbx b/Tools/output/townsquare_game/bush/bush_low.fbx
new file mode 100644
index 0000000..5b7d78f
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush_low.fbx differ
diff --git a/Tools/output/townsquare_game/bush/bush_low_uv.png b/Tools/output/townsquare_game/bush/bush_low_uv.png
new file mode 100644
index 0000000..f5887d3
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush_low_uv.png differ
diff --git a/Tools/output/townsquare_game/bush/bush_xpbr/bush.fbx b/Tools/output/townsquare_game/bush/bush_xpbr/bush.fbx
new file mode 100644
index 0000000..15e55b3
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush_xpbr/bush.fbx differ
diff --git a/Tools/output/townsquare_game/bush/bush_xpbr/bush.fbx.meta b/Tools/output/townsquare_game/bush/bush_xpbr/bush.fbx.meta
new file mode 100644
index 0000000..ecc5a9c
--- /dev/null
+++ b/Tools/output/townsquare_game/bush/bush_xpbr/bush.fbx.meta
@@ -0,0 +1,112 @@
+fileFormatVersion: 2
+guid: eb5252e1abad43c4997f02c745ab54a5
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: bush
+ second: {fileID: 2100000, guid: 859a730b4c2e47509b323df9aa67ff48, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ 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
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/bush/bush_xpbr/bush.mat b/Tools/output/townsquare_game/bush/bush_xpbr/bush.mat
new file mode 100644
index 0000000..1c238b7
--- /dev/null
+++ b/Tools/output/townsquare_game/bush/bush_xpbr/bush.mat
@@ -0,0 +1,43 @@
+%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: bush
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 540b11023a16465daf769198ab0605e4, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: fafff3b99b2a4abdb19435873668b77d, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Tools/output/townsquare_game/bush/bush_xpbr/bush.mat.meta b/Tools/output/townsquare_game/bush/bush_xpbr/bush.mat.meta
new file mode 100644
index 0000000..c47c84c
--- /dev/null
+++ b/Tools/output/townsquare_game/bush/bush_xpbr/bush.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 859a730b4c2e47509b323df9aa67ff48
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/bush/bush_xpbr/bush_base.png b/Tools/output/townsquare_game/bush/bush_xpbr/bush_base.png
new file mode 100644
index 0000000..c2e5f57
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush_xpbr/bush_base.png differ
diff --git a/Tools/output/townsquare_game/bush/bush_xpbr/bush_base.png.meta b/Tools/output/townsquare_game/bush/bush_xpbr/bush_base.png.meta
new file mode 100644
index 0000000..3848efc
--- /dev/null
+++ b/Tools/output/townsquare_game/bush/bush_xpbr/bush_base.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 540b11023a16465daf769198ab0605e4
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/bush/bush_xpbr/bush_mix.png b/Tools/output/townsquare_game/bush/bush_xpbr/bush_mix.png
new file mode 100644
index 0000000..4a9b7a4
Binary files /dev/null and b/Tools/output/townsquare_game/bush/bush_xpbr/bush_mix.png differ
diff --git a/Tools/output/townsquare_game/bush/bush_xpbr/bush_mix.png.meta b/Tools/output/townsquare_game/bush/bush_xpbr/bush_mix.png.meta
new file mode 100644
index 0000000..9fe20f3
--- /dev/null
+++ b/Tools/output/townsquare_game/bush/bush_xpbr/bush_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: fafff3b99b2a4abdb19435873668b77d
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/fountain/fountain/fountain.fbx b/Tools/output/townsquare_game/fountain/fountain/fountain.fbx
new file mode 100644
index 0000000..68d29de
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain/fountain.fbx differ
diff --git a/Tools/output/townsquare_game/fountain/fountain/fountain_ao.png b/Tools/output/townsquare_game/fountain/fountain/fountain_ao.png
new file mode 100644
index 0000000..8a5e2df
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain/fountain_ao.png differ
diff --git a/Tools/output/townsquare_game/fountain/fountain/fountain_color.png b/Tools/output/townsquare_game/fountain/fountain/fountain_color.png
new file mode 100644
index 0000000..29744ad
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain/fountain_color.png differ
diff --git a/Tools/output/townsquare_game/fountain/fountain/fountain_metallic.png b/Tools/output/townsquare_game/fountain/fountain/fountain_metallic.png
new file mode 100644
index 0000000..51aadfc
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain/fountain_metallic.png differ
diff --git a/Tools/output/townsquare_game/fountain/fountain/fountain_normal.png b/Tools/output/townsquare_game/fountain/fountain/fountain_normal.png
new file mode 100644
index 0000000..ad1a81f
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain/fountain_normal.png differ
diff --git a/Tools/output/townsquare_game/fountain/fountain/fountain_roughness.png b/Tools/output/townsquare_game/fountain/fountain/fountain_roughness.png
new file mode 100644
index 0000000..989fd20
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain/fountain_roughness.png differ
diff --git a/Tools/output/townsquare_game/fountain/fountain_low.fbx b/Tools/output/townsquare_game/fountain/fountain_low.fbx
new file mode 100644
index 0000000..3be392b
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain_low.fbx differ
diff --git a/Tools/output/townsquare_game/fountain/fountain_low_uv.png b/Tools/output/townsquare_game/fountain/fountain_low_uv.png
new file mode 100644
index 0000000..d2c3d91
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain_low_uv.png differ
diff --git a/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.fbx b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.fbx
new file mode 100644
index 0000000..369200c
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.fbx differ
diff --git a/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.fbx.meta b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.fbx.meta
new file mode 100644
index 0000000..e900591
--- /dev/null
+++ b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.fbx.meta
@@ -0,0 +1,112 @@
+fileFormatVersion: 2
+guid: 6c96e775588a46d1a79bbc57503c5342
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: fountain
+ second: {fileID: 2100000, guid: bcfd4e6476794bc1b6ed06f5fcadd94e, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ 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
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.mat b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.mat
new file mode 100644
index 0000000..95b6895
--- /dev/null
+++ b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.mat
@@ -0,0 +1,43 @@
+%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: fountain
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 553d63347e0347fd87d8f793e938c2d0, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: 1ef97907d7854d19bc5c09129b09244a, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.mat.meta b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.mat.meta
new file mode 100644
index 0000000..050d236
--- /dev/null
+++ b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bcfd4e6476794bc1b6ed06f5fcadd94e
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_base.png b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_base.png
new file mode 100644
index 0000000..fa59420
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_base.png differ
diff --git a/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_base.png.meta b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_base.png.meta
new file mode 100644
index 0000000..ad1b579
--- /dev/null
+++ b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_base.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 553d63347e0347fd87d8f793e938c2d0
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_mix.png b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_mix.png
new file mode 100644
index 0000000..6f60679
Binary files /dev/null and b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_mix.png differ
diff --git a/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_mix.png.meta b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_mix.png.meta
new file mode 100644
index 0000000..598c554
--- /dev/null
+++ b/Tools/output/townsquare_game/fountain/fountain_xpbr/fountain_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 1ef97907d7854d19bc5c09129b09244a
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/ground/ground/ground.fbx b/Tools/output/townsquare_game/ground/ground/ground.fbx
new file mode 100644
index 0000000..38d3246
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground/ground.fbx differ
diff --git a/Tools/output/townsquare_game/ground/ground/ground_ao.png b/Tools/output/townsquare_game/ground/ground/ground_ao.png
new file mode 100644
index 0000000..40f1456
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground/ground_ao.png differ
diff --git a/Tools/output/townsquare_game/ground/ground/ground_color.png b/Tools/output/townsquare_game/ground/ground/ground_color.png
new file mode 100644
index 0000000..53a8896
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground/ground_color.png differ
diff --git a/Tools/output/townsquare_game/ground/ground/ground_metallic.png b/Tools/output/townsquare_game/ground/ground/ground_metallic.png
new file mode 100644
index 0000000..f4d6fbe
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground/ground_metallic.png differ
diff --git a/Tools/output/townsquare_game/ground/ground/ground_normal.png b/Tools/output/townsquare_game/ground/ground/ground_normal.png
new file mode 100644
index 0000000..f5bb683
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground/ground_normal.png differ
diff --git a/Tools/output/townsquare_game/ground/ground/ground_roughness.png b/Tools/output/townsquare_game/ground/ground/ground_roughness.png
new file mode 100644
index 0000000..cc4e2e9
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground/ground_roughness.png differ
diff --git a/Tools/output/townsquare_game/ground/ground_low.fbx b/Tools/output/townsquare_game/ground/ground_low.fbx
new file mode 100644
index 0000000..3c286bd
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground_low.fbx differ
diff --git a/Tools/output/townsquare_game/ground/ground_low_uv.png b/Tools/output/townsquare_game/ground/ground_low_uv.png
new file mode 100644
index 0000000..a749849
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground_low_uv.png differ
diff --git a/Tools/output/townsquare_game/ground/ground_xpbr/ground.fbx b/Tools/output/townsquare_game/ground/ground_xpbr/ground.fbx
new file mode 100644
index 0000000..7cdbde0
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground_xpbr/ground.fbx differ
diff --git a/Tools/output/townsquare_game/ground/ground_xpbr/ground.fbx.meta b/Tools/output/townsquare_game/ground/ground_xpbr/ground.fbx.meta
new file mode 100644
index 0000000..f0fe5af
--- /dev/null
+++ b/Tools/output/townsquare_game/ground/ground_xpbr/ground.fbx.meta
@@ -0,0 +1,112 @@
+fileFormatVersion: 2
+guid: b390ab0d88514e4bbfd4958f51381630
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: ground
+ second: {fileID: 2100000, guid: c68e560375d04856a2ee162b8191dc96, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ 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
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/ground/ground_xpbr/ground.mat b/Tools/output/townsquare_game/ground/ground_xpbr/ground.mat
new file mode 100644
index 0000000..2bfd28e
--- /dev/null
+++ b/Tools/output/townsquare_game/ground/ground_xpbr/ground.mat
@@ -0,0 +1,43 @@
+%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: ground
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: d90020924f924727afbba0cbf1f39ffc, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: 2ae033e6268d4109a410ed17ff6d1495, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Tools/output/townsquare_game/ground/ground_xpbr/ground.mat.meta b/Tools/output/townsquare_game/ground/ground_xpbr/ground.mat.meta
new file mode 100644
index 0000000..5337659
--- /dev/null
+++ b/Tools/output/townsquare_game/ground/ground_xpbr/ground.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c68e560375d04856a2ee162b8191dc96
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/ground/ground_xpbr/ground_base.png b/Tools/output/townsquare_game/ground/ground_xpbr/ground_base.png
new file mode 100644
index 0000000..48d3374
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground_xpbr/ground_base.png differ
diff --git a/Tools/output/townsquare_game/ground/ground_xpbr/ground_base.png.meta b/Tools/output/townsquare_game/ground/ground_xpbr/ground_base.png.meta
new file mode 100644
index 0000000..898c50d
--- /dev/null
+++ b/Tools/output/townsquare_game/ground/ground_xpbr/ground_base.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: d90020924f924727afbba0cbf1f39ffc
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/ground/ground_xpbr/ground_mix.png b/Tools/output/townsquare_game/ground/ground_xpbr/ground_mix.png
new file mode 100644
index 0000000..63f6615
Binary files /dev/null and b/Tools/output/townsquare_game/ground/ground_xpbr/ground_mix.png differ
diff --git a/Tools/output/townsquare_game/ground/ground_xpbr/ground_mix.png.meta b/Tools/output/townsquare_game/ground/ground_xpbr/ground_mix.png.meta
new file mode 100644
index 0000000..9f109d0
--- /dev/null
+++ b/Tools/output/townsquare_game/ground/ground_xpbr/ground_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 2ae033e6268d4109a410ed17ff6d1495
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/lamp/lamp/lamp.fbx b/Tools/output/townsquare_game/lamp/lamp/lamp.fbx
new file mode 100644
index 0000000..dd902b4
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp/lamp.fbx differ
diff --git a/Tools/output/townsquare_game/lamp/lamp/lamp_ao.png b/Tools/output/townsquare_game/lamp/lamp/lamp_ao.png
new file mode 100644
index 0000000..6319e0b
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp/lamp_ao.png differ
diff --git a/Tools/output/townsquare_game/lamp/lamp/lamp_color.png b/Tools/output/townsquare_game/lamp/lamp/lamp_color.png
new file mode 100644
index 0000000..846e2b9
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp/lamp_color.png differ
diff --git a/Tools/output/townsquare_game/lamp/lamp/lamp_metallic.png b/Tools/output/townsquare_game/lamp/lamp/lamp_metallic.png
new file mode 100644
index 0000000..6c5c5f3
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp/lamp_metallic.png differ
diff --git a/Tools/output/townsquare_game/lamp/lamp/lamp_normal.png b/Tools/output/townsquare_game/lamp/lamp/lamp_normal.png
new file mode 100644
index 0000000..a09b605
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp/lamp_normal.png differ
diff --git a/Tools/output/townsquare_game/lamp/lamp/lamp_roughness.png b/Tools/output/townsquare_game/lamp/lamp/lamp_roughness.png
new file mode 100644
index 0000000..2ee2c50
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp/lamp_roughness.png differ
diff --git a/Tools/output/townsquare_game/lamp/lamp_low.fbx b/Tools/output/townsquare_game/lamp/lamp_low.fbx
new file mode 100644
index 0000000..90cf7ba
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp_low.fbx differ
diff --git a/Tools/output/townsquare_game/lamp/lamp_low_uv.png b/Tools/output/townsquare_game/lamp/lamp_low_uv.png
new file mode 100644
index 0000000..815f126
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp_low_uv.png differ
diff --git a/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.fbx b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.fbx
new file mode 100644
index 0000000..7e827ac
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.fbx differ
diff --git a/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.fbx.meta b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.fbx.meta
new file mode 100644
index 0000000..6083fdd
--- /dev/null
+++ b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.fbx.meta
@@ -0,0 +1,112 @@
+fileFormatVersion: 2
+guid: ca13a80457e84b3f9a75185283ff8d6c
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: lamp
+ second: {fileID: 2100000, guid: 045ac17c68554cd2abbf4fa8b116d2e5, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ 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
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.mat b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.mat
new file mode 100644
index 0000000..8a82d35
--- /dev/null
+++ b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.mat
@@ -0,0 +1,43 @@
+%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: lamp
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: 841e770ba48249498937034a20229123, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: 11b648eb61ee44ab87ce74e72f925678, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.mat.meta b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.mat.meta
new file mode 100644
index 0000000..4a88116
--- /dev/null
+++ b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 045ac17c68554cd2abbf4fa8b116d2e5
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_base.png b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_base.png
new file mode 100644
index 0000000..4cce96b
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_base.png differ
diff --git a/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_base.png.meta b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_base.png.meta
new file mode 100644
index 0000000..aea9d8d
--- /dev/null
+++ b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_base.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 841e770ba48249498937034a20229123
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_mix.png b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_mix.png
new file mode 100644
index 0000000..cc72625
Binary files /dev/null and b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_mix.png differ
diff --git a/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_mix.png.meta b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_mix.png.meta
new file mode 100644
index 0000000..1efd911
--- /dev/null
+++ b/Tools/output/townsquare_game/lamp/lamp_xpbr/lamp_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 11b648eb61ee44ab87ce74e72f925678
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/shop/shop/shop.fbx b/Tools/output/townsquare_game/shop/shop/shop.fbx
new file mode 100644
index 0000000..dcf8aef
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop/shop.fbx differ
diff --git a/Tools/output/townsquare_game/shop/shop/shop_ao.png b/Tools/output/townsquare_game/shop/shop/shop_ao.png
new file mode 100644
index 0000000..da4a942
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop/shop_ao.png differ
diff --git a/Tools/output/townsquare_game/shop/shop/shop_color.png b/Tools/output/townsquare_game/shop/shop/shop_color.png
new file mode 100644
index 0000000..7244c58
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop/shop_color.png differ
diff --git a/Tools/output/townsquare_game/shop/shop/shop_metallic.png b/Tools/output/townsquare_game/shop/shop/shop_metallic.png
new file mode 100644
index 0000000..fd102cf
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop/shop_metallic.png differ
diff --git a/Tools/output/townsquare_game/shop/shop/shop_normal.png b/Tools/output/townsquare_game/shop/shop/shop_normal.png
new file mode 100644
index 0000000..6840de8
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop/shop_normal.png differ
diff --git a/Tools/output/townsquare_game/shop/shop/shop_roughness.png b/Tools/output/townsquare_game/shop/shop/shop_roughness.png
new file mode 100644
index 0000000..9453fc8
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop/shop_roughness.png differ
diff --git a/Tools/output/townsquare_game/shop/shop_low.fbx b/Tools/output/townsquare_game/shop/shop_low.fbx
new file mode 100644
index 0000000..0b01f52
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop_low.fbx differ
diff --git a/Tools/output/townsquare_game/shop/shop_low_uv.png b/Tools/output/townsquare_game/shop/shop_low_uv.png
new file mode 100644
index 0000000..1e2d443
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop_low_uv.png differ
diff --git a/Tools/output/townsquare_game/shop/shop_xpbr/shop.fbx b/Tools/output/townsquare_game/shop/shop_xpbr/shop.fbx
new file mode 100644
index 0000000..b191629
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop_xpbr/shop.fbx differ
diff --git a/Tools/output/townsquare_game/shop/shop_xpbr/shop.fbx.meta b/Tools/output/townsquare_game/shop/shop_xpbr/shop.fbx.meta
new file mode 100644
index 0000000..39be450
--- /dev/null
+++ b/Tools/output/townsquare_game/shop/shop_xpbr/shop.fbx.meta
@@ -0,0 +1,112 @@
+fileFormatVersion: 2
+guid: 0b2a2e13bdbb420f8b0f4fdc27a0557e
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: shop
+ second: {fileID: 2100000, guid: 2a414afe20754afeb9dac51f39b5ad66, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ 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
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/shop/shop_xpbr/shop.mat b/Tools/output/townsquare_game/shop/shop_xpbr/shop.mat
new file mode 100644
index 0000000..dade9cf
--- /dev/null
+++ b/Tools/output/townsquare_game/shop/shop_xpbr/shop.mat
@@ -0,0 +1,43 @@
+%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: shop
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: a0a548d530b24caab5da0cf358c3e03d, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: 3944b80257f14402a5b19ee022deabbb, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Tools/output/townsquare_game/shop/shop_xpbr/shop.mat.meta b/Tools/output/townsquare_game/shop/shop_xpbr/shop.mat.meta
new file mode 100644
index 0000000..14ff344
--- /dev/null
+++ b/Tools/output/townsquare_game/shop/shop_xpbr/shop.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 2a414afe20754afeb9dac51f39b5ad66
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/shop/shop_xpbr/shop_base.png b/Tools/output/townsquare_game/shop/shop_xpbr/shop_base.png
new file mode 100644
index 0000000..3fbd02a
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop_xpbr/shop_base.png differ
diff --git a/Tools/output/townsquare_game/shop/shop_xpbr/shop_base.png.meta b/Tools/output/townsquare_game/shop/shop_xpbr/shop_base.png.meta
new file mode 100644
index 0000000..824e302
--- /dev/null
+++ b/Tools/output/townsquare_game/shop/shop_xpbr/shop_base.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: a0a548d530b24caab5da0cf358c3e03d
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/shop/shop_xpbr/shop_mix.png b/Tools/output/townsquare_game/shop/shop_xpbr/shop_mix.png
new file mode 100644
index 0000000..e848684
Binary files /dev/null and b/Tools/output/townsquare_game/shop/shop_xpbr/shop_mix.png differ
diff --git a/Tools/output/townsquare_game/shop/shop_xpbr/shop_mix.png.meta b/Tools/output/townsquare_game/shop/shop_xpbr/shop_mix.png.meta
new file mode 100644
index 0000000..56fb958
--- /dev/null
+++ b/Tools/output/townsquare_game/shop/shop_xpbr/shop_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: 3944b80257f14402a5b19ee022deabbb
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/tree/tree/tree.fbx b/Tools/output/townsquare_game/tree/tree/tree.fbx
new file mode 100644
index 0000000..7062790
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree/tree.fbx differ
diff --git a/Tools/output/townsquare_game/tree/tree/tree_ao.png b/Tools/output/townsquare_game/tree/tree/tree_ao.png
new file mode 100644
index 0000000..92ccc4c
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree/tree_ao.png differ
diff --git a/Tools/output/townsquare_game/tree/tree/tree_color.png b/Tools/output/townsquare_game/tree/tree/tree_color.png
new file mode 100644
index 0000000..f061f75
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree/tree_color.png differ
diff --git a/Tools/output/townsquare_game/tree/tree/tree_metallic.png b/Tools/output/townsquare_game/tree/tree/tree_metallic.png
new file mode 100644
index 0000000..5dcacb8
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree/tree_metallic.png differ
diff --git a/Tools/output/townsquare_game/tree/tree/tree_normal.png b/Tools/output/townsquare_game/tree/tree/tree_normal.png
new file mode 100644
index 0000000..afe2088
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree/tree_normal.png differ
diff --git a/Tools/output/townsquare_game/tree/tree/tree_roughness.png b/Tools/output/townsquare_game/tree/tree/tree_roughness.png
new file mode 100644
index 0000000..28b18ee
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree/tree_roughness.png differ
diff --git a/Tools/output/townsquare_game/tree/tree_low.fbx b/Tools/output/townsquare_game/tree/tree_low.fbx
new file mode 100644
index 0000000..16cd93d
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree_low.fbx differ
diff --git a/Tools/output/townsquare_game/tree/tree_low_uv.png b/Tools/output/townsquare_game/tree/tree_low_uv.png
new file mode 100644
index 0000000..176463f
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree_low_uv.png differ
diff --git a/Tools/output/townsquare_game/tree/tree_xpbr/tree.fbx b/Tools/output/townsquare_game/tree/tree_xpbr/tree.fbx
new file mode 100644
index 0000000..7adde8c
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree_xpbr/tree.fbx differ
diff --git a/Tools/output/townsquare_game/tree/tree_xpbr/tree.fbx.meta b/Tools/output/townsquare_game/tree/tree_xpbr/tree.fbx.meta
new file mode 100644
index 0000000..f4b6b6c
--- /dev/null
+++ b/Tools/output/townsquare_game/tree/tree_xpbr/tree.fbx.meta
@@ -0,0 +1,112 @@
+fileFormatVersion: 2
+guid: 7efa4251f48c424da9b7ede1a8b28ddf
+ModelImporter:
+ serializedVersion: 22200
+ internalIDToNameTable: []
+ externalObjects:
+ - first:
+ type: UnityEngine:Material
+ assembly: UnityEngine.CoreModule
+ name: tree
+ second: {fileID: 2100000, guid: b7aba4b7bc7842c2a137e14bf8c5946c, type: 2}
+ materials:
+ materialImportMode: 2
+ materialName: 0
+ materialSearch: 1
+ materialLocation: 1
+ animations:
+ legacyGenerateAnimations: 4
+ bakeSimulation: 0
+ resampleCurves: 1
+ optimizeGameObjects: 0
+ removeConstantScaleCurves: 0
+ motionNodeName:
+ 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
+ importPhysicalCameras: 1
+ importVisibility: 1
+ importBlendShapes: 1
+ importCameras: 1
+ importLights: 1
+ nodeNameCollisionStrategy: 1
+ fileIdsGeneration: 2
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 1
+ keepQuads: 0
+ weldVertices: 1
+ bakeAxisConversion: 1
+ preserveHierarchy: 0
+ skinWeightsMode: 0
+ maxBonesPerVertex: 4
+ minBoneWeight: 0.001
+ optimizeBones: 1
+ meshOptimizationFlags: -1
+ indexFormat: 0
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVMarginMethod: 1
+ secondaryUVMinLightmapResolution: 40
+ secondaryUVMinObjectScale: 1
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ strictVertexDataChecks: 0
+ 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
+ addHumanoidExtraRootOnlyWhenUsingAvatar: 1
+ importBlendShapeDeformPercent: 1
+ remapMaterialsIfMaterialImportModeIsNone: 0
+ additionalBone: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/tree/tree_xpbr/tree.mat b/Tools/output/townsquare_game/tree/tree_xpbr/tree.mat
new file mode 100644
index 0000000..5a1f63d
--- /dev/null
+++ b/Tools/output/townsquare_game/tree/tree_xpbr/tree.mat
@@ -0,0 +1,43 @@
+%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: tree
+ m_Shader: {fileID: 4800000, guid: cab897163f45445fa34263d6670bfc9e, type: 3}
+ m_Parent: {fileID: 0}
+ m_ModifiedSerializedProperties: 0
+ m_ValidKeywords: []
+ m_InvalidKeywords: []
+ m_LightmapFlags: 4
+ m_EnableInstancingVariants: 0
+ m_DoubleSidedGI: 0
+ m_CustomRenderQueue: -1
+ stringTagMap: {}
+ disabledShaderPasses: []
+ m_LockedProperties:
+ m_SavedProperties:
+ serializedVersion: 3
+ m_TexEnvs:
+ - _MainTex:
+ m_Texture: {fileID: 2800000, guid: ef36f5faaa2643bdabd30c5e5d2033b8, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ - _MixTex:
+ m_Texture: {fileID: 2800000, guid: a1aad368ce7e44cbb2872bcc89ab34cd, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Ints: []
+ m_Floats:
+ - _AO: 1
+ - _AlphaTest: 0
+ - _Cutoff: 0.5
+ - _Metallic: 1
+ - _Roughness: 0.8
+ m_Colors:
+ - _BaseColor: {r: 1, g: 1, b: 1, a: 1}
+ m_BuildTextureStacks: []
diff --git a/Tools/output/townsquare_game/tree/tree_xpbr/tree.mat.meta b/Tools/output/townsquare_game/tree/tree_xpbr/tree.mat.meta
new file mode 100644
index 0000000..5e3154f
--- /dev/null
+++ b/Tools/output/townsquare_game/tree/tree_xpbr/tree.mat.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b7aba4b7bc7842c2a137e14bf8c5946c
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2100000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/tree/tree_xpbr/tree_base.png b/Tools/output/townsquare_game/tree/tree_xpbr/tree_base.png
new file mode 100644
index 0000000..7c4f3ed
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree_xpbr/tree_base.png differ
diff --git a/Tools/output/townsquare_game/tree/tree_xpbr/tree_base.png.meta b/Tools/output/townsquare_game/tree/tree_xpbr/tree_base.png.meta
new file mode 100644
index 0000000..2612466
--- /dev/null
+++ b/Tools/output/townsquare_game/tree/tree_xpbr/tree_base.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: ef36f5faaa2643bdabd30c5e5d2033b8
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_game/tree/tree_xpbr/tree_mix.png b/Tools/output/townsquare_game/tree/tree_xpbr/tree_mix.png
new file mode 100644
index 0000000..a6a92e2
Binary files /dev/null and b/Tools/output/townsquare_game/tree/tree_xpbr/tree_mix.png differ
diff --git a/Tools/output/townsquare_game/tree/tree_xpbr/tree_mix.png.meta b/Tools/output/townsquare_game/tree/tree_xpbr/tree_mix.png.meta
new file mode 100644
index 0000000..d5cf39f
--- /dev/null
+++ b/Tools/output/townsquare_game/tree/tree_xpbr/tree_mix.png.meta
@@ -0,0 +1,101 @@
+fileFormatVersion: 2
+guid: a1aad368ce7e44cbb2872bcc89ab34cd
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 12
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 0
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 1024
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Tools/output/townsquare_pipeline_summary.json b/Tools/output/townsquare_pipeline_summary.json
new file mode 100644
index 0000000..2c2118a
--- /dev/null
+++ b/Tools/output/townsquare_pipeline_summary.json
@@ -0,0 +1,58 @@
+[
+ {
+ "name": "ground",
+ "tris_target": 800,
+ "tris_after": null,
+ "glb": "Tools/output/townsquare_3d/ground/ground.glb",
+ "dest": "AIClient/Assets/Bundles/Scenes/Town/TownSquare/ground"
+ },
+ {
+ "name": "shop",
+ "tris_target": 1800,
+ "tris_after": null,
+ "glb": "Tools/output/townsquare_3d/shop/shop.glb",
+ "dest": "AIClient/Assets/Bundles/Scenes/Town/TownSquare/shop"
+ },
+ {
+ "name": "tree",
+ "tris_target": 1500,
+ "tris_after": null,
+ "glb": "Tools/output/townsquare_3d/tree/tree.glb",
+ "dest": "AIClient/Assets/Bundles/Scenes/Town/TownSquare/tree"
+ },
+ {
+ "name": "lamp",
+ "tris_target": 500,
+ "tris_after": null,
+ "glb": "Tools/output/townsquare_3d/lamp/lamp.glb",
+ "dest": "AIClient/Assets/Bundles/Scenes/Town/TownSquare/lamp"
+ },
+ {
+ "name": "board",
+ "tris_target": 800,
+ "tris_after": 800,
+ "glb": "Tools/output/townsquare_3d/board/board.glb",
+ "dest": "AIClient/Assets/Bundles/Scenes/Town/TownSquare/board"
+ },
+ {
+ "name": "fountain",
+ "tris_target": 1800,
+ "tris_after": 1798,
+ "glb": "Tools/output/townsquare_3d/fountain/fountain.glb",
+ "dest": "AIClient/Assets/Bundles/Scenes/Town/TownSquare/fountain"
+ },
+ {
+ "name": "bench",
+ "tris_target": 700,
+ "tris_after": 699,
+ "glb": "Tools/output/townsquare_3d/bench/bench.glb",
+ "dest": "AIClient/Assets/Bundles/Scenes/Town/TownSquare/bench"
+ },
+ {
+ "name": "bush",
+ "tris_target": 500,
+ "tris_after": 21969,
+ "glb": "Tools/output/townsquare_3d/bush/bush.glb",
+ "dest": "AIClient/Assets/Bundles/Scenes/Town/TownSquare/bush"
+ }
+]
\ No newline at end of file