/// <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); }
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); }
private static TextAsset DataFileTextAsset() { _textAsset = ResourcesLoadHelper.GetResources <TextAsset> (ResourceRoleType._Data, ResourcesType.Json, Constants.Framework.SoundJsonFileName); return(_textAsset); }
/// <summary> /// XML 데이터의 파일 경로를 토대로 받아온 TextAsset 데이터를 받아옴. /// </summary> private static List <AudioClip> LoadAudioClip(AudioClipData clipData) { return(clipData.filePath .Select(path => ResourcesLoadHelper.GetResources <AudioClip> (ResourceRoleType._Sound, path)).ToList()); }