diff --git a/unity/.vsconfig b/unity/.vsconfig new file mode 100644 index 0000000..f019fd0 --- /dev/null +++ b/unity/.vsconfig @@ -0,0 +1,6 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.VisualStudio.Workload.ManagedGame" + ] +} diff --git a/unity/Assets/Scenes/Test.unity b/unity/Assets/Scenes/Test.unity index 1c9ea3b..888117e 100644 --- a/unity/Assets/Scenes/Test.unity +++ b/unity/Assets/Scenes/Test.unity @@ -883,7 +883,7 @@ Transform: m_GameObject: {fileID: 330585543} serializedVersion: 2 m_LocalRotation: {x: 0.38268343, y: 0, z: 0, w: 0.92387956} - m_LocalPosition: {x: 0, y: 5, z: -6.99} + m_LocalPosition: {x: 0, y: 8, z: -10} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] @@ -946,7 +946,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: target: {fileID: 441783843} - offset: {x: 0, y: 6.25, z: -7.5} + offset: {x: 0, y: 8, z: -10} --- !u!1 &338266639 GameObject: m_ObjectHideFlags: 0 diff --git a/unity/Assets/Scenes/res.meta b/unity/Assets/Scenes/res.meta new file mode 100644 index 0000000..6a01fd4 --- /dev/null +++ b/unity/Assets/Scenes/res.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: DX5KtX+lBXIaXtVUILykYdLl4zMSmZ7W9PoEupSl6+r76/9GNXeE1Lw= +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Scenes/bg.png b/unity/Assets/Scenes/res/bg.png similarity index 100% rename from unity/Assets/Scenes/bg.png rename to unity/Assets/Scenes/res/bg.png diff --git a/unity/Assets/Scenes/bg.png.meta b/unity/Assets/Scenes/res/bg.png.meta similarity index 100% rename from unity/Assets/Scenes/bg.png.meta rename to unity/Assets/Scenes/res/bg.png.meta diff --git a/unity/Assets/Scenes/bg1.png b/unity/Assets/Scenes/res/bg1.png similarity index 100% rename from unity/Assets/Scenes/bg1.png rename to unity/Assets/Scenes/res/bg1.png diff --git a/unity/Assets/Scenes/bg1.png.meta b/unity/Assets/Scenes/res/bg1.png.meta similarity index 100% rename from unity/Assets/Scenes/bg1.png.meta rename to unity/Assets/Scenes/res/bg1.png.meta diff --git a/unity/Assets/Scenes/res/object.meta b/unity/Assets/Scenes/res/object.meta new file mode 100644 index 0000000..068b8c7 --- /dev/null +++ b/unity/Assets/Scenes/res/object.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: Cn8d5nyqUypHBc3PlXSVAcGFYCL5FYaBHGZq43WU7tRX8a7FWYAKLuM= +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Scenes/c1.png b/unity/Assets/Scenes/res/object/c1.png similarity index 100% rename from unity/Assets/Scenes/c1.png rename to unity/Assets/Scenes/res/object/c1.png diff --git a/unity/Assets/Scenes/c1.png.meta b/unity/Assets/Scenes/res/object/c1.png.meta similarity index 100% rename from unity/Assets/Scenes/c1.png.meta rename to unity/Assets/Scenes/res/object/c1.png.meta diff --git a/unity/Assets/Scenes/c2.png b/unity/Assets/Scenes/res/object/c2.png similarity index 100% rename from unity/Assets/Scenes/c2.png rename to unity/Assets/Scenes/res/object/c2.png diff --git a/unity/Assets/Scenes/c2.png.meta b/unity/Assets/Scenes/res/object/c2.png.meta similarity index 100% rename from unity/Assets/Scenes/c2.png.meta rename to unity/Assets/Scenes/res/object/c2.png.meta diff --git a/unity/Assets/Scenes/图层 14.png b/unity/Assets/Scenes/res/object/低树1.png similarity index 100% rename from unity/Assets/Scenes/图层 14.png rename to unity/Assets/Scenes/res/object/低树1.png diff --git a/unity/Assets/Scenes/图层 14.png.meta b/unity/Assets/Scenes/res/object/低树1.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 14.png.meta rename to unity/Assets/Scenes/res/object/低树1.png.meta diff --git a/unity/Assets/Scenes/图层 4.png b/unity/Assets/Scenes/res/object/图层 4.png similarity index 100% rename from unity/Assets/Scenes/图层 4.png rename to unity/Assets/Scenes/res/object/图层 4.png diff --git a/unity/Assets/Scenes/图层 4.png.meta b/unity/Assets/Scenes/res/object/图层 4.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 4.png.meta rename to unity/Assets/Scenes/res/object/图层 4.png.meta diff --git a/unity/Assets/Scenes/图层 5.png b/unity/Assets/Scenes/res/object/图层 5.png similarity index 100% rename from unity/Assets/Scenes/图层 5.png rename to unity/Assets/Scenes/res/object/图层 5.png diff --git a/unity/Assets/Scenes/图层 5.png.meta b/unity/Assets/Scenes/res/object/图层 5.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 5.png.meta rename to unity/Assets/Scenes/res/object/图层 5.png.meta diff --git a/unity/Assets/Scenes/图层 8 (2).png b/unity/Assets/Scenes/res/object/图层 8 (2).png similarity index 100% rename from unity/Assets/Scenes/图层 8 (2).png rename to unity/Assets/Scenes/res/object/图层 8 (2).png diff --git a/unity/Assets/Scenes/图层 8 (2).png.meta b/unity/Assets/Scenes/res/object/图层 8 (2).png.meta similarity index 100% rename from unity/Assets/Scenes/图层 8 (2).png.meta rename to unity/Assets/Scenes/res/object/图层 8 (2).png.meta diff --git a/unity/Assets/Scenes/图层 2.png b/unity/Assets/Scenes/res/object/山1.png similarity index 100% rename from unity/Assets/Scenes/图层 2.png rename to unity/Assets/Scenes/res/object/山1.png diff --git a/unity/Assets/Scenes/图层 2.png.meta b/unity/Assets/Scenes/res/object/山1.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 2.png.meta rename to unity/Assets/Scenes/res/object/山1.png.meta diff --git a/unity/Assets/Scenes/图层 3 (2).png b/unity/Assets/Scenes/res/object/山2.png similarity index 100% rename from unity/Assets/Scenes/图层 3 (2).png rename to unity/Assets/Scenes/res/object/山2.png diff --git a/unity/Assets/Scenes/图层 3 (2).png.meta b/unity/Assets/Scenes/res/object/山2.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 3 (2).png.meta rename to unity/Assets/Scenes/res/object/山2.png.meta diff --git a/unity/Assets/Scenes/图层 4 (2).png b/unity/Assets/Scenes/res/object/山3.png similarity index 100% rename from unity/Assets/Scenes/图层 4 (2).png rename to unity/Assets/Scenes/res/object/山3.png diff --git a/unity/Assets/Scenes/图层 4 (2).png.meta b/unity/Assets/Scenes/res/object/山3.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 4 (2).png.meta rename to unity/Assets/Scenes/res/object/山3.png.meta diff --git a/unity/Assets/Scenes/图层 6 (2).png b/unity/Assets/Scenes/res/object/山4.png similarity index 100% rename from unity/Assets/Scenes/图层 6 (2).png rename to unity/Assets/Scenes/res/object/山4.png diff --git a/unity/Assets/Scenes/图层 6 (2).png.meta b/unity/Assets/Scenes/res/object/山4.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 6 (2).png.meta rename to unity/Assets/Scenes/res/object/山4.png.meta diff --git a/unity/Assets/Scenes/图层 7 (2).png b/unity/Assets/Scenes/res/object/山5.png similarity index 100% rename from unity/Assets/Scenes/图层 7 (2).png rename to unity/Assets/Scenes/res/object/山5.png diff --git a/unity/Assets/Scenes/图层 7 (2).png.meta b/unity/Assets/Scenes/res/object/山5.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 7 (2).png.meta rename to unity/Assets/Scenes/res/object/山5.png.meta diff --git a/unity/Assets/Scenes/图层 19.png b/unity/Assets/Scenes/res/object/山6.png similarity index 100% rename from unity/Assets/Scenes/图层 19.png rename to unity/Assets/Scenes/res/object/山6.png diff --git a/unity/Assets/Scenes/图层 19.png.meta b/unity/Assets/Scenes/res/object/山6.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 19.png.meta rename to unity/Assets/Scenes/res/object/山6.png.meta diff --git a/unity/Assets/Scenes/图层 6.png b/unity/Assets/Scenes/res/object/树1.png similarity index 100% rename from unity/Assets/Scenes/图层 6.png rename to unity/Assets/Scenes/res/object/树1.png diff --git a/unity/Assets/Scenes/图层 6.png.meta b/unity/Assets/Scenes/res/object/树1.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 6.png.meta rename to unity/Assets/Scenes/res/object/树1.png.meta diff --git a/unity/Assets/Scenes/图层 15.png b/unity/Assets/Scenes/res/object/树2.png similarity index 100% rename from unity/Assets/Scenes/图层 15.png rename to unity/Assets/Scenes/res/object/树2.png diff --git a/unity/Assets/Scenes/图层 15.png.meta b/unity/Assets/Scenes/res/object/树2.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 15.png.meta rename to unity/Assets/Scenes/res/object/树2.png.meta diff --git a/unity/Assets/Scenes/图层 16.png b/unity/Assets/Scenes/res/object/树3.png similarity index 100% rename from unity/Assets/Scenes/图层 16.png rename to unity/Assets/Scenes/res/object/树3.png diff --git a/unity/Assets/Scenes/图层 16.png.meta b/unity/Assets/Scenes/res/object/树3.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 16.png.meta rename to unity/Assets/Scenes/res/object/树3.png.meta diff --git a/unity/Assets/Scenes/图层 17.png b/unity/Assets/Scenes/res/object/树4.png similarity index 100% rename from unity/Assets/Scenes/图层 17.png rename to unity/Assets/Scenes/res/object/树4.png diff --git a/unity/Assets/Scenes/图层 17.png.meta b/unity/Assets/Scenes/res/object/树4.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 17.png.meta rename to unity/Assets/Scenes/res/object/树4.png.meta diff --git a/unity/Assets/Scenes/图层 18.png b/unity/Assets/Scenes/res/object/树5.png similarity index 100% rename from unity/Assets/Scenes/图层 18.png rename to unity/Assets/Scenes/res/object/树5.png diff --git a/unity/Assets/Scenes/图层 18.png.meta b/unity/Assets/Scenes/res/object/树5.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 18.png.meta rename to unity/Assets/Scenes/res/object/树5.png.meta diff --git a/unity/Assets/Scenes/图层 3.png b/unity/Assets/Scenes/res/object/树桩1.png similarity index 100% rename from unity/Assets/Scenes/图层 3.png rename to unity/Assets/Scenes/res/object/树桩1.png diff --git a/unity/Assets/Scenes/图层 3.png.meta b/unity/Assets/Scenes/res/object/树桩1.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 3.png.meta rename to unity/Assets/Scenes/res/object/树桩1.png.meta diff --git a/unity/Assets/Scenes/图层 8.png b/unity/Assets/Scenes/res/object/花1.png similarity index 100% rename from unity/Assets/Scenes/图层 8.png rename to unity/Assets/Scenes/res/object/花1.png diff --git a/unity/Assets/Scenes/图层 8.png.meta b/unity/Assets/Scenes/res/object/花1.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 8.png.meta rename to unity/Assets/Scenes/res/object/花1.png.meta diff --git a/unity/Assets/Scenes/图层 9.png b/unity/Assets/Scenes/res/object/花2.png similarity index 100% rename from unity/Assets/Scenes/图层 9.png rename to unity/Assets/Scenes/res/object/花2.png diff --git a/unity/Assets/Scenes/图层 9.png.meta b/unity/Assets/Scenes/res/object/花2.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 9.png.meta rename to unity/Assets/Scenes/res/object/花2.png.meta diff --git a/unity/Assets/Scenes/图层 10.png b/unity/Assets/Scenes/res/object/花3.png similarity index 100% rename from unity/Assets/Scenes/图层 10.png rename to unity/Assets/Scenes/res/object/花3.png diff --git a/unity/Assets/Scenes/图层 10.png.meta b/unity/Assets/Scenes/res/object/花3.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 10.png.meta rename to unity/Assets/Scenes/res/object/花3.png.meta diff --git a/unity/Assets/Scenes/图层 7.png b/unity/Assets/Scenes/res/object/草1.png similarity index 100% rename from unity/Assets/Scenes/图层 7.png rename to unity/Assets/Scenes/res/object/草1.png diff --git a/unity/Assets/Scenes/图层 7.png.meta b/unity/Assets/Scenes/res/object/草1.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 7.png.meta rename to unity/Assets/Scenes/res/object/草1.png.meta diff --git a/unity/Assets/Scenes/图层 11.png b/unity/Assets/Scenes/res/object/草2.png similarity index 100% rename from unity/Assets/Scenes/图层 11.png rename to unity/Assets/Scenes/res/object/草2.png diff --git a/unity/Assets/Scenes/图层 11.png.meta b/unity/Assets/Scenes/res/object/草2.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 11.png.meta rename to unity/Assets/Scenes/res/object/草2.png.meta diff --git a/unity/Assets/Scenes/图层 12.png b/unity/Assets/Scenes/res/object/草3.png similarity index 100% rename from unity/Assets/Scenes/图层 12.png rename to unity/Assets/Scenes/res/object/草3.png diff --git a/unity/Assets/Scenes/图层 12.png.meta b/unity/Assets/Scenes/res/object/草3.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 12.png.meta rename to unity/Assets/Scenes/res/object/草3.png.meta diff --git a/unity/Assets/Scenes/图层 13.png b/unity/Assets/Scenes/res/object/草4.png similarity index 100% rename from unity/Assets/Scenes/图层 13.png rename to unity/Assets/Scenes/res/object/草4.png diff --git a/unity/Assets/Scenes/图层 13.png.meta b/unity/Assets/Scenes/res/object/草4.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 13.png.meta rename to unity/Assets/Scenes/res/object/草4.png.meta diff --git a/unity/Assets/Scenes/res/player.meta b/unity/Assets/Scenes/res/player.meta new file mode 100644 index 0000000..cb10e37 --- /dev/null +++ b/unity/Assets/Scenes/res/player.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: XCsbsi38VCg2OvxSGS3oGO1eNiTfBRpF7zgzhQrGlGh3+RTNDgb/J+E= +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/Assets/Scenes/图层 91.png b/unity/Assets/Scenes/res/player/play1.png similarity index 100% rename from unity/Assets/Scenes/图层 91.png rename to unity/Assets/Scenes/res/player/play1.png diff --git a/unity/Assets/Scenes/图层 91.png.meta b/unity/Assets/Scenes/res/player/play1.png.meta similarity index 100% rename from unity/Assets/Scenes/图层 91.png.meta rename to unity/Assets/Scenes/res/player/play1.png.meta diff --git a/unity/Assets/Scenes/sky.png b/unity/Assets/Scenes/res/sky.png similarity index 100% rename from unity/Assets/Scenes/sky.png rename to unity/Assets/Scenes/res/sky.png diff --git a/unity/Assets/Scenes/sky.png.meta b/unity/Assets/Scenes/res/sky.png.meta similarity index 100% rename from unity/Assets/Scenes/sky.png.meta rename to unity/Assets/Scenes/res/sky.png.meta diff --git a/unity/Assets/Scenes/yl.png b/unity/Assets/Scenes/res/yl.png similarity index 100% rename from unity/Assets/Scenes/yl.png rename to unity/Assets/Scenes/res/yl.png diff --git a/unity/Assets/Scenes/yl.png.meta b/unity/Assets/Scenes/res/yl.png.meta similarity index 100% rename from unity/Assets/Scenes/yl.png.meta rename to unity/Assets/Scenes/res/yl.png.meta diff --git a/unity/Assets/Scenes/组 2.png b/unity/Assets/Scenes/res/组 2.png similarity index 100% rename from unity/Assets/Scenes/组 2.png rename to unity/Assets/Scenes/res/组 2.png diff --git a/unity/Assets/Scenes/组 2.png.meta b/unity/Assets/Scenes/res/组 2.png.meta similarity index 100% rename from unity/Assets/Scenes/组 2.png.meta rename to unity/Assets/Scenes/res/组 2.png.meta diff --git a/unity/Assets/camera/YSorter.cs b/unity/Assets/camera/YSorter.cs new file mode 100644 index 0000000..4485ccd --- /dev/null +++ b/unity/Assets/camera/YSorter.cs @@ -0,0 +1,68 @@ +using UnityEngine; + +/// +/// Y-Sort 排序器 —— 根据物体的Y坐标(世界空间)动态调整Sprite的sortingOrder。 +/// +/// 原理: +/// 在2.5D等距视角游戏中,Y坐标代表"前后"关系(Y越小=越远=越靠后)。 +/// 本脚本每帧根据物体的Y坐标计算sortingOrder,Y值越小排序值越小, +/// 这样后面的物体会被前面的物体遮挡,实现正确的前后遮挡关系。 +/// +/// 用法: +/// 1. 挂到所有需要参与Y-Sort的Sprite物体上(玩家、敌人、树木、石头等) +/// 2. 设置 baseSortingOrder 区分不同类型的物体(如地面=0,角色=1000,UI=2000) +/// 3. 确保所有参与排序的Sprite在同一个Sorting Layer上 +/// +/// 注意: +/// - 本脚本假设摄像机从斜上方俯视(Y轴代表前后) +/// - 所有参与排序的物体必须在同一个Sorting Layer +/// - 建议给不同类型的物体设置不同的baseSortingOrder以避免冲突 +/// +public class YSorter : MonoBehaviour +{ + [Tooltip("基础排序值,用于区分不同类型的物体(如地面=0,角色=1000)")] + [SerializeField] private int baseSortingOrder = 0; + + [Tooltip("Y坐标到sortingOrder的缩放系数(值越大,前后物体排序差异越明显)")] + [SerializeField] private float scaleFactor = 100f; + + [Tooltip("是否每帧更新(关闭则只在移动时更新,性能更好)")] + [SerializeField] private bool updateEveryFrame = true; + + private SpriteRenderer _spriteRenderer; + private Vector3 _lastPosition; + + private void Awake() + { + _spriteRenderer = GetComponentInChildren(); + if (_spriteRenderer == null) + { + Debug.LogWarning($"YSorter: 物体 {gameObject.name} 没有找到SpriteRenderer组件"); + } + _lastPosition = transform.position; + } + + private void LateUpdate() + { + if (_spriteRenderer == null) return; + + // 如果设置了不是每帧更新,只在位置改变时更新 + if (!updateEveryFrame && transform.position == _lastPosition) + return; + + UpdateSortingOrder(); + _lastPosition = transform.position; + } + + private void UpdateSortingOrder() + { + // Y值越小(越远),sortingOrder越小 + // 使用负号是因为Unity中Y轴向上为正,但我们需要Y越小=越靠后 + int sortingOrder = baseSortingOrder - Mathf.RoundToInt(transform.position.y * scaleFactor); + + if (_spriteRenderer.sortingOrder != sortingOrder) + { + _spriteRenderer.sortingOrder = sortingOrder; + } + } +} diff --git a/unity/Assets/camera/YSorter.cs.meta b/unity/Assets/camera/YSorter.cs.meta new file mode 100644 index 0000000..8328cda --- /dev/null +++ b/unity/Assets/camera/YSorter.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: CCgY4CyqVHkfAUXU0+AZevsbEL7ex49jkAXnw8oz9TQ6JplkI3k2lCQ= +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/UserSettings/EditorUserSettings.asset b/unity/UserSettings/EditorUserSettings.asset index 72926fd..821efe0 100644 --- a/unity/UserSettings/EditorUserSettings.asset +++ b/unity/UserSettings/EditorUserSettings.asset @@ -15,17 +15,17 @@ EditorUserSettings: value: 50025251565751035a5b0a7b44250944144f4e7d7d787336782a4a37b6b7606f flags: 0 RecentlyUsedSceneGuid-3: - value: 5a5757560101590a5d0c0e24427b5d44434e4c7a7b7a23677f2b4565b7b5353a - flags: 0 - RecentlyUsedSceneGuid-4: value: 5055070050010c5a0e5d0d27497a0e441016412c2f7d206178714f61b3b8326b flags: 0 - RecentlyUsedSceneGuid-5: + RecentlyUsedSceneGuid-4: value: 5004505e50045a0e5f57097b14250f444615407b287b7e657f704c31b5b36660 flags: 0 - RecentlyUsedSceneGuid-6: + RecentlyUsedSceneGuid-5: value: 5b090d000402580a5c5b087648735e4445151e737b717334757b1832b1b93261 flags: 0 + RecentlyUsedSceneGuid-6: + value: 5a5757560101590a5d0c0e24427b5d44434e4c7a7b7a23677f2b4565b7b5353a + flags: 0 RecentlyUsedSceneGuid-7: value: 5a55515156575a0b0f56592346260f444f16197c7e7f24697d2a4a32b1b0353e flags: 0