Exemple #1
0
    public void OnRenderObject()
    {
        if (Camera.current != renderCamera)
        {
            return;
        }

        Destruction2DManager.DestructionDebug.bufferUpdates++;

        Destruction2D destruction;

        switch (destructible.textureType)
        {
        case Destruction2D.TextureType.Sprite:
            spriteBufferObject.OnRenderObject();

            break;

        case Destruction2D.TextureType.Mesh:
            meshBufferObject.OnRenderObject();

            break;

        case Destruction2D.TextureType.SpriteShape:
            spriteShapeBufferObject.OnRenderObject();

            Destroy(destructible);
            Destroy(gameObject);

            destruction            = destructible.gameObject.AddComponent <Destruction2D>();
            destruction.split      = destructible.split;
            destruction.filterMode = destructible.filterMode;

            break;

        case Destruction2D.TextureType.Tilemap:
            tilemapBufferObject.OnRenderObject();

            Destroy(destructible);
            Destroy(gameObject);

            destruction       = destructible.gameObject.AddComponent <Destruction2D>();
            destruction.split = destructible.split;

            break;
        }

        renderCamera.enabled = false;

        if (destructible.textureType != Destruction2D.TextureType.SpriteShape && destructible.textureType != Destruction2D.TextureType.Tilemap)
        {
            destructible = null;
            timer.Reset();

            renderCamera.targetTexture    = null;
            renderCamera.orthographicSize = 1f;
        }
    }