读书人

Unity3D惯用代码总结

发布时间: 2013-01-23 10:44:49 作者: rapoo

Unity3D常用代码总结

?

1 GUI汇总

?

function OnGUI() {

? GUI.Label(Rect(1,1,100,20),"I'm a Label"); //1

? GUI.Box(Rect(1,21,100,20),"I'm a Box"); //2

? GUI.Button(Rect(1,41,100,20),"I'm a Button"); //3

? GUI.RepeatButton(Rect(1,61,120,20),"I'm a RepeatButton"); //4

? GUI.TextField(Rect(1,81,100,20),"I'm a TextFielld"); //5

? GUI.TextArea(Rect(1,101,100,40),"I'm a TextArea,\nMultiline"); //6

? GUI.Toggle(Rect(1,141,120,20),true,"I'm a Toggle true"); //7

? GUI.Toggle(Rect(1,161,120,20),false,"I'm a Toggle false"); //8

? GUI.Toolbar(Rect(1,181,160,20),-1,["Toolbar","Tool2","Tool3"); //9

? GUI.SelectionGrid(Rect(1,201,190,20),2,["Selection","Grid","select3"],3); //10

? GUI.HorizontalSlider(Rect(1,221,180,20),3.0,0,10.0); //11

? GUI.VerticalScrollbar(Rect(1,241,20,100),3.0,1,0.0,10.0); //12

?

? //13

? GUI.BeginScrollView (Rect (200,10,100,100),Vector2.zero, Rect (0, 0, 220, 200));

? GUI.Label(Rect(0,0,100,20),"I'm a Label");

? GUI.EndScrollView();

? //14

? ? GUI.Window(0,Rect(200,129,100,100),funcwin,"window");

}

?

function funcwin(windowID:int)

?{

? GUI.DragWindow(Rect(0,0,10000,2000));

?}

?

?

?

2 JS调用DLL

?

import System;

import System.Runtime.InteropServices;

@DllImport("user32.dll")

public static function MessageBox(Hwnd : int,text : String,Caption : String,iType : int) : int {};

?

function Start()

{

? ? ? ? MessageBox(0, "API Message Box", "Win32 API", 64) ;

}

function Update () {

}



3 物体标签
var target : Transform; ?// Object that this label should follow
var offset = Vector3.up; ? ?// Units in world space to offset; 1 unit above object by defaultvar clampToScreen = false; ?// If true, label will be visible even if object is off screenvar clampBorderSize = .05; ?// How much viewport space to leave at the borders when a label is being clampedvar useMainCamera = true; ? // Use the camera tagged MainCameravar cameraToUse : Camera; ? // Only use this if useMainCamera is falseprivate var cam : Camera;private var thisTransform : Transform;private var camTransform : Transform;
function Start () {? ? thisTransform = transform;? ? if (useMainCamera)? ? ? ? cam = Camera.main;? ? else? ? ? ? cam = cameraToUse;? ? camTransform = cam.transform;}
function Update () {? ? if (clampToScreen) {? ? ? ? var relativePosition = camTransform.InverseTransformPoint(target.position);? ? ? ? relativePosition.z = Mathf.Max(relativePosition.z, 1.0);? ? ? ? thisTransform.position = cam.WorldToViewportPoint(camTransform.TransformPoint(relativePosition + offset));? ? ? ? thisTransform.position = Vector3(Mathf.Clamp(thisTransform.position.x, clampBorderSize, 1.0-clampBorderSize),? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?Mathf.Clamp(thisTransform.position.y, clampBorderSize, 1.0-clampBorderSize),? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?thisTransform.position.z);? ? }? ? else {? ? ? ? thisTransform.position = cam.WorldToViewportPoint(target.position + offset);? ? }}@script RequireComponent(GUIText)

4 unity3d读取保存xml文件

  ? ? ? ? import System;  import System.Xml;  import System.Xml.Serialization;  import System.IO;  import System.Text;    class CeshiData{   var Ceshi1 : String;   var Ceshi2 : String;   var Ceshi3 : float;   var Ceshi4 : int;  }     class UserData  {   public var _iUser : CeshiData = new CeshiData();   function UserData() { }  }    private var c1 : String;  private var c2 : String;  private var c3 : float;  private var c4 : int;  private var _FileLocation : String;  private var _FileName : String = "CeshiData.xml";    var myData : UserData[];  private var tempData : UserData = new UserData();    var i : int = 0;var GUISkin1 : GUISkin;  var ShowData : int = 0;  function Awake(){   _Filelocation=Application.dataPath;  }    function Start(){   FirstSave();  }    function FirstSave(){//初始化XML   tempData._iUser.Ceshi1 = "?";   tempData._iUser.Ceshi2 = "?";   tempData._iUser.Ceshi3 = 0;   tempData._iUser.Ceshi4 = 0;   var writer : StreamWriter;   var t : FileInfo = new FileInfo(_FileLocation+"/"+ _FileName);   if(!t.Exists)   {   writer = t.CreateText();   _data = SerializeObject(tempData);   for(i=0;i<10;i++){   writer.WriteLine(_data);   }   writer.Close();   }    }function Save(sc1 : String,sc2 : String,sc3 : float,sc4 : int){//保存数据到指定的XMl里     tempData._iUser.Ceshi1 = sc1;   tempData._iUser.Ceshi2 = sc2;   tempData._iUser.Ceshi3 = sc3;   tempData._iUser.Ceshi4 = sc4;     var writer : StreamWriter;   var t : FileInfo = new FileInfo(_FileLocation+"/"+ _FileName);   t.Delete();   writer = t.CreateText();   _data = SerializeObject(tempData);   for(i=0;i<10;i++){   writer.WriteLine(_data);   }   writer.Close();    }    function Load(){//读取保存在XML里的数据   var r : StreamReader = File.OpenText(_FileLocation+"/"+ _FileName);   var _info : String ;   for(i=0;i<10;i++){   _info = r.ReadLine();   _data=_info;   myData[i] = DeserializeObject(_data);   }   r.Close();  }function OnGUI() {   GUI.skin = GUISkin1;   if(GUI.Button(Rect(0,0,100,40),"save")){   Save("ceshi1","ceshi2",1.23,50);//要显示中文需设定中文字体   }   if(GUI.Button(Rect(200,0,100,40),"load")){   Load();   ShowData = 1;   }   if(ShowData == 1){   GUI.Label(Rect(170,170+53*0,150,50),myData[0]._iUser.Ceshi1);   GUI.Label(Rect(370,170+53*0,150,50),myData[0]._iUser.Ceshi2);   GUI.Label(Rect(550,170+53*0,150,50),myData[0]._iUser.Ceshi3 + "");   GUI.Label(Rect(760,170+53*0,150,50),myData[0]._iUser.Ceshi4 + "");     GUI.Label(Rect(170,170+53*1,150,50),myData[1]._iUser.Ceshi1);     GUI.Label(Rect(370,170+53*2,150,50),myData[2]._iUser.Ceshi2);     GUI.Label(Rect(550,170+53*3,150,50),myData[3]._iUser.Ceshi3 + "");     GUI.Label(Rect(760,170+53*4,150,50),myData[4]._iUser.Ceshi4 + "");   }  }    //================================================================================function UTF8ByteArrayToString(characters : byte[] )  {   var encoding : UTF8Encoding = new UTF8Encoding();   var constructedString : String = encoding.GetString(characters);   return (constructedString);  }    //byte[] StringToUTF8ByteArray(string pXmlString)  function StringToUTF8ByteArray(pXmlString : String)  {   var encoding : UTF8Encoding = new UTF8Encoding();   var byteArray : byte[] = encoding.GetBytes(pXmlString);   return byteArray;  }     // Here we serialize our UserData object of myData   //string SerializeObject(object pObject)  function SerializeObject(pObject : Object)  {   var XmlizedString : String = null;   var memoryStream : MemoryStream = new MemoryStream();   var xs : XmlSerializer = new XmlSerializer(typeof(UserData));   var xmlTextWriter : XmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);   xs.Serialize(xmlTextWriter, pObject);   memoryStream = xmlTextWriter.BaseStream; // (MemoryStream)   XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray());   return XmlizedString;  }// Here we deserialize it back into its original form   //object DeserializeObject(string pXmlizedString)  function DeserializeObject(pXmlizedString : String)  {   var xs : XmlSerializer = new XmlSerializer(typeof(UserData));   var memoryStream : MemoryStream = new MemoryStream(StringToUTF8ByteArray(pXmlizedString));   var xmlTextWriter : XmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8);   return xs.Deserialize(memoryStream);  }

5 单击物体弹出对话框
?
? ? static var WindowSwitch : boolean = false;?? ? var mySkin : GUISkin;?? ? var windowRect = Rect (200, 80, 240, 100);?? ? function OnGUI ()?? ? {?? ? ? ?if(WindowSwitch == ?true)?? ? ? ?{?? ? ? ? ? GUI.skin = mySkin;?? ? ? ? ? ? windowRect = GUI.Window (0, windowRect, WindowContain, "测试视窗");?? ? ? }?? ?}?? ?function WindowContain (windowID : int)?? ?{?? ? ? ?if (GUI.Button (Rect (70,40,100,20), "关闭视窗"))?? ? ? {?? ? ? ? ?WindowSwitch = false;?? ? ? }?? ?}?function OnMouseEnter ()?? ?{?? ? ? ?renderer.material.color = Color.red;?? ?}?? ?function OnMouseDown ()?? ?{?? ? ? Func_GUIWindow.WindowSwitch = true;?? ?}?? ?function OnMouseExit ()?? ?{?? ? ? renderer.material.color = Color.white;?? ?}?

6 读取txt文本
using UnityEngine;using System.Collections;using System.IO;using System.Text;
public class ReadTxt : MonoBehaviour {string path = "D:\\txtName.txt";StreamReader smRead = new StreamReader(path,Encoding.Default); //设置路径
string line;
void Update () {
if ((line = smRead.ReadLine()) != null) {string[] arrStr = line.Split('|'); //分割符 “|”id1 = arrStr[0].ToString();name = arrStr[1].ToString();sfz = arrStr[2].ToString();}}}

7 截屏
? function OnMouseDown() {?? ?Application.CaptureScreenshot("Screenshot.png");??}
8 下拉菜单
using UnityEngine;using System.Collections;using System.Collections.Generic;using System.Text.RegularExpressions;public class DropDownList : MonoBehaviour{? ? private Rect DropDownRect; ? ? ? ? ?// Size and Location for drop down? ? private Transform currentRoot; ? ? ?// selected object transform? ? private Vector2 ListScrollPos; ? ? ?// scroll list position? ? public string selectedItemCaption; ?// name of selected item? ? private string lastCaption; ? ? ? ? // last selected item? ? private int guiWidth; ? ? ? ? ? ? ? // width of drop list? ? private int guiHight; ? ? ? ? ? ? ? // hight of drop list? ? private bool textChanged; ? ? ? ? ? // if text in text box has changed look for item? ? private bool clearDropList; ? ? ? ? // clear text box? ? public bool DropdownVisible; ? ? ? ?// show drop down list? ? public bool updateInfo; ? ? ? ? ? ? // update info window? ?? ? public Transform root; ? ? ? ? ? ? ?// top of the Hierarchy? ? public GUISkin dropSkin; ? ? ? ? ? ?// GUISkin for drop down list? ? public int itemtSelected; ? ? ? ? ? // index of selected item? ? public bool targetChange; ? ? ? ? ? // text in text box was changed, update list
? ? public class GuiListItem ? ? ? ?//The class that contains our list items? ? {? ? ? ? public string Name; ? ? ? ? // name of the item? ? ? ? public int GuiStyle; ? ? ? ?// current style to use? ? ? ? public int UnSelectedStyle; // unselected GUI style? ? ? ? public int SelectedStyle; ? // selected GUI style? ? ? ? public int Depth; ? ? ? ? ? // depth in the Hierarchy? ? ? ? public bool Selected; ? ? ? // if the item is selected? ? ? ? public bool ToggleChildren; // show child objects in list
? ? ? ?// constructors? ? ? ? public GuiListItem(bool mSelected, string mName, int iGuiStyle, bool childrenOn, int depth)? ? ? ? {? ? ? ? ? ? Selected = mSelected;? ? ? ? ? ? Name = mName;? ? ? ? ? ? GuiStyle = iGuiStyle;? ? ? ? ? ? ToggleChildren = childrenOn;? ? ? ? ? ? Depth = depth;? ? ? ? ? ? UnSelectedStyle = 0;? ? ? ? ? ? SelectedStyle = 0;
? ? ? ? }? ? ? ? public GuiListItem(bool mSelected, string mName)? ? ? ? {? ? ? ? ? ? Selected = mSelected;? ? ? ? ? ? Name = mName;? ? ? ? ? ? GuiStyle = 0;? ? ? ? ? ? ToggleChildren = true;? ? ? ? ? ? Depth = 0;? ? ? ? ? ? UnSelectedStyle = 0;? ? ? ? ? ? SelectedStyle = 0;? ? ? ? }? ? ? ? public GuiListItem(string mName)? ? ? ? {? ? ? ? ? ? Selected = false;? ? ? ? ? ? Name = mName;? ? ? ? ? ? GuiStyle = 0;? ? ? ? ? ? ToggleChildren = true;? ? ? ? ? ? Depth = 0;? ? ? ? ? ? UnSelectedStyle = 0;? ? ? ? ? ? SelectedStyle = 0;? ? ? ? }// Accessors? ? ? ? public void enable()// don't show in list? ? ? ? {? ? ? ? ? ? Selected = true;? ? ? ? }? ? ? ? public void disable()// show in list? ? ? ? {? ? ? ? ? ? Selected = false;? ? ? ? }? ? ? ? public void setStlye(int stlye)? ? ? ? {? ? ? ? ? ? GuiStyle = stlye;? ? ? ? }? ? ? ? public void setToggleChildren(bool childrenOn)? ? ? ? {? ? ? ? ? ? ToggleChildren = childrenOn;? ? ? ? }? ? ? ? public void setDepth(int depth)? ? ? ? {? ? ? ? ? ? Depth = depth;? ? ? ? }? ? ? ? public void SetStyles(int unSelected, int selected)? ? ? ? {? ? ? ? ? ? UnSelectedStyle = unSelected;? ? ? ? ? ? SelectedStyle = selected;? ? ? ? }? ? }

//Declare our list of stuff

? ? public List<GuiListItem> MyListOfStuff;

?

? ? // Initialization

? ? void Start()

? ? {

? ? ? ? guiWidth = 400;

? ? ? ? guiHight = 28;

? ? ? ? // Manually position our list, because the dropdown will appear over other controls

? ? ? ? DropDownRect = new Rect(10, 10, guiWidth, guiHight);

? ? ? ? DropdownVisible = false;

? ? ? ? itemtSelected = -1;

? ? ? ? targetChange = false;

? ? ? ? lastCaption = selectedItemCaption = "Select a Part...";

?

? ? ? ? if (!root)

? ? ? ? ? ? root = gameObject.transform;

?

? ? ? ? MyListOfStuff = new List<GuiListItem>(); //Initialize our list of stuff

? ? ? ? // fill the list

? ? ? ? BuildList(root);

? ? ? ? // set GUI for each item in list

? ? ? ? SetupGUISetting();

? ? ? ? // fill the list

? ? ? ? FillList(root);

? ? }

?void OnGUI()

? ? {

? ? ? ? //Show the dropdown list if required (make sure any controls that should appear behind the list are before this block)

? ? ? ? if (DropdownVisible)

? ? ? ? {

? ? ? ? ? ? GUI.SetNextControlName("ScrollView");

? ? ? ? ? ? GUILayout.BeginArea(new Rect(DropDownRect.xMin, DropDownRect.yMin + DropDownRect.height, guiWidth, Screen.height * .25f), "", "box");

? ? ? ? ? ? ListScrollPos = GUILayout.BeginScrollView(ListScrollPos, dropSkin.scrollView);

? ? ? ? ? ? GUILayout.BeginVertical(GUILayout.Width(120));

?

? ? ? ? ? ? for (int i = 0; i < MyListOfStuff.Count; i++)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (MyListOfStuff[i].Selected && GUILayout.Button(MyListOfStuff[i].Name, dropSkin.customStyles[MyListOfStuff[i].GuiStyle]))

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? HandleSelectedButton(i);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? ? ? GUILayout.EndVertical();

? ? ? ? ? ? GUILayout.EndScrollView();

? ? ? ? ? ? GUILayout.EndArea();

? ? ? ? }

? ? ? ? //Draw the dropdown control

? ? ? ? GUILayout.BeginArea(DropDownRect, "", "box");

? ? ? ? GUILayout.BeginHorizontal();

? ? ? ? string ButtonText = (DropdownVisible) ? "<<" : ">>";

? ? ? ? DropdownVisible = GUILayout.Toggle(DropdownVisible, ButtonText, "button", GUILayout.Width(32), GUILayout.Height(20));

? ? ? ? GUI.SetNextControlName("PartSelect");

? ? ? ? selectedItemCaption = GUILayout.TextField(selectedItemCaption);

? ? ? ? clearDropList = GUILayout.Toggle(clearDropList, "Clear", "button", GUILayout.Width(40), GUILayout.Height(20));

? ? ? ? GUILayout.EndHorizontal();

? ? ? ? GUILayout.EndArea();

? ? }

?void Update()

? ? {

? ? ? ? //check if text box info changed

? ? ? ? if (selectedItemCaption != lastCaption)

? ? ? ? {

? ? ? ? ? ? textChanged = true;

? ? ? ? }

?

? ? ? ? // if text box info changed look for part matching text

? ? ? ? if (textChanged)

? ? ? ? {

? ? ? ? ? ? lastCaption = selectedItemCaption;

? ? ? ? ? ? textChanged = false;

? ? ? ? ? ? // go though list to find item

? ? ? ? ? ? for (int i = 0; i < MyListOfStuff.Count; ++i)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (MyListOfStuff[i].Name.StartsWith(selectedItemCaption, System.StringComparison.CurrentCultureIgnoreCase))

? ? ? ? ? ? ? ? {

?

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].enable();

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].ToggleChildren = false;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].disable();

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].ToggleChildren = false;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

?for (int i = 0; i < MyListOfStuff.Count; ++i)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? // check list for item

? ? ? ? ? ? ? ? int test = string.Compare(selectedItemCaption, MyListOfStuff[i].Name, true);

? ? ? ? ? ? ? ? if (test == 0)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? itemtSelected = i;

? ? ? ? ? ? ? ? ? ? targetChange = true;

? ? ? ? ? ? ? ? ? ? break; // stop looking when found

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

?

? ? ? ? // reset message if list closed and text box is empty

? ? ? ? if (selectedItemCaption == "" && !DropdownVisible)

? ? ? ? {

? ? ? ? ? ? lastCaption = selectedItemCaption = "Select a Part...";

? ? ? ? ? ? ClearList(root);

? ? ? ? ? ? FillList(root);

? ? ? ? }

?

? ? ? ? // if Clear button pushed

? ? ? ? if (clearDropList)

? ? ? ? {

? ? ? ? ? ? clearDropList = false;

? ? ? ? ? ? selectedItemCaption = "";

? ? ? ? }

? ? }

public void HandleSelectedButton(int selection)

? ? {

? ? ? ? // do the stuff, camera etc

? ? ? ? itemtSelected = selection;//Set the index for our currently selected item

? ? ? ? updateInfo = true;

? ? ? ? selectedItemCaption = MyListOfStuff[selection].Name;

? ? ? ? currentRoot = GameObject.Find(MyListOfStuff[itemtSelected].Name).transform;

?

? ? ? ? // toggle item show child

? ? ? ? MyListOfStuff[selection].ToggleChildren = !MyListOfStuff[selection].ToggleChildren;

?

? ? ? ? lastCaption = selectedItemCaption;

? ? ? ? // fill my drop down list with the children of the current selected object

? ? ? ? if (!MyListOfStuff[selection].ToggleChildren)

? ? ? ? {

? ? ? ? ? ? if (currentRoot.childCount > 0)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? MyListOfStuff[selection].GuiStyle = MyListOfStuff[selection].SelectedStyle;

? ? ? ? ? ? }

? ? ? ? ? ? FillList(currentRoot);

? ? ? ? }

? ? ? ? else

? ? ? ? {

? ? ? ? ? ? if (currentRoot.childCount > 0)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? MyListOfStuff[selection].GuiStyle = MyListOfStuff[selection].UnSelectedStyle;

? ? ? ? ? ? }

? ? ? ? ? ? ClearList(currentRoot);

? ? ? ? }

? ? ? ? targetChange = true;

?

?

? ? }

// show only items that are the root and its children

? ? public void FillList(Transform root)

? ? {

? ? ? ? foreach (Transform child in root)

? ? ? ? {

? ? ? ? ? ? for (int i = 0; i < MyListOfStuff.Count; ++i)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (MyListOfStuff[i].Name == child.name)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].enable();

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].ToggleChildren = false;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? // turn off children objects

? ? public void ClearList(Transform root)

? ? {

? ? ? ? //Debug.Log(root.name);

? ? ? ? Transform[] childs = root.GetComponentsInChildren<Transform>();

? ? ? ? foreach (Transform child in childs)

? ? ? ? {

? ? ? ? ? ? for (int i = 0; i < MyListOfStuff.Count; ++i)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (MyListOfStuff[i].Name == child.name && MyListOfStuff[i].Name != root.name)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].disable();

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].ToggleChildren = false;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].GuiStyle = MyListOfStuff[i].UnSelectedStyle;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? }

?// recursively build the list so the hierarchy is in tact

? ? void BuildList(Transform root)

? ? {

? ? ? ? // for every object in the thing we are viewing

? ? ? ? foreach (Transform child in root)

? ? ? ? {

? ? ? ? ? ? // add the item

? ? ? ? ? ? MyListOfStuff.Add(new GuiListItem(false, child.name));

? ? ? ? ? ? // if it has children add the children

? ? ? ? ? ? if (child.childCount > 0)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? BuildList(child);

? ? ? ? ? ? }

? ? ? ? }

? ? }

?

? ? public void ResetDropDownList()

? ? {

? ? ? ? selectedItemCaption = "";

? ? ? ? ClearList(root);

? ? ? ? FillList(root);

? ? }

?

? ? public string RemoveNumbers(string key)

? ? {

? ? ? ? return Regex.Replace(key, @"\d", "");

? ? }

?// sets the drop list elements to use the correct GUI skin custom style

? ? private void SetupGUISetting()

? ? {

? ? ? ? // set drop down list gui

? ? ? ? int depth = 0;

? ? ? ? // check all the parts for hierarchy depth

? ? ? ? for (int i = 0; i < MyListOfStuff.Count; ++i)

? ? ? ? {

? ? ? ? ? ? GameObject currentObject = GameObject.Find(MyListOfStuff[i].Name);

? ? ? ? ? ? Transform currentTransform = currentObject.transform;

? ? ? ? ? ? depth = 0;

?

? ? ? ? ? ? if (currentObject.transform.parent == root) // if under root

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (currentObject.transform.childCount > 0)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].GuiStyle = depth;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].UnSelectedStyle = depth;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].SelectedStyle = depth + 2;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].GuiStyle = depth + 1;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].UnSelectedStyle = depth + 1;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].SelectedStyle = depth + 1;

? ? ? ? ? ? ? ? }

?

? ? ? ? ? ? ? ? MyListOfStuff[i].Depth = depth;

?

? ? ? ? ? ? }

?else // if not under root find depth

? ? ? ? ? ? {

? ? ? ? ? ? ? ? while (currentTransform.parent != root)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? ++depth;

? ? ? ? ? ? ? ? ? ? currentTransform = currentTransform.parent;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? MyListOfStuff[i].Depth = depth;

? ? ? ? ? ? ? ? // set gui basied on depth

? ? ? ? ? ? ? ? if (currentObject.transform.childCount > 0)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].GuiStyle = depth * 3;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].UnSelectedStyle = depth * 3;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].SelectedStyle = (depth * 3) + 2;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].GuiStyle = depth * 3 + 1;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].UnSelectedStyle = depth * 3 + 1;

? ? ? ? ? ? ? ? ? ? MyListOfStuff[i].SelectedStyle = depth * 3 + 1;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? }

}


读书人网 >行业软件

热点推荐