forked from JXPorter/OkitaUnity
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathExample.cs
More file actions
122 lines (114 loc) · 2.64 KB
/
Example.cs
File metadata and controls
122 lines (114 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
using UnityEngine;
using System.Collections;
using System; // must add the using System directive to access GarbageCollection functions.
public class Example : MonoBehaviour
{
DestroyMe dm;
private int counter = 10;
delegate void updateHandler();
event updateHandler updateEvent;
ArrayList DestroyList = new ArrayList();
// Use this for initialization
void Start()
{
dm = new DestroyMe("rob");
updateEvent += dm.OnUpdate;
//dm = null;
DestroyList.Add(new DestroyMe("white"));
DestroyList.Add(new DestroyMe("stubbs"));
DestroyList.Add(new DestroyMe("berney"));
}
// Update is called once per frame
void Update()
{
if (updateEvent != null)
{
updateEvent();
counter --;
if (counter <= 0)
{
//updateEvent -= dm.OnUpdate;
dm = null;
updateEvent = null; // the OnUpdate() will stop being called after 10 counts
GC.Collect(); // we force the Garbage Collector to collect unreferenced classes, so we can ensure that the object dm is cleaned out
}
}
for (int i = 0; i < DestroyList.Count; i++)
{
DestroyMe d = DestroyList [i] as DestroyMe;
if (counter <= 0)
{
if (d.name == "berney")
{
DestroyList.Remove(DestroyList [i]);
GC.Collect();
}
}
d.OnUpdate();
}
}
}
//using UnityEngine;
//using System.Collections;
//using System.Collections.Generic;
//using System;
//using System.Linq;
//using Vect3 = UnityEngine.Vector3;
//
//public class Example : MonoBehaviour
//{
// DestroyMe dm;
// private int counter = 10;
// delegate void updateHandler();
// event updateHandler updateEvent;
//
// ArrayList DestroyList = new ArrayList();
//
// // Use this for initialization
// void Start()
// {
// List<int> numbers = new List<int>{1,3,5,7,9,10};
// var query = from n in numbers where n % 2 == 0 select n;
//
// dm = new DestroyMe("rob");
// updateEvent += dm.OnUpdate;
// //dm = null;
// DestroyList.Add(new DestroyMe("white"));
// DestroyList.Add(new DestroyMe("stubbs"));
// DestroyList.Add(new DestroyMe("berney"));
// Vect3 v = new Vect3();
//
//
// }
//
// // Update is called once per frame
// void Update()
// {
// if (updateEvent != null)
// {
// updateEvent();
// counter --;
// if (counter <= 0)
// {
// //updateEvent -= dm.OnUpdate;
// dm = null;
// updateEvent = null;
// GC.Collect();
// }
// }
//
// for (int i = 0; i < DestroyList.Count; i++)
// {
// DestroyMe d = DestroyList [i] as DestroyMe;
// if (counter <= 0)
// {
// if (d.name == "berney")
// {
// DestroyList.Remove(DestroyList [i]);
// GC.Collect();
// }
// }
// d.OnUpdate();
// }
// }
//}