-
Notifications
You must be signed in to change notification settings - Fork 769
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
v1.0.128 GridKit:增加 DynaGrid 支持动态宽高(以增加示例、文档)
- Loading branch information
1 parent
51aa416
commit e003c7b
Showing
93 changed files
with
755 additions
and
313 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
89 changes: 89 additions & 0 deletions
89
QFramework.Unity2018+/Assets/QFramework/Toolkits/_CoreKit/GridKit/DynaGrid.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
/**************************************************************************** | ||
* Copyright (c) 2016 ~ 2024 liangxiegame UNDER MIT License | ||
* | ||
* https://qframework.cn | ||
* https://github.com/liangxiegame/QFramework | ||
****************************************************************************/ | ||
|
||
using System; | ||
using System.Collections.Generic; | ||
using UnityEngine; | ||
|
||
namespace QFramework | ||
{ | ||
#if UNITY_EDITOR | ||
[ClassAPI("11.GridKit", "DynaGrid", 1, "DynaGrid")] | ||
[APIDescriptionCN("动态 Grid 数据结构")] | ||
[APIDescriptionEN("Dynamic Grid DataStructure")] | ||
[APIExampleCode(@" | ||
using UnityEngine; | ||
namespace QFramework.Example | ||
{ | ||
public class DynaGridExample : MonoBehaviour | ||
{ | ||
public class MyData | ||
{ | ||
public string Key; | ||
} | ||
void Start() | ||
{ | ||
var dynaGrid = new DynaGrid<MyData>(); | ||
dynaGrid[1, 1] = new MyData() { Key = ""Hero"" }; | ||
dynaGrid[-1, -10] = new MyData() { Key = ""Enemy"" }; | ||
dynaGrid.ForEach((x, y, data) => { Debug.Log($""{x} {y} {data.Key}""); }); | ||
} | ||
} | ||
} | ||
// 1 1 Hero | ||
// -1 -10 Enemy | ||
")] | ||
#endif | ||
public class DynaGrid<T> | ||
{ | ||
private Dictionary<Tuple<int, int>, T> mGrid = null; | ||
|
||
public DynaGrid() | ||
{ | ||
mGrid = new Dictionary<Tuple<int, int>, T>(); | ||
} | ||
|
||
public void ForEach(Action<int, int, T> each) | ||
{ | ||
foreach (var kvp in mGrid) | ||
{ | ||
each(kvp.Key.Item1, kvp.Key.Item2, kvp.Value); | ||
} | ||
} | ||
|
||
public void ForEach(Action<T> each) | ||
{ | ||
foreach (var kvp in mGrid) | ||
{ | ||
each(kvp.Value); | ||
} | ||
} | ||
|
||
public T this[int xIndex, int yIndex] | ||
{ | ||
get | ||
{ | ||
var key = new Tuple<int, int>(xIndex, yIndex); | ||
return mGrid.TryGetValue(key, out var value) ? value : default; | ||
} | ||
set | ||
{ | ||
var key = new Tuple<int, int>(xIndex, yIndex); | ||
mGrid[key] = value; | ||
} | ||
} | ||
|
||
public void Clear(Action<T> cleanupItem = null) | ||
{ | ||
mGrid.Clear(); | ||
} | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
QFramework.Unity2018+/Assets/QFramework/Toolkits/_CoreKit/GridKit/DynaGrid.cs.meta
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Binary file modified
BIN
+695 Bytes
(120%)
QFramework.Unity2018+/Assets/QFramework/Toolkits/_CoreKit/GridKit/Example.unitypackage
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.