Search Unity

Sliding Gui auto button generator... help

Discussion in 'Scripting' started by AR_Rizvi, Sep 11, 2013.

  1. AR_Rizvi

    AR_Rizvi

    Joined:
    Aug 12, 2013
    Posts:
    40
    Hi Guys... i am trying to make a sliding menu which contains the auto generated buttons i achieve both things but in separate ways or in separate scripts and i am really not getting how to merge both functionalities becoz both are doing different functions on gui

    What i want is to make a sliding Gui in which it contains my buttons which my script is creating

    here is the code on my auto button generator

    #pragma strict
    var player : GameObject;

    var tagObjs : GameObject[];
    var tagObjsRam : GameObject[];
    var names = new Array();
    //var position : GameObject[];
    private var activeChild : GameObject;
    private var LTInfoWindow : Rect ;
    //var btnName : String = new Array ();
    private var btnName:Array = new Array();
    private var scrollPosition : Vector2 = Vector2.zero;
    private var winLenght : int;
    private var show_pos : boolean;
    private var hideShowBtnWidth : int;

    function Start ()
    {
    hideShowBtnWidth =100;
    // tagObjsRam = GameObject.FindGameObjectsWithTag("PlayerPos");

    tagObjs = OrderByName("PlayerPos");


    for (var i = 0; i <tagObjs.Length; i++ )
    {
    btnName.push(tagObjs.gameObject.name);
    }
    //Debug.Log("btnName: "+btnName.length);
    //Debug.Log("btnName[0]: "+btnName[0]);

    }

    function Update () {
    winLenght = btnName.length * 100;
    if(winLenght > Screen.width - hideShowBtnWidth)
    winLenght = Screen.width - hideShowBtnWidth;
    LTInfoWindow = Rect (hideShowBtnWidth, Screen.height-70,winLenght,70);

    //Debug.Log("tagObjs.length: "+tagObjs.length);

    //if(Input.GetKeyUp(KeyCode.Y))
    //{
    //
    //}


    }
    function OnGUI ()
    {


    if(show_pos)
    InfoWindow();

    if (GUI.Button(Rect(0,Screen.height-70,hideShowBtnWidth,70),"Locations"))
    {

    show_pos = !show_pos;
    }



    }

    function InfoWindow()
    {
    LTInfoWindow = GUI.Window (11, LTInfoWindow, InfoDislay, "Player Shifting");

    }

    function InfoDislay(windowID : int)
    {

    scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.Width(winLenght-20), GUILayout.Height(45));
    GUILayout.BeginHorizontal();

    for(var i = 0; i<btnName.length; i++)

    {
    if (GUILayout.Button(btnName.ToString()))
    {
    setlayer();
    activeChild.transform.position = tagObjs.gameObject.transform.position;
    activeChild.transform.eulerAngles.y =tagObjs.gameObject.transform.eulerAngles.y;
    // show_pos = !show_pos;
    }
    }


    GUILayout.EndHorizontal();
    GUILayout.EndScrollView();
    GUI.DragWindow ();
    }
    function setlayer()
    {
    for (var child : Transform in player.transform)
    {
    if(child.active)
    activeChild = child.transform.gameObject;
    }
    }

    function OrderByName (tag) : GameObject[]
    {
    var gos : GameObject[];
    var names = new Array();
    var finals = new Array();
    gos = GameObject.FindGameObjectsWithTag(tag);
    for (var go : GameObject in gos) {
    names.Push(go.name);
    }
    names.Sort();
    for (var name : String in names) {
    for (var go : GameObject in gos) {
    if(go.name==name){
    finals.Push(go);
    }
    }
    }
    return finals.ToBuiltin(GameObject);
    }

    its working perfectly

    and here's what i achive so far in Gui sliding script which slides the Gui skin on the Space button...

    var MyBoxLeft = -200.0;

    var icon : Texture; var icon2 : Texture; var blankSkin : GUISkin;

    function OnGUI () { GUI.skin = blankSkin; var tBoxRect = new Rect(MyBoxLeft, 20.0, 220, 720); var tButtonRect = new Rect(MyBoxLeft, 160.0, 120, 30); var tBoxArt = new Rect(MyBoxLeft, 200.0, 120, 120);

    GUI.Box(tBoxRect, icon); GUI.Button(tButtonRect, "Click"); GUI.Box(tBoxArt, icon2); }

    function Update () {

    if (Input.GetKeyDown("space")) { AnimateBox(); }

    }

    function AnimateBox () {

    if (MyBoxLeft == -200.0) {

    while (MyBoxLeft < 20.0) {
    MyBoxLeft+=5.0;
    yield;
    }

    } else if (MyBoxLeft == 20.0) {

    while (MyBoxLeft > -200.0) {
    MyBoxLeft-=5.0;
    yield;
    }

    }

    }


    Thanks Guys realy need help in this .... AR