模型烘焙后保存mesh数据生成新的预制体

模型烘焙后保存mesh数据生成新的预制体

 

unity版本5.4.1

1、C#代码控制模型烘焙后生成新的材质球保存mesh数据,并关联到新生成的预制体。

SetUVData.cs用于挂在游戏物体上,设置你要赋值的数据,代码如下:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

[ExecuteInEditMode]
public class SetUVData : MonoBehaviour {
    
    public bool preservePrefab = false;

    //下面的是另一种加载预制体的方法-----------------------------------------------
    //    MeshRenderer[] renderers ;
//    Transform[] renderers ;

//    public List <RendererInfo>  m_RendererInfo;
//    [System.Serializable]
//    public struct RendererInfo
//    {
//        public Renderer renderer;
//        public int  lightmapIndex;
//        public Vector4 lightmapOffsetScale;
//    }



//    void Awake()
//    {
//        Debug.Log ("--------Awake----------");
////        LoadLightmap ();
//        renderers = GetComponentsInChildren<Transform> ();
//
//        for (int i = 0; i < renderers.Length; i++) 
//        {
//            Debug.Log ("renders [i].lightmapIndex  "+i);
////            Debug.Log ("renders [i].lightmapIndex  "+i+"   " + renderers [i].lightmapIndex);
//        }
//    }

//    void Start()
//    {
//        RaycastHit hit;
//        Vector3 pos = transform.position + new Vector3 (0, 0.1f,0);
//        Debug.Log ("pos " + pos);
//
//        if (Physics.Raycast (pos, -Vector3.up, out hit, 100f,LayerMask.GetMask ("Lighting"))) {    //LayerMask..GetMask ("Lighting") 
//            Debug.DrawLine (transform.position, hit.point, Color.red);
//            Debug.Log ("???????????"+ hit.collider.gameObject);
//        }
//    }


    /// <summary>
    /// Saves the lightmap.保存光照贴图信息到预制体
    /// </summary>

你可能感兴趣的:(unity,shader,fragment,vertex,fragment,unity,unity,shader,片段顶点着色器,vertex)