public void createTree() { TrashManRecycleBin bin = new TrashManRecycleBin(); bin.instancesToPreallocate = 20; bin.prefab = ballPrefab.gameObject; ballPrefab.tag = ObjectType.Player; TrashMan.manageRecycleBin(bin); Rectangle bound = new Rectangle(0, 0, 800, 480); quardTree = new QuardTree(bound, 0); for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { ObjectView objectView = TrashMan.spawn(ballPrefab.gameObject).GetComponent <ObjectView>(); Rectangle rect = new Rectangle(200 + i * 50, 120 + j * 50, 20, 20); //Rectangle rect = new Rectangle(i * 50, j * 50, 20, 20); objectView.setCollisionHandler(rect); //objectView.transform.SetParent(this.transform, false); Vector3 localPotion = new Vector3(objectView.rect.center.x, objectView.rect.center.y, 0); objectView.transform.localPosition = localPotion; quardTree.Insert(objectView.rect); } } drawQuardTree(quardTree); }
void CreateCanvas() { if( !_didCreateUiStuff ) { _didCreateUiStuff = true; //Create the UI canvas game object canvasRoot = new GameObject( "Canvas" ); var canvas = canvasRoot.AddComponent<Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; var cs = canvasRoot.AddComponent<CanvasScaler>(); cs.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; cs.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight; cs.referenceResolution = new Vector2(800,600); //create our ui prefab uiPrefab = new GameObject( "UItext" ); uiPrefab.transform.position = new Vector3( 1000, 10000 ); var txt = uiPrefab.AddComponent<Text>(); txt.font = Resources.GetBuiltinResource( typeof( Font ), "Arial.ttf" ) as Font; txt.text = "Some text"; txt.horizontalOverflow = HorizontalWrapMode.Overflow; txt.color = Color.white; txt.resizeTextForBestFit = true; // Make a recycle bin for it var recycleBin = new TrashManRecycleBin() { prefab = uiPrefab }; TrashMan.manageRecycleBin( recycleBin ); } }
void CreateCanvas() { if (!_didCreateUiStuff) { _didCreateUiStuff = true; //Create the UI canvas game object canvasRoot = new GameObject("Canvas"); var canvas = canvasRoot.AddComponent <Canvas>(); canvas.renderMode = RenderMode.ScreenSpaceOverlay; var cs = canvasRoot.AddComponent <CanvasScaler>(); cs.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; cs.screenMatchMode = CanvasScaler.ScreenMatchMode.MatchWidthOrHeight; cs.referenceResolution = new Vector2(800, 600); //create our ui prefab uiPrefab = new GameObject("UItxt"); uiPrefab.transform.position = new Vector3(1000, 10000); var txt = uiPrefab.AddComponent <Text>(); txt.font = Resources.GetBuiltinResource(typeof(Font), "Arial.ttf") as Font; txt.text = "Some text"; txt.horizontalOverflow = HorizontalWrapMode.Overflow; txt.color = Color.white; txt.resizeTextForBestFit = true; //Make a recycle bin for it var recycleBin = new TrashManRecycleBin() { prefab = uiPrefab }; TrashMan.manageRecycleBin(recycleBin); } }
/// <summary> /// adds a new bin to the TrashMan collection /// </summary> /// <param name="go">Go.</param> private void addRecycleBin(GameObject go) { if (_trashManTarget.recycleBinCollection == null) { _trashManTarget.recycleBinCollection = new List <TrashManRecycleBin>(); } if (_trashManTarget.recycleBinCollection != null) { foreach (var recycleBin in _trashManTarget.recycleBinCollection) { if (recycleBin.prefab.gameObject.name == go.name) { EditorUtility.DisplayDialog("Trash Man", "Trash Man already manages a GameObject with the name '" + go.name + "'.\n\nIf you are attempting to manage multiple GameObjects sharing the same name, you will need to first give them unique names.", "OK"); return; } } } var newPrefabPool = new TrashManRecycleBin(); newPrefabPool.prefab = go; _trashManTarget.recycleBinCollection.Add(newPrefabPool); while (_trashManTarget.recycleBinCollection.Count > _prefabFoldouts.Count) { _prefabFoldouts.Add(false); } }
// Use this for initialization void Start () { TrashManRecycleBin recycleBin = new TrashManRecycleBin() { prefab = cubePrefab }; TrashMan.manageRecycleBin(recycleBin); StartCoroutine (SpawnCubes ()); }
void OnGUI() { if (GUILayout.Button("Spawn Cube")) { var newObj = TrashMan.spawn(cubePrefab, Random.onUnitSphere * 5f, Random.rotation); TrashMan.despawnAfterDelay(newObj, Random.Range(1f, 2f)); } if (GUILayout.Button("Spawn Sphere")) { var newObj = TrashMan.spawn(spherePrefab, Random.onUnitSphere * 3f); // spheres have a hardLimit set so we need to null check before using them if (newObj) { newObj.transform.parent = transform; TrashMan.despawnAfterDelay(newObj, Random.Range(5f, 8f)); } } if (GUILayout.Button("Spawn Light from Scene")) { var newObj = TrashMan.spawn("light", Random.onUnitSphere * 10f); if (newObj) { newObj.transform.parent = transform; TrashMan.despawnAfterDelay(newObj, Random.Range(5f, 8f)); } } if (GUILayout.Button("Spawn Particles by GameObject Name")) { TrashMan.spawn("Particles", Random.onUnitSphere * 3f); } if (GUILayout.Button("Create Recycle Bin at Runtime")) { _didCreateCapsuleRecycleBin = true; var recycleBin = new TrashManRecycleBin() { prefab = capsulePrefab }; TrashMan.manageRecycleBin(recycleBin); } if (_didCreateCapsuleRecycleBin && GUILayout.Button("Spawn Capsule")) { var newObj = TrashMan.spawn(capsulePrefab, Random.onUnitSphere * 5f, Random.rotation); TrashMan.despawnAfterDelay(newObj, Random.Range(1f, 5f)); } }
public void Start() { createTree(); TrashManRecycleBin bin = new TrashManRecycleBin(); bin.instancesToPreallocate = 20; bin.prefab = textPrefab.gameObject; ballPrefab.tag = ObjectType.Player; TrashMan.manageRecycleBin(bin); }
// Token: 0x06007096 RID: 28822 RVA: 0x002336E4 File Offset: 0x002318E4 public static void removeRecycleBin(TrashManRecycleBin KHNADIFNKFM, bool CJFHFKDKONP = true) { string key = KHNADIFNKFM.key; if (TrashMan.instance.LPKLJGLONBO.ContainsKey(key)) { TrashMan.instance.LPKLJGLONBO.Remove(key); TrashMan.instance.OMAFEFDBPFN.Remove(KHNADIFNKFM.prefab.GetInstanceID()); TrashMan.instance.recycleBinCollection.Remove(KHNADIFNKFM); KHNADIFNKFM.clearBin(CJFHFKDKONP); } }
void OnGUI() { if( GUILayout.Button( "Spawn Cube" ) ) { var newObj = TrashMan.spawn( cubePrefab, Random.onUnitSphere * 5f, Random.rotation ); TrashMan.despawnAfterDelay( newObj, Random.Range( 1f, 2f ) ); } if( GUILayout.Button( "Spawn Sphere" ) ) { var newObj = TrashMan.spawn( spherePrefab, Random.onUnitSphere * 3f ); // spheres have a hardLimit set so we need to null check before using them if( newObj ) { newObj.transform.parent = transform; TrashMan.despawnAfterDelay( newObj, Random.Range( 5f, 8f ) ); } } if( GUILayout.Button( "Spawn Light from Scene" ) ) { var newObj = TrashMan.spawn( "light", Random.onUnitSphere * 10f ); if( newObj ) { newObj.transform.parent = transform; TrashMan.despawnAfterDelay( newObj, Random.Range( 5f, 8f ) ); } } if( GUILayout.Button( "Spawn Particles by GameObject Name" ) ) { var newObj = TrashMan.spawn( "Particles", Random.onUnitSphere * 3f ); TrashMan.despawnAfterDelay( newObj, Random.Range( 2f, 5f ) ); } if( GUILayout.Button( "Create Recycle Bin at Runtime" ) ) { var recycleBin = new TrashManRecycleBin() { prefab = capsulePrefab }; TrashMan.manageRecycleBin( recycleBin ); } if( GUILayout.Button( "Spawn Capsule" ) ) { var newObj = TrashMan.spawn( capsulePrefab, Random.onUnitSphere * 5f, Random.rotation ); TrashMan.despawnAfterDelay( newObj, Random.Range( 1f, 5f ) ); } }
/// <summary> /// stops managing the recycle bin optionally destroying all managed objects /// </summary> /// <param name="recycleBin">Recycle bin.</param> /// <param name="shouldDestroyAllManagedObjects">If set to <c>true</c> should destroy all managed objects.</param> public static void removeRecycleBin(TrashManRecycleBin recycleBin, bool shouldDestroyAllManagedObjects = true) { var recycleBinName = recycleBin.prefab.name; // make sure we are managing the bin first if (instance._poolNameToInstanceId.ContainsKey(recycleBinName)) { instance._poolNameToInstanceId.Remove(recycleBinName); instance._instanceIdToRecycleBin.Remove(recycleBin.prefab.GetInstanceID()); instance.recycleBinCollection.Remove(recycleBin); recycleBin.clearBin(shouldDestroyAllManagedObjects); } }
/// <summary> /// tells TrashMan to start managing the recycle bin at runtime /// </summary> /// <param name="recycleBin">Recycle bin.</param> public static void manageRecycleBin(TrashManRecycleBin recycleBin) { // make sure we can safely add the bin! if (instance._poolNameToInstanceId.ContainsKey(recycleBin.prefab.name)) { Debug.LogError("Cannot manage the recycle bin because there is already a GameObject with the name (" + recycleBin.prefab.name + ") being managed"); return; } instance.recycleBinCollection.Add(recycleBin); recycleBin.initialize(); instance._instanceIdToRecycleBin.Add(recycleBin.prefab.GetInstanceID(), recycleBin); instance._poolNameToInstanceId.Add(recycleBin.prefab.name, recycleBin.prefab.GetInstanceID()); }
IEnumerator _testPool() { TrashManRecycleBin data = new TrashManRecycleBin(); GameObject prefab = new GameObject(); data.prefab = prefab; TrashMan.manageRecycleBin(data); for (int i = 0; i < 66; ++i) { var newObj = TrashMan.spawn(prefab); TrashMan.despawnAfterDelay(newObj, 2f); yield return(new WaitForSeconds(3f)); } }
public static void manageRecycleBin( TrashManRecycleBin recycleBin ) { // make sure we can safely add the bin! if( _poolNameToInstanceId.ContainsKey( recycleBin.prefab.name ) ) { Debug.LogError( "Cannot manage the recycle bin because there is already a GameObject with the name (" + recycleBin.prefab.name + ") being managed" ); return; } instance.recycleBinCollection.Add( recycleBin ); recycleBin.initialize(instance.transform); _binToTrashManInstance.Add(recycleBin, instance); _instanceIdToRecycleBin.Add( recycleBin.prefab.GetInstanceID(), recycleBin ); _poolNameToInstanceId.Add( recycleBin.prefab.name, recycleBin.prefab.GetInstanceID() ); }
// Token: 0x060070AE RID: 28846 RVA: 0x00233E8C File Offset: 0x0023208C public static void JHDIDOAOOIP(TrashManRecycleBin KHNADIFNKFM, string HFEFHOPOLIK = "") { HFEFHOPOLIK = KHNADIFNKFM.prefab.name + HFEFHOPOLIK; KHNADIFNKFM.key = HFEFHOPOLIK; if (TrashMan.instance.LPKLJGLONBO.ContainsKey(HFEFHOPOLIK)) { return; } TrashMan.instance.recycleBinCollection.Add(KHNADIFNKFM); KHNADIFNKFM.initialize(); if (!TrashMan.instance.OMAFEFDBPFN.ContainsKey(KHNADIFNKFM.prefab.GetInstanceID())) { TrashMan.instance.OMAFEFDBPFN.Add(KHNADIFNKFM.prefab.GetInstanceID(), KHNADIFNKFM); TrashMan.instance.LPKLJGLONBO.Add(HFEFHOPOLIK, KHNADIFNKFM.prefab.GetInstanceID()); } }
public void init() { TrashManRecycleBin bin = new TrashManRecycleBin(); bin.instancesToPreallocate = 20; bin.prefab = this.transform.Find("Ball").gameObject; bin.prefab.tag = ObjectType.Player; TrashMan.manageRecycleBin(bin); TrashManRecycleBin binBullet = new TrashManRecycleBin(); binBullet.instancesToPreallocate = 200; binBullet.prefab = this.transform.Find("Bullet").gameObject; TrashMan.manageRecycleBin(binBullet); TrashManRecycleBin enemy = new TrashManRecycleBin(); enemy.instancesToPreallocate = 20; enemy.prefab = this.transform.Find("EnemyBall").gameObject; enemy.prefab.tag = ObjectType.Enemy; TrashMan.manageRecycleBin(enemy); }
/// <summary> /// adds a new bin to the TrashMan collection /// </summary> /// <param name="go">Go.</param> private void addRecycleBin( GameObject go ) { if( _trashManTarget.recycleBinCollection == null ) _trashManTarget.recycleBinCollection = new List<TrashManRecycleBin>(); if( _trashManTarget.recycleBinCollection != null ) { foreach( var recycleBin in _trashManTarget.recycleBinCollection ) { if( recycleBin.prefab.gameObject.name == go.name ) { EditorUtility.DisplayDialog( "Trash Man", "Trash Man already manages a GameObject with the name '" + go.name + "'.\n\nIf you are attempting to manage multiple GameObjects sharing the same name, you will need to first give them unique names.", "OK" ); return; } } } var newPrefabPool = new TrashManRecycleBin(); newPrefabPool.prefab = go; _trashManTarget.recycleBinCollection.Add( newPrefabPool ); while( _trashManTarget.recycleBinCollection.Count > _prefabFoldouts.Count ) _prefabFoldouts.Add( false ); }
/// <summary> /// stops managing the recycle bin optionally destroying all managed objects /// </summary> /// <param name="recycleBin">Recycle bin.</param> /// <param name="shouldDestroyAllManagedObjects">If set to <c>true</c> should destroy all managed objects.</param> public static void removeRecycleBin( TrashManRecycleBin recycleBin, bool shouldDestroyAllManagedObjects = true ) { var recycleBinName = recycleBin.prefab.name; // make sure we are managing the bin first if( instance._poolNameToInstanceId.ContainsKey( recycleBinName ) ) { instance._poolNameToInstanceId.Remove( recycleBinName ); instance._instanceIdToRecycleBin.Remove( recycleBin.prefab.GetInstanceID() ); instance.recycleBinCollection.Remove( recycleBin ); recycleBin.clearBin( shouldDestroyAllManagedObjects ); } }
void OnGUI() { if (GUILayout.Button("Spawn Cube")) { var newObj = TrashMan.spawn(cubePrefab, Random.onUnitSphere * 5f, Random.rotation); TrashMan.despawnAfterDelay(newObj, Random.Range(1f, 2f)); } if (GUILayout.Button("Spawn Sphere")) { var newObj = TrashMan.spawn(spherePrefab, Random.onUnitSphere * 3f); // spheres have a hardLimit set so we need to null check before using them if (newObj) { newObj.transform.parent = transform; TrashMan.despawnAfterDelay(newObj, Random.Range(5f, 8f)); } } if (GUILayout.Button("Spawn Light from Scene")) { var newObj = TrashMan.spawn("light", Random.onUnitSphere * 10f); if (newObj) { newObj.transform.parent = transform; TrashMan.despawnAfterDelay(newObj, Random.Range(5f, 8f)); } } if (GUILayout.Button("Spawn Particles by GameObject Name")) { TrashMan.spawn("Particles", Random.onUnitSphere * 3f); } #if UNITY_4_6 || UNITY_5_0 if (GUILayout.Button("Spawn UI element")) { CreateCanvas(); var go = TrashMan.spawn(uiPrefab, Vector2.zero); go.transform.SetParent(canvasRoot.transform, true); var rt = go.transform as RectTransform; rt.anchoredPosition = new Vector2(Random.Range(-380, 380), Random.Range(-280, 280)); TrashMan.despawnAfterDelay(go, Random.Range(1f, 5f)); } #endif if (GUILayout.Button("Create Recycle Bin at Runtime")) { _didCreateCapsuleRecycleBin = true; var recycleBin = new TrashManRecycleBin() { prefab = capsulePrefab }; TrashMan.manageRecycleBin(recycleBin); } if (_didCreateCapsuleRecycleBin && GUILayout.Button("Spawn Capsule")) { var newObj = TrashMan.spawn(capsulePrefab, Random.onUnitSphere * 5f, Random.rotation); TrashMan.despawnAfterDelay(newObj, Random.Range(1f, 5f)); } }
void OnGUI() { if( GUILayout.Button( "Spawn Cube" ) ) { var newObj = TrashMan.spawn( cubePrefab, Random.onUnitSphere * 5f, Random.rotation ); TrashMan.despawnAfterDelay( newObj, Random.Range( 1f, 2f ) ); } if( GUILayout.Button( "Spawn Sphere" ) ) { var newObj = TrashMan.spawn( spherePrefab, Random.onUnitSphere * 3f ); // spheres have a hardLimit set so we need to null check before using them if( newObj ) { newObj.transform.parent = transform; TrashMan.despawnAfterDelay( newObj, Random.Range( 5f, 8f ) ); } } if( GUILayout.Button( "Spawn Light from Scene" ) ) { var newObj = TrashMan.spawn( "light", Random.onUnitSphere * 10f ); if( newObj ) { newObj.transform.parent = transform; TrashMan.despawnAfterDelay( newObj, Random.Range( 5f, 8f ) ); } } if( GUILayout.Button( "Spawn Particles by GameObject Name" ) ) { TrashMan.spawn( "Particles", Random.onUnitSphere * 3f ); } if( GUILayout.Button( "Spawn UI element" ) ) { CreateCanvas(); var go = TrashMan.spawn( uiPrefab, Vector2.zero ); go.transform.SetParent(canvasRoot.transform, true); var rt = go.transform as RectTransform; rt.anchoredPosition = new Vector2(Random.Range (-380,380), Random.Range (-280,280)); TrashMan.despawnAfterDelay( go, Random.Range( 1f, 5f ) ); } if( GUILayout.Button( "Create Recycle Bin at Runtime" ) ) { _didCreateCapsuleRecycleBin = true; var recycleBin = new TrashManRecycleBin() { prefab = capsulePrefab }; TrashMan.manageRecycleBin( recycleBin ); } if( _didCreateCapsuleRecycleBin && GUILayout.Button( "Spawn Capsule" ) ) { var newObj = TrashMan.spawn( capsulePrefab, Random.onUnitSphere * 5f, Random.rotation ); TrashMan.despawnAfterDelay( newObj, Random.Range( 1f, 5f ) ); } }