Ejemplo n.º 1
0
    // 이 함수 한번 다시 바꿔야할것 같소이다.
    // 지금 파일 형태 불러올려고 대충 짜놈
    // 현재 파일 폴더 뷰도 안되어있고, 스크롤도 안되어있고, 안되어있는게 너무많다
    // 한번 정리해야할것 같음
    private IEnumerator LoadAllFile(string directoryPath)
    {
        // Load시 기존의 FileEntity 전부 제거해야함~
        foreach (var go in _directoryBtnList)
        {
            Destroy(go);
        }
        _directoryBtnList.Clear();
        var topDirectoryInfo = new DirectoryInfo(directoryPath);

        // 현재 png의 탑디렉토리만 불러오는데
        // 이것이 아마 들어있는 폴더들도 불러와야할듯?
        // 아니면 폴더를 따로 구하는 방법을 좀 찾아야함
        DirectoryInfo[] topDirectories = topDirectoryInfo.GetDirectories("*", SearchOption.TopDirectoryOnly);
        FileInfo[]      fileInfos      = topDirectoryInfo.GetFiles("*" + _imageExtensionName, SearchOption.TopDirectoryOnly);

        // 블럭 사이즈의 하드코딩 없애고 최대한 TileManager의 값들을 가져오는 형태로 사용했으면함

        Vector2 fileEntityPosition = new Vector2(0, 0);

        if (_topDirectoryPath != directoryPath)
        {
            fileEntityPosition.y -= _iconfileSize * (_iconExpandPer + 1);
        }

        foreach (var directoryInfo in topDirectories)
        {
            WWW www = new WWW("file://" + directoryInfo.FullName);
            yield return(www);

            FileEntity fileEntity = CreateFileEntity(directoryInfo);
            fileEntity.ClickFileEventHanlder += () => { StartCoroutine("LoadAllFile", directoryInfo.FullName); };
            fileEntity.Initialize(directoryInfo.Name, ImagesParent.transform, fileEntityPosition, null);
            fileEntityPosition.y -= _iconfileSize * (_iconExpandPer + 1);
            _directoryBtnList.Add(fileEntity.gameObject);
        }
        foreach (var fileInfo in fileInfos)
        {
            WWW www = new WWW("file://" + fileInfo.FullName);
            yield return(www);

            var sprite = Sprite.Create(www.texture, Rect.MinMaxRect(0, 0, www.texture.width, www.texture.height), new Vector2(0.5f, 0.5f));
            SpriteManager.Instance.AddSprite(fileInfo.FullName, sprite);

            FileEntity fileEntity = CreateFileEntity(fileInfo);
            fileEntity.ClickFileEventHanlder += () => { _tileManager.ChangeSellectTile(sprite); };
            fileEntity.Initialize(fileInfo.Name, ImagesParent.transform, fileEntityPosition, www.texture);
            fileEntityPosition.y -= www.texture.height * (_iconExpandPer + 1);
            _directoryBtnList.Add(fileEntity.gameObject);
        }
        _currDirectoryPath = directoryPath;
    }