@@ -13,6 +13,9 @@ This package allows you to Tag your Game Objects with ScriptableObjects.
13
13
![ ] ( https://imgur.com/EPxkbza.png )
14
14
15
15
### Runtime Operations:
16
+ <details ><summary >Code</summary >
17
+ <p >
18
+
16
19
``` csharp
17
20
public class Test : MonoBehaviour
18
21
{
@@ -41,4 +44,110 @@ public class Test : MonoBehaviour
41
44
_enemy .RemoveTag (_zombieTag );
42
45
}
43
46
}
47
+ ```
48
+
49
+ </p >
50
+ </details >
51
+
52
+
53
+ ### Performance Test:
54
+ <details ><summary >Code</summary >
55
+ <p >
56
+
57
+ ``` csharp
58
+ using Sirenix .OdinInspector ;
59
+ using System .Diagnostics ;
60
+ using ToolBox .Pools ;
61
+ using ToolBox .Tags ;
62
+ using UnityEngine ;
63
+
64
+ namespace ToolBox .Test
65
+ {
66
+ [DefaultExecutionOrder (- 100 )]
67
+ public class Tester : MonoBehaviour
68
+ {
69
+ [SerializeField ] private Tag _myTag = null ;
70
+ [SerializeField ] private string _unityTag = null ;
71
+ [SerializeField ] private GameObject _object = null ;
72
+
73
+ [SerializeField , ReadOnly ] private float _myMS = 0 ;
74
+ [SerializeField , ReadOnly ] private float _unityMS = 0 ;
75
+
76
+ [SerializeField , ReadOnly ] private bool _hasMyTag = false ;
77
+ [SerializeField , ReadOnly ] private bool _hasUnityTag = false ;
78
+
79
+ private const int ITERATIONS = 10 ;
80
+
81
+ [Button ]
82
+ private void MyTagTest ()
83
+ {
84
+ _myMS = 0 f ;
85
+
86
+ for (int i = 0 ; i < ITERATIONS ; i ++ )
87
+ {
88
+ Stopwatch stopwatch = new Stopwatch ();
89
+ stopwatch .Start ();
90
+
91
+ for (int j = 0 ; j < 100000 ; j ++ )
92
+ {
93
+ _hasMyTag = _object .HasTag (_myTag );
94
+ }
95
+
96
+ stopwatch .Stop ();
97
+ _myMS += stopwatch .ElapsedMilliseconds ;
98
+ }
99
+
100
+ _myMS /= ITERATIONS ;
101
+ }
102
+
103
+ [Button ]
104
+ private void UnityTagTest ()
105
+ {
106
+ _unityMS = 0 ;
107
+
108
+ for (int i = 0 ; i < ITERATIONS ; i ++ )
109
+ {
110
+ Stopwatch stopwatch = new Stopwatch ();
111
+ stopwatch .Start ();
112
+
113
+ for (int j = 0 ; j < 100000 ; j ++ )
114
+ {
115
+ _hasUnityTag = _object .CompareTag (_unityTag );
116
+ }
117
+
118
+ stopwatch .Stop ();
119
+ _unityMS += stopwatch .ElapsedMilliseconds ;
120
+ }
121
+
122
+ _unityMS /= ITERATIONS ;
123
+ }
124
+ }
125
+ }
126
+
44
127
```
128
+ </p >
129
+ </details >
130
+
131
+ <details ><summary >Scene and Objects Setup</summary >
132
+ <p >
133
+
134
+ ![ Scene Setup] ( https://imgur.com/IgSjjpz.png )
135
+
136
+ ![ A Object Setup] ( https://imgur.com/0kkITFa.png )
137
+
138
+ ![ B Object Setup] ( https://imgur.com/4DVS3XP.png )
139
+ </p >
140
+ </details >
141
+
142
+ <details ><summary >Test Result</summary >
143
+ <p >
144
+
145
+ ![ Result] ( https://imgur.com/YedN04E.png )
146
+
147
+ </p >
148
+ </details >
149
+
150
+
151
+
152
+
153
+
0 commit comments