358 lines
14 KiB
JavaScript
358 lines
14 KiB
JavaScript
@CustomEditor(sideObjectScript)
|
|
class sideObjectEditorScript extends Editor
|
|
{
|
|
|
|
function OnInspectorGUI()
|
|
{
|
|
if(target.OQOCQODQCO.OOOOODODCQ == null || target.OQOCQODQCO.erInit == ""){
|
|
var arr = OCDQDCQOCQ.OQOODCQQCO(false);
|
|
target.OQOCQODQCO.ODODCDOOQC(arr, OCDQDCQOCQ.OQQQOOOOOC(arr), OCDQDCQOCQ.OQODCCCCCD(arr));
|
|
Selection.activeGameObject = target.transform.parent.parent.gameObject;
|
|
}
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.Space();
|
|
|
|
EditorGUILayout.BeginVertical("Box");
|
|
EditorGUILayout.LabelField(" EasyRoads3D Side Object", EditorStyles.boldLabel);
|
|
EditorGUILayout.EndVertical();
|
|
EditorGUILayout.Space();
|
|
GUILayout.Label(" Name: "+target.soName);
|
|
EditorGUILayout.Space();
|
|
if(target.rotationStrings == null || target.rotationStrings.Length == 0){
|
|
target.rotationStrings = new String[4];
|
|
target.rotationStrings[0] = "none";
|
|
target.rotationStrings[1] = "Terrain Normal";
|
|
target.rotationStrings[2] = "Path Normal";
|
|
target.rotationStrings[3] = "Path Sideways";
|
|
target.childOrderStrings = new String[3];
|
|
target.childOrderStrings[0] = "All";
|
|
target.childOrderStrings[1] = "Child Sequence";
|
|
target.childOrderStrings[2] = "Random";
|
|
if(target.goInstantiated != null)target.childCount = target.goInstantiated.transform.childCount;
|
|
}
|
|
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" X Position", "The distance on the x-axis to the current point on the active spline"), GUILayout.Width(85) );
|
|
var so : float = target.xPosition;
|
|
target.xPosition = EditorGUILayout.Slider(target.xPosition, -50, 50);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(so != target.xPosition) {
|
|
var scr: RoadObjectScript = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.ODDOQCCOCD(scr.transform, target.soIndex, target.xPosition);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" Y Position", "The distance on the y-axis to the current point the active spline"), GUILayout.Width(85) );
|
|
so = target.yPosition;
|
|
target.yPosition = EditorGUILayout.Slider(target.yPosition, -50, 50);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(so != target.yPosition) {
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OOCOQQOQOO(scr.transform, target.soIndex, target.yPosition);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
|
|
|
|
var oA : int = target.soAlign;
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" Align with Terrain", "This controls the x, z rotation of the side objects"), GUILayout.Width(125) );
|
|
target.soAlign = EditorGUILayout.Popup (target.soAlign, target.rotationStrings);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(oA != target.soAlign){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OOCDCCDODD(scr.transform, target.soIndex, target.soAlign);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
|
|
|
|
}
|
|
|
|
if(target.objectType == 2 || target.position == 2){
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" Distance", "The face or object Distance in metres."), GUILayout.Width(85) );
|
|
so = target.m_distance;
|
|
target.m_distance = EditorGUILayout.Slider(target.m_distance, 1, 50);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(so != target.m_distance) {
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OCCCOOCDDC(scr.transform, target.soIndex, target.m_distance);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
}
|
|
if(target.objectType > 0){
|
|
if(target.uvStrings == null){
|
|
target.uvStrings = new String[2];
|
|
target.uvStrings[0] = "Tiled"; target.uvStrings[1]="Clamped";
|
|
}
|
|
var uvInt : int = target.uvInt;
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(" UV Type",GUILayout.Width(85));
|
|
target.uvInt = EditorGUILayout.Popup (target.uvInt, target.uvStrings);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(uvInt != target.uvInt){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OODOOODDQC(scr.transform, target.soIndex, target.uvInt);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
if(target.uvInt == 0){
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" UV X Tiling", "This controls the uv in the width of the object."), GUILayout.Width(85) );
|
|
so = target.soUVx;
|
|
target.soUVx = EditorGUILayout.Slider(target.soUVx, 0, 5);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(so != target.soUVx) {
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.ODOOCQDQOO(scr.transform, target.soIndex, target.soUVx, target.soUVy);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" UV Y Tiling", "This controls the uv in the length of the object."), GUILayout.Width(85) );
|
|
so = target.soUVy;
|
|
target.soUVy = EditorGUILayout.Slider(target.soUVy, 0, 5);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(so != target.soUVy) {
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.ODOOCQDQOO(scr.transform, target.soIndex, target.soUVx, target.soUVy);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
}
|
|
if(target.ODQQOCOODO != "" || target.OOOCCODCDO != ""){
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Space(20);
|
|
var bo : boolean = target.combine;
|
|
target.combine = EditorGUILayout.Toggle (target.combine );
|
|
EditorGUILayout.EndHorizontal();
|
|
GUILayout.Space(-20);
|
|
GUILayout.Label(new GUIContent(" Combine procedural objects", "Combine procedural geometry and start / end objects"), GUILayout.Width(250) );
|
|
if(bo != target.combine){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OOCCCCCDCO(scr.transform, target.soIndex, target.combine);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
if(target.combine){
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Space(20);
|
|
bo = target.weld;
|
|
target.weld = EditorGUILayout.Toggle (target.weld );
|
|
EditorGUILayout.EndHorizontal();
|
|
GUILayout.Space(-20);
|
|
GUILayout.Label(new GUIContent(" Weld Vertices", "Weld matching vertices of procedural geometry and start / end objects"), GUILayout.Width(250) );
|
|
if(bo != target.weld){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OCQCDOCOCC(scr.transform, target.soIndex, target.weld);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
}
|
|
}
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Space(20);
|
|
co = target.m_tangents;
|
|
target.m_tangents = EditorGUILayout.Toggle (target.m_tangents );
|
|
EditorGUILayout.EndHorizontal();
|
|
GUILayout.Space(-20);
|
|
GUILayout.Label(new GUIContent(" Add Mesh Tangents", "This will automatically calculate mesh tangents data required for bump mapping. Note that this will take a little bit more processing time."), GUILayout.Width(250) );
|
|
if(co != target.m_tangents){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
OCDQDCQOCQ.HandleTangents(scr.transform, target.soIndex, target.m_tangents);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Space(20);
|
|
co = target.m_collider;
|
|
target.m_collider = EditorGUILayout.Toggle (target.m_collider );
|
|
EditorGUILayout.EndHorizontal();
|
|
GUILayout.Space(-20);
|
|
GUILayout.Label(new GUIContent(" Add Mesh Collider", "Add a Mesh Collider to the created procedural mesh"), GUILayout.Width(250) );
|
|
if(co != target.m_collider){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
OCDQDCQOCQ.HandleCollision(scr.transform, target.soIndex, target.m_collider);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
EditorGUILayout.Space();
|
|
if( target.m_go != ""){
|
|
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Space(20);
|
|
bo = target.ODQDOQCCDC;
|
|
target.ODQDOQCCDC = EditorGUILayout.Toggle (target.ODQDOQCCDC );
|
|
EditorGUILayout.EndHorizontal();
|
|
GUILayout.Space(-20);
|
|
GUILayout.Label(new GUIContent(" Combine instantiated objects", "Combine instantiated objects"), GUILayout.Width(250) );
|
|
if(bo != target.ODQDOQCCDC){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OQCOOCQOQO(scr.transform, target.soIndex, target.ODQDOQCCDC, true);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
|
|
}
|
|
EditorGUILayout.Space();
|
|
var mat : Material = target.mat;
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(" Material",GUILayout.Width(85));
|
|
target.mat = EditorGUILayout.ObjectField(target.mat, typeof(Material), false);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(mat != target.mat){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OCDDOQDCDD(scr.transform, target.soIndex, AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(target.mat)), AssetDatabase.GetAssetPath(target.mat));
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.FlexibleSpace();
|
|
if(GUILayout.Button ("Flip Faces", GUILayout.Width(235))){
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OOCCDOQOQO(scr.transform, target.soIndex);
|
|
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
|
|
}
|
|
GUILayout.FlexibleSpace();
|
|
EditorGUILayout.EndHorizontal();
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.FlexibleSpace();
|
|
if(GUILayout.Button ("Mirror Horizontally", GUILayout.Width(235))){
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OQCDCOCDDD(scr.transform, target.soIndex);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
GUILayout.FlexibleSpace();
|
|
EditorGUILayout.EndHorizontal();
|
|
}else{
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" Distance", "The face or object Distance in metres."), GUILayout.Width(85) );
|
|
so = target.m_distance;
|
|
target.m_distance = EditorGUILayout.Slider(target.m_distance, 1, 50);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(so != target.m_distance) {
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.OCCCOOCDDC(scr.transform, target.soIndex, target.m_distance);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
if(sideObjectScript.rotationOptions == null){
|
|
sideObjectScript.rotationOptions = new String[3];
|
|
sideObjectScript.rotationOptions[0] = "Follow Road";
|
|
sideObjectScript.rotationOptions[1] = "Fixed";
|
|
sideObjectScript.rotationOptions[2] = "Random";
|
|
}
|
|
|
|
var rt : int = target.selectedRotation;
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" Y-axis Rotation", ""), GUILayout.Width(105) );
|
|
target.selectedRotation = EditorGUILayout.Popup (target.selectedRotation, target.rotationOptions);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(rt != target.selectedRotation){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
OCDQDCQOCQ.ODDQQQOCCC(scr.transform, target.soIndex, target.selectedRotation);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex,target.objectScript);
|
|
}
|
|
|
|
if(target.childCount < 2) GUI.enabled = false;
|
|
rt = target.childOrder;
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" Prefab childs", "Here you can choose how prefabs with multiple childs objects should be hanfled per instance"), GUILayout.Width(105));
|
|
|
|
target.childOrder = EditorGUILayout.Popup (target.childOrder, target.childOrderStrings);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(rt != target.childOrder){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
OCDQDCQOCQ.OODOOCCCCC(scr.transform, target.soIndex, target.childOrder);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
GUI.enabled = true;
|
|
so = target.density;
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" Density", "Use this to add variation along the path"), GUILayout.Width(85));
|
|
target.density = EditorGUILayout.Slider(target.density,0,1f);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(so != target.density){
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
OCDQDCQOCQ.ODCOCDDOCQ(scr.transform, target.soIndex, target.density);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
so = target.sidewaysOffset;
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Label(new GUIContent(" Max offset", "This randomly moves objects sideways within the chosen distance (m)"), GUILayout.Width(85));
|
|
target.sidewaysOffset = EditorGUILayout.Slider(target.sidewaysOffset,0,10);
|
|
GUILayout.Label("m", EditorStyles.label);
|
|
EditorGUILayout.EndHorizontal();
|
|
if(so != target.sidewaysOffset){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
OCDQDCQOCQ.OODQDDCCQD(scr.transform, target.soIndex, target.sidewaysOffset);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}
|
|
|
|
}
|
|
if(target.objectType == 0){
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.Space(20);
|
|
bo = target.ODQDOQCCDC;
|
|
target.ODQDOQCCDC = EditorGUILayout.Toggle (target.ODQDOQCCDC );
|
|
EditorGUILayout.EndHorizontal();
|
|
GUILayout.Space(-20);
|
|
GUILayout.Label(new GUIContent(" Combine instantiated objects", "Combine instantiated objects"), GUILayout.Width(250) );
|
|
if(bo != target.ODQDOQCCDC){
|
|
|
|
scr = target.transform.parent.parent.gameObject.GetComponent("RoadObjectScript");
|
|
|
|
if(target.OQOCQODQCO.objectType != 2){
|
|
OCDQDCQOCQ.OQCOOCQOQO(scr.transform, target.soIndex, target.ODQDOQCCDC, true);
|
|
RoadObjectEditorScript.OODODODOOD(scr, target.soIndex, target.objectScript);
|
|
}else if(!target.ODQDOQCCDC){
|
|
OCDQDCQOCQ.OQCOOCQOQO(scr.transform, target.soIndex, target.ODQDOQCCDC, false);
|
|
OCDQDCQOCQ.UnOOOQODDCDQ(target.gameObject);
|
|
}else{
|
|
OCDQDCQOCQ.OQCOOCQOQO(scr.transform, target.soIndex, target.ODQDOQCCDC, false);
|
|
OCDQDCQOCQ.OOOQODDCDQ(target.gameObject, null, null, target.OQOCQODQCO.objectType);
|
|
}
|
|
}
|
|
|
|
}
|
|
GUILayout.Space(10);
|
|
if(target.terrainTree > 0){
|
|
GUILayout.Space(10);
|
|
EditorGUILayout.BeginHorizontal();
|
|
GUILayout.FlexibleSpace();
|
|
if(GUILayout.Button ("Update Terrain Vegetation", GUILayout.Width(175))){
|
|
Debug.Log(target.soIndex);
|
|
OCDQDCQOCQ.OQQCCDQCQD(target.soIndex, target.transform);
|
|
}
|
|
GUILayout.FlexibleSpace();
|
|
EditorGUILayout.EndHorizontal();
|
|
}
|
|
GUILayout.Space(30);
|
|
}
|
|
|
|
}
|