summaryrefslogtreecommitdiff
path: root/marching/Assets/Scripts
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-05-09 19:28:57 +0800
committerchai <215380520@qq.com>2023-05-09 19:28:57 +0800
commitfc2cfdad0d3cfb3844681855c1c45d9415f5ee8e (patch)
treeacbcac9d6e153b011171ae0246592d68ff008b75 /marching/Assets/Scripts
parent4afa7c36ba9ec33ed113dcfb7cd33bd630d444f2 (diff)
*misc
Diffstat (limited to 'marching/Assets/Scripts')
-rw-r--r--marching/Assets/Scripts/Battle.meta8
-rw-r--r--marching/Assets/Scripts/Battle/BattleManager.cs10
-rw-r--r--marching/Assets/Scripts/Battle/BattleManager.cs.meta11
-rw-r--r--marching/Assets/Scripts/Battle/GridMap.cs47
-rw-r--r--marching/Assets/Scripts/Battle/GridMap.cs.meta11
-rw-r--r--marching/Assets/Scripts/Battle/SceneManager.cs11
-rw-r--r--marching/Assets/Scripts/Battle/SceneManager.cs.meta11
-rw-r--r--marching/Assets/Scripts/Managers.meta8
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsManager.cs62
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsQuadtree.cs67
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsQuadtree.cs.meta11
11 files changed, 195 insertions, 62 deletions
diff --git a/marching/Assets/Scripts/Battle.meta b/marching/Assets/Scripts/Battle.meta
new file mode 100644
index 0000000..446dac0
--- /dev/null
+++ b/marching/Assets/Scripts/Battle.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 62800c830f138d1439e0974c0c683f76
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Battle/BattleManager.cs b/marching/Assets/Scripts/Battle/BattleManager.cs
new file mode 100644
index 0000000..8372139
--- /dev/null
+++ b/marching/Assets/Scripts/Battle/BattleManager.cs
@@ -0,0 +1,10 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class BattleManager : Singleton<BattleManager>
+{
+
+
+
+} \ No newline at end of file
diff --git a/marching/Assets/Scripts/Battle/BattleManager.cs.meta b/marching/Assets/Scripts/Battle/BattleManager.cs.meta
new file mode 100644
index 0000000..a89b003
--- /dev/null
+++ b/marching/Assets/Scripts/Battle/BattleManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bea0e35a4b2fa264698b0e2816565545
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Battle/GridMap.cs b/marching/Assets/Scripts/Battle/GridMap.cs
new file mode 100644
index 0000000..c99bf4a
--- /dev/null
+++ b/marching/Assets/Scripts/Battle/GridMap.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 用Grid托管需要实现这个接口
+/// </summary>
+public interface IGridMapObject
+{
+ // 坐标,transform.position
+ public Vector2 coordinate { get; }
+}
+
+public class GridCell
+{
+ public List<IGridMapObject> m_Object;
+}
+
+/// <summary>
+/// 用网格划分场景,不依赖形状,只依赖位置
+/// </summary>
+public class GridMap
+{
+
+ // 单个cell的大小
+ private Vector2 m_CellSize;
+
+ // 整个grid的范围 x, y, xcount, ycount
+ private Vector4 m_Range;
+
+ // 左上角开始索引
+ private List<GridCell> m_GridCells;
+
+ public GridMap()
+ {
+ m_GridCells = new List<GridCell>();
+ }
+
+ private int GetGridIndex(Vector2 pos)
+ {
+
+
+ return -1;
+ }
+
+} \ No newline at end of file
diff --git a/marching/Assets/Scripts/Battle/GridMap.cs.meta b/marching/Assets/Scripts/Battle/GridMap.cs.meta
new file mode 100644
index 0000000..989a829
--- /dev/null
+++ b/marching/Assets/Scripts/Battle/GridMap.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 66e52a379c253b54d896c3a5631bfdfa
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Battle/SceneManager.cs b/marching/Assets/Scripts/Battle/SceneManager.cs
new file mode 100644
index 0000000..9ed2fc9
--- /dev/null
+++ b/marching/Assets/Scripts/Battle/SceneManager.cs
@@ -0,0 +1,11 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class SceneManager : Singleton<SceneManager>
+{
+
+ // 场景内所有对象用这个结构维护
+ private GridMap m_GridMap;
+
+} \ No newline at end of file
diff --git a/marching/Assets/Scripts/Battle/SceneManager.cs.meta b/marching/Assets/Scripts/Battle/SceneManager.cs.meta
new file mode 100644
index 0000000..fe1604c
--- /dev/null
+++ b/marching/Assets/Scripts/Battle/SceneManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 4d3730897865ceb44a87a57742832f78
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Managers.meta b/marching/Assets/Scripts/Managers.meta
new file mode 100644
index 0000000..4c87204
--- /dev/null
+++ b/marching/Assets/Scripts/Managers.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9b80abdfc07d3d442917d0b5c531db6b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Physics/PhysicsManager.cs b/marching/Assets/Scripts/Physics/PhysicsManager.cs
index bfb1dfe..bbba030 100644
--- a/marching/Assets/Scripts/Physics/PhysicsManager.cs
+++ b/marching/Assets/Scripts/Physics/PhysicsManager.cs
@@ -11,68 +11,6 @@ public enum ColliderType
Hitbox,
}
-class PhysicsQuadtree
-{
- public Vector4 quadtreeRange { set { m_QuadtreeRange = value; } }
- private Vector4 m_QuadtreeRange;
- private Quadtree m_Quadtree;
- private List<IQuadTreeObject> m_Objects = new List<IQuadTreeObject>();
-
- public PhysicsQuadtree(Vector4 range)
- {
- m_QuadtreeRange = range;
- m_Quadtree = new Quadtree(0, range);
- }
-
- public void AddObject(IQuadTreeObject obj)
- {
- m_Objects.Add(obj);
- }
-
- public void RemoveObject(IQuadTreeObject obj)
- {
- m_Objects.Remove(obj);
- }
-
- public void UpdateQuadtree()
- {
- m_Quadtree.Clear(false);
- m_Quadtree.Rebound(m_QuadtreeRange);
- for (int i = 0; i < m_Objects.Count; i++)
- {
- IQuadTreeObject obj = m_Objects[i];
- m_Quadtree.Insert(obj);
- }
- }
-
- public void Debug()
- {
- Color c = Gizmos.color;
- Gizmos.color = Color.red;
- m_Quadtree?.Iterate((t) =>
- {
- Vector3 pos = new Vector3(t.x, t.y, 0);
- Vector3 size = new Vector3(t.w, t.h, 1);
- Gizmos.DrawWireCube(pos, size);
- });
- Gizmos.color = c;
- }
-
- public bool Retrive(ref List<IQuadTreeObject> returnObjs, IQuadTreeObject obj)
- {
- return m_Quadtree.Retrieve(ref returnObjs, obj);
- }
-
- public bool Retrive(ref List<IQuadTreeObject> returnObjs, Vector4 bound)
- {
- return m_Quadtree.Retrieve(ref returnObjs, bound);
- }
-
-}
-
-/// <summary>
-/// IJռ仮֣Żײ
-/// </summary>
public partial class PhysicsManager : Singleton<PhysicsManager>
{
#region Quadtrees
diff --git a/marching/Assets/Scripts/Physics/PhysicsQuadtree.cs b/marching/Assets/Scripts/Physics/PhysicsQuadtree.cs
new file mode 100644
index 0000000..cb17900
--- /dev/null
+++ b/marching/Assets/Scripts/Physics/PhysicsQuadtree.cs
@@ -0,0 +1,67 @@
+using mh;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+/// <summary>
+/// 基于图形的四叉树
+/// </summary>
+class PhysicsQuadtree
+{
+ public Vector4 quadtreeRange { set { m_QuadtreeRange = value; } }
+ private Vector4 m_QuadtreeRange;
+ private Quadtree m_Quadtree;
+ private List<IQuadTreeObject> m_Objects = new List<IQuadTreeObject>();
+
+ public PhysicsQuadtree(Vector4 range)
+ {
+ m_QuadtreeRange = range;
+ m_Quadtree = new Quadtree(0, range);
+ }
+
+ public void AddObject(IQuadTreeObject obj)
+ {
+ m_Objects.Add(obj);
+ }
+
+ public void RemoveObject(IQuadTreeObject obj)
+ {
+ m_Objects.Remove(obj);
+ }
+
+ public void UpdateQuadtree()
+ {
+ m_Quadtree.Clear(false);
+ m_Quadtree.Rebound(m_QuadtreeRange);
+ for (int i = 0; i < m_Objects.Count; i++)
+ {
+ IQuadTreeObject obj = m_Objects[i];
+ m_Quadtree.Insert(obj);
+ }
+ }
+
+ public void Debug()
+ {
+ Color c = Gizmos.color;
+ Gizmos.color = Color.red;
+ m_Quadtree?.Iterate((t) =>
+ {
+ Vector3 pos = new Vector3(t.x, t.y, 0);
+ Vector3 size = new Vector3(t.w, t.h, 1);
+ Gizmos.DrawWireCube(pos, size);
+ });
+ Gizmos.color = c;
+ }
+
+ public bool Retrive(ref List<IQuadTreeObject> returnObjs, IQuadTreeObject obj)
+ {
+ return m_Quadtree.Retrieve(ref returnObjs, obj);
+ }
+
+ public bool Retrive(ref List<IQuadTreeObject> returnObjs, Vector4 bound)
+ {
+ return m_Quadtree.Retrieve(ref returnObjs, bound);
+ }
+
+}
+
diff --git a/marching/Assets/Scripts/Physics/PhysicsQuadtree.cs.meta b/marching/Assets/Scripts/Physics/PhysicsQuadtree.cs.meta
new file mode 100644
index 0000000..c9d1346
--- /dev/null
+++ b/marching/Assets/Scripts/Physics/PhysicsQuadtree.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 07c60bb0f452e9a4a8cec80be4c6183a
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant: