blob: a60533ec3749566c05d97c29e65bdbdc219a2e46 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
//----------------------------------------------
// MeshBaker
// Copyright © 2011-2012 Ian Deane
//----------------------------------------------
using UnityEngine;
using System.Collections;
using System.IO;
using System;
using System.Collections.Specialized;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using UnityEditor;
using DigitalOpus.MB.Core;
namespace DigitalOpus.MB.MBEditor
{
[CustomEditor(typeof(MB3_MultiMeshBaker))]
[CanEditMultipleObjects]
public class MB3_MultiMeshBakerEditor : Editor
{
MB3_MeshBakerEditorInternal mbe = new MB3_MeshBakerEditorInternal();
[MenuItem(@"GameObject/Create Other/Mesh Baker/TextureBaker and MultiMeshBaker", false, 100)]
public static GameObject CreateNewMeshBaker()
{
MB3_TextureBaker[] mbs = (MB3_TextureBaker[])GameObject.FindObjectsOfType(typeof(MB3_TextureBaker));
Regex regex = new Regex(@"\((\d+)\)$", RegexOptions.Compiled | RegexOptions.CultureInvariant);
int largest = 0;
try
{
for (int i = 0; i < mbs.Length; i++)
{
Match match = regex.Match(mbs[i].name);
if (match.Success)
{
int val = Convert.ToInt32(match.Groups[1].Value);
if (val >= largest)
largest = val + 1;
}
}
}
catch (Exception ex)
{
if (ex == null) ex = null; //Do nothing supress compiler warning
}
GameObject nmb = new GameObject("TextureBaker (" + largest + ")");
nmb.transform.position = Vector3.zero;
MB3_TextureBaker tb = nmb.AddComponent<MB3_TextureBaker>();
tb.packingAlgorithm = MB2_PackingAlgorithmEnum.MeshBakerTexturePacker;
MB3_MeshBakerGrouper mbg = nmb.AddComponent<MB3_MeshBakerGrouper>();
GameObject meshBaker = new GameObject("MultiMeshBaker");
MB3_MultiMeshBaker mmb = meshBaker.AddComponent<MB3_MultiMeshBaker>();
mmb.meshCombiner.settingsHolder = mbg;
meshBaker.transform.parent = nmb.transform;
return nmb;
}
void OnEnable()
{
mbe.OnEnable(serializedObject);
}
void OnDisable()
{
mbe.OnDisable();
}
public override void OnInspectorGUI()
{
mbe.OnInspectorGUI(serializedObject, (MB3_MeshBakerCommon)target, targets, typeof(MB3_MeshBakerEditorWindow));
}
}
}
|