Пример #1
0
    void Start()
    {
        //add home directory
        Data.init();
        _dirPath = new List <RCDirectory>();
        _dirPath.Add(Data.dirs.Find(x => x.rcname == "home"));
        _curDir = _dirPath[0];

        Data.setAnimalsOnGround();
    }
Пример #2
0
 void path()
 {
     GUILayout.BeginHorizontal();
     for (int i = 0; i < _dirPath.Count; i++)
     {
         if (GUILayout.Button(_dirPath[i].rcname, GUILayout.MaxWidth(_buttonWidth)))
         {
             for (int j = _dirPath.Count - 1; _dirPath[i].rcname != _dirPath[j].rcname; j--)
             {
                 _dirPath.RemoveAt(_dirPath.Count - 1);
             }
             _curDir = _dirPath[_dirPath.Count - 1];
         }
     }
     GUILayout.EndHorizontal();
 }
Пример #3
0
 void objects()
 {
     _scrollPos = GUILayout.BeginScrollView(_scrollPos);
     GUILayout.BeginHorizontal();
     //display directories//
     for (int i = 0; i < _curDir.dirs.Count; i++)
     {
         if (GUILayout.Button(_curDir.dirs[i].rcname, GUILayout.MaxWidth(_buttonWidth)))
         {
             _dirPath.Add(_curDir.dirs[i]);
             _curDir = _curDir.dirs[i];
         }
     }
     //display files//
     for (int i = 0; i < _curDir.files.Count; i++)
     {
         if (_curDir.files[i].icon != null)
         {
             if (GUILayout.Button(_curDir.files[i].icon, GUILayout.MaxWidth(_buttonWidth), GUILayout.MaxHeight(60)))
             {
                 for (int j = 0; j < Data.files.Count; j++)
                 {
                     if (_curDir.files[i].rcname == Data.files[j].rcname)
                     {
                         raycastPosition(j);
                     }
                 }
             }
         }
         else
         {
             if (GUILayout.Button(_curDir.files[i].rcname, GUILayout.MaxWidth(_buttonWidth), GUILayout.MaxHeight(60)))
             {
                 for (int j = 0; j < Data.files.Count; j++)
                 {
                     if (_curDir.files[i].rcname == Data.files[j].rcname)
                     {
                         raycastPosition(j);
                     }
                 }
             }
         }
     }
     GUILayout.EndHorizontal();
     GUILayout.EndScrollView();
 }
Пример #4
0
    public static void loadDir()
    {
        //loading texxt asset from resources.//
        string file = (UnityEngine.Resources.Load("directory") as TextAsset).text;

        //string file = FileManager.loadFile(filePath);
        file = file.Replace("\r", "");
        string[] dir_l = file.Split('\n');
        Debug.Log("loading directories...");

        //create new directory with specified names.//
        for (int i = 0; i < dir_l.Length; i++)
        {
            string[]    tmp   = dir_l[i].Split(':');
            RCDirectory tmp_d = new RCDirectory();
            tmp_d.dirs   = new List <RCDirectory>();
            tmp_d.files  = new List <RCFile>();
            tmp_d.rcname = tmp[0];
            dirs.Add(tmp_d);
        }

        //update all directory links inside a directory.//
        for (int i = 0; i < dirs.Count; i++)
        {
            string loc = dir_l[i].Split(':')[1];
            if (loc == "")
            {
                continue;
            }
            string[] tmp = loc.Split(','); RCDirectory tmp_d;
            //Debug.Log(dir_l[i].Split(':')[0]);
            for (int k = 0; k < tmp.Length; k++)
            {
                for (int j = 0; j < dirs.Count; j++)
                {
                    if (dirs[j].rcname == tmp[k] && i != j)
                    {
                        dirs[i].dirs.Add(dirs[j]);
                        //    Debug.Log(dirs[j].rcname);
                    }
                }
            }
        }

        //update all file links inside directory.//
        for (int i = 0; i < dirs.Count; i++)
        {
            string loc = dir_l[i].Split(':')[2];
            if (loc == "")
            {
                continue;
            }
            string[] tmp = loc.Split(',');
            for (int k = 0; k < tmp.Length; k++)
            {
                for (int j = 0; j < files.Count; j++)
                {
                    if (files[j].rcname == tmp[k])
                    {
                        dirs[i].files.Add(files[j]);
                        //    Debug.Log(files[j].rcname);
                    }
                }
            }
        }
    }