internal void Initialize(UTextureData data, int index, bool newObj) { m_Mesh = data.terrain.GetSubMesh(index); m_Index = index; if (m_Terrain == null || newObj) { m_Terrain = data.terrain; } Transform trans = data.gameObject.transform.Find("SubMesh" + index.ToString()); if (trans != null) { m_GameObject = trans.gameObject; } if (m_GameObject == null || newObj) { m_GameObject = new GameObject("SubMesh" + index.ToString(), typeof(MeshFilter), typeof(MeshRenderer)); m_GameObject.transform.parent = data.gameObject.transform; m_GameObject.transform.localPosition = Vector3.zero; m_GameObject.transform.localEulerAngles = Vector3.zero; m_GameObject.transform.localScale = Vector3.one; m_GameObject.GetComponent <MeshFilter>().sharedMesh = m_Mesh; m_GameObject.hideFlags = HideFlags.None; if (m_Passes.Count > 0) { UpdateMats(); } else #if UNITY_EDITOR { m_GameObject.GetComponent <MeshRenderer>().sharedMaterial = m_Terrain.oldMaterials[index]; } #else { m_GameObject.GetComponent <MeshRenderer>().material = m_Terrain.oldMaterials[index]; } #endif } #if UNITY_EDITOR EditorUtility.SetSelectedWireframeHidden(m_GameObject.GetComponent <Renderer>(), true); #endif m_Passes.ForEach(g => g.Initialize()); }
public USubMesh(UTextureData data, int index) { Initialize(data, index); }
public void Initialize(UTextureData data, int index) { Initialize(data, index, false); }