模型烘焙后保存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>