NewN_UAVPlane/Assets/art/haidao/EasyRoads3D/Editor/sideObjectEditorScript.js

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);
}
}