using UnityEngine;
using System.Collections;

namespace DigitalOpus.MB.Examples
{
    public class MB_Example : MonoBehaviour
    {

        public MB3_MeshBaker meshbaker;
        public GameObject[] objsToCombine;

        void Start()
        {
            //Add the objects to the combined mesh	
            //Must have previously baked textures for these in the editor
            if (meshbaker.AddDeleteGameObjects(objsToCombine, null, true))
            {
                //apply the changes we made this can be slow. See documentation
                meshbaker.Apply();
            }
        }

        void LateUpdate()
        {
            //Apply changes after this and other scripts have made changes
            //Only to vertecies, tangents and normals
            //Only want to call this once per frame since it is slow
            if (meshbaker.UpdateGameObjects(objsToCombine))
            {
                meshbaker.Apply(false, true, true, true, false, false, false, false, false);
            }
        }

        void OnGUI()
        {
            GUILayout.Label("Dynamically updates the vertices, normals and tangents in combined mesh every frame.\n" +
                             "This is similar to dynamic batching. It is not recommended to do this every frame.\n" +
                             "Also consider baking the mesh renderer objects into a skinned mesh renderer\n" +
                             "The skinned mesh approach is faster for objects that need to move independently of each other every frame.");
        }
    }
}