コード例 #1
0
    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);
    }
コード例 #2
0
ファイル: DemoUI.cs プロジェクト: prime31/RecyclerKit
    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 );
        }
    }
コード例 #3
0
ファイル: DemoUI.cs プロジェクト: zsombornagy/RecyclerKit
    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);
        }
    }
コード例 #4
0
    /// <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);
        }
    }
コード例 #5
0
	// Use this for initialization
	void Start () {
        TrashManRecycleBin recycleBin = new TrashManRecycleBin()
        {
            prefab = cubePrefab
        };
        TrashMan.manageRecycleBin(recycleBin);
		StartCoroutine (SpawnCubes ());
	}
コード例 #6
0
ファイル: DemoUI.cs プロジェクト: githysm/RecyclerKit
    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));
        }
    }
コード例 #7
0
    public void Start()
    {
        createTree();


        TrashManRecycleBin bin = new TrashManRecycleBin();

        bin.instancesToPreallocate = 20;
        bin.prefab     = textPrefab.gameObject;
        ballPrefab.tag = ObjectType.Player;
        TrashMan.manageRecycleBin(bin);
    }
コード例 #8
0
    // 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);
        }
    }
コード例 #9
0
ファイル: DemoUI.cs プロジェクト: krishx007/RecyclerKit
    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 ) );
        }
    }
コード例 #10
0
    /// <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);
        }
    }
コード例 #11
0
    /// <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());
    }
コード例 #12
0
        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));
            }
        }
コード例 #13
0
ファイル: TrashMan.cs プロジェクト: hyakugei/RecyclerKit
    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() );
    }
コード例 #14
0
 // 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());
     }
 }
コード例 #15
0
ファイル: ModelFactory.cs プロジェクト: harryqk/Newbie
    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);
    }
コード例 #16
0
	/// <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 );
	}
コード例 #17
0
ファイル: TrashMan.cs プロジェクト: ftvs/TurtleCrawler
	/// <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 );
		}
	}
コード例 #18
0
ファイル: DemoUI.cs プロジェクト: zsombornagy/RecyclerKit
    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));
        }
    }
コード例 #19
0
ファイル: DemoUI.cs プロジェクト: prime31/RecyclerKit
    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 ) );
        }
    }