Exemplo n.º 1
0
        /// <summary>
        /// CSV 데이터 리턴.
        /// 데이터 클래스를 List<object> 형식으로 받아올 수 있게 구현해주어야 함.
        /// </summary>
        /// <returns></returns>
        public async UniTask <List <T> > LoadCSVData <T> (string path) where T : TableDataBase, new ()
        {
            var csvDataBases = new List <T> ();
            var res          = await ResourcesLoadHelper
                               .GetResourcesAsync <TextAsset> (ResourceRoleType._Data, ResourcesType.TSV, path);

            var csvEnum = res.text.Split('\n').GetEnumerator();

            csvEnum.MoveNext();

            while (csvEnum.MoveNext())
            {
                var datas = csvEnum.Current?.ToString();
                if (string.IsNullOrEmpty(datas))
                {
                    continue;
                }
                var tempListValues = datas.Split('\t').ToList();
                var dataBase       = new T();
                dataBase.SetData(tempListValues);
                csvDataBases.Add(dataBase);
            }

            await UniTask.WaitWhile(() => csvEnum.MoveNext());

            return(csvDataBases);
        }
Exemplo n.º 2
0
        public override void InitManager()
        {
            var bgmTextAsset = ResourcesLoadHelper.GetResources <TextAsset> (ResourceRoleType._Data, ResourcesType.Json,
                                                                             Constants.Framework.SoundJsonFileName);
            var clipData = JsonUtility.FromJson <AudioClipData> (bgmTextAsset.text);

            _soundClipDataDict = clipData.filePath.Zip(clipData.volumes, (path, volume) =>
            {
                var soundTypeEnum = (SoundTypeEnum)Enum.Parse(typeof(SoundTypeEnum), path);
                var clip          = ResourcesLoadHelper.GetResources <AudioClip> (ResourceRoleType._Sound, path);
                return(soundTypeEnum, volume, clip);
            }).ToDictionary(tuple => tuple.soundTypeEnum, tuple => new AudioClipDataBase(tuple.clip, tuple.volume));
        }
        /// <summary>
        /// create common view.
        /// </summary>
        public async UniTask <T> OpenCommonView <T> (string viewName) where T : PooledObjectComponent
        {
            var resObj =
                await ResourcesLoadHelper.GetResourcesAsync <T> (ResourceRoleType._Prefab, ResourcesType.CommonView,
                                                                 viewName);

            var commonView = ProjectContext.Instance.Container.InstantiatePrefabForComponent <T> (resObj);

            commonView.Created <T> (PoolingObjectType.Prefab, viewName);

            var rectT = commonView.GetComponent <RectTransform> ();

            rectT.SetParent(_navigationComponent.CommonViewParents);
            rectT.SetInstantiateTransform();

            return(commonView);
        }
        /// <summary>
        /// create popup view object.
        /// </summary>
        private async UniTask <PopupViewBase> CreatePopup(string viewString)
        {
            // 풀링된 오브젝트가 있을 경우.
            if (ObjectPoolingManager.Instance.IsExistPooledObject(PoolingObjectType.View, viewString))
            {
                return(ObjectPoolingManager.Instance.ReturnLoadResources <PopupViewBase> (PoolingObjectType.View,
                                                                                          viewString));
            }

            var resObj = await ResourcesLoadHelper.GetResourcesAsync <PopupViewBase> (ResourceRoleType._Prefab,
                                                                                      ResourcesType.Popup, viewString);

            var popup = ProjectContext.Instance.Container.InstantiatePrefabForComponent <PopupViewBase> (resObj);

            popup.Created <PopupViewBase> (PoolingObjectType.View, viewString);
            return(popup);
        }
        /// <summary>
        /// create page view object
        /// </summary>
        private async UniTask <PageViewBase> CreatePage(string viewString)
        {
            // if exist pooled object.
            if (ObjectPoolingManager.Instance.IsExistPooledObject(PoolingObjectType.View, viewString))
            {
                return(ObjectPoolingManager.Instance.ReturnLoadResources <PageViewBase> (PoolingObjectType.View,
                                                                                         viewString));
            }

            var resObj = await ResourcesLoadHelper.GetResourcesAsync <PageViewBase> (ResourceRoleType._Prefab,
                                                                                     ResourcesType.Page, viewString);

            var page = ProjectContext.Instance.Container.InstantiatePrefabForComponent <PageViewBase> (resObj);

            page.Created <PageViewBase> (PoolingObjectType.View, viewString);
            return(page);
        }
        protected override async UniTask OnPush(object pushValue = null)
        {
            touchPreventionObj.SetActive(false);
            _puzzleViewmodel.StartStage(EndPuzzleMovement);

            AllLineElements = _puzzleViewmodel.AllLineModels
                              .ToDictionary(x => x.Key, x => lineElements[x.Key].SetLineModel(x.Value));

            for (var c = 0; c < AllLineElements.Count; c++)
            {
                for (var r = 0; r < AllLineElements[c].landElements.Length; r++)
                {
                    if (AllLineElements[c].LineModel.LandDatas[r].landTypes == LandTypes.Hide)
                    {
                        continue;
                    }

                    var element = AllLineElements[c].GetLandElement(r);
                    element.gameObject.SetActive(true);
                    var resObj = ResourcesLoadHelper.GetResources <PuzzleElement> (ResourceRoleType._Prefab,
                                                                                   ResourcesType.Element, "PuzzleElement");
                    var prefab =
                        ProjectContext.Instance.Container.InstantiatePrefabForComponent <PuzzleElement> (resObj);
                    prefab.transform.SetParent(puzzleParents);
                    prefab.transform.SetInstantiateTransform();

                    _puzzleElements.Push(prefab);
                }
            }

            foreach (var puzzleModel in _puzzleViewmodel.AllPuzzleModels)
            {
                var poppedElement = _puzzleElements.Pop();
                poppedElement.SetPuzzleView(_puzzleViewmodel, this);
                poppedElement.SetModel(puzzleModel);
                poppedElement.transform.position = AllLineElements[puzzleModel.PositionModel.Column]
                                                   .GetLandElement(puzzleModel.PositionModel.Row).transform.position;
            }

            await WaitDisplayPuzzles().ToUniTask();

            await base.OnPush(pushValue);
        }
Exemplo n.º 7
0
 private static TextAsset DataFileTextAsset()
 {
     _textAsset = ResourcesLoadHelper.GetResources <TextAsset> (ResourceRoleType._Data, ResourcesType.Json,
                                                                Constants.Framework.SoundJsonFileName);
     return(_textAsset);
 }
Exemplo n.º 8
0
 /// <summary>
 /// XML 데이터의 파일 경로를 토대로 받아온 TextAsset 데이터를 받아옴.
 /// </summary>
 private static List <AudioClip> LoadAudioClip(AudioClipData clipData)
 {
     return(clipData.filePath
            .Select(path => ResourcesLoadHelper.GetResources <AudioClip> (ResourceRoleType._Sound, path)).ToList());
 }