protected override void Init() { Type type = Type.GetType(_nodeName); if (PageManager.Instance.CurrentPage != null) { var nodeInstance = PageManager.Instance.CurrentPage.GetNode(type); if (nodeInstance != null) { var startPoint = nodeInstance.transform.Find(_targetPathS); var endPoint = nodeInstance.transform.Find(_targetPathE); if (startPoint && endPoint) { _finger = GameObject.Instantiate(ResourceLoadUtils.Load <GameObject>(_resource)); _finger.SetActive(false); _finger.transform.SetParent(TutorialUIManager.Instance.SwitchTransform); _finger.transform.localScale = _scale; _finger.transform.rotation = Quaternion.Euler(_angle); _finger.transform.position = startPoint.position; _finger.SetActive(true); TutorialUIManager.Instance.GameObjectMove(_finger, startPoint.position, endPoint.position, _speed, _isPingPong); } else { LogManager.LogWarning("Warning! No button found in node: " + _nodeName + ": " + _targetPathS + ": " + _targetPathE); } } } }
IEnumerator ArrowAnimationSub(Transform target, Canvas canvas, float moveRange, float angle, List <GameObject> lgo) { GameObject arrow = GameObject.Instantiate(ResourceLoadUtils.Load <GameObject>("Framework/Core/Tutorial/ImageMove/Arrow")); arrow.SetActive(false); lgo.Add(arrow); arrow.transform.SetParent(SwitchTransform); arrow.transform.localScale = Vector3.one; Vector2 startPosition = default(Vector2); angle = UIUtils.NormalizedAngle(angle); if (target.GetComponent <RectTransform>()) { var pageCanvasScale = canvas.transform.localScale.x; startPosition = UIUtils.GetOctagonalPosOfRectByAngleInWorld(target.GetComponent <RectTransform>(), angle, pageCanvasScale); } else { startPosition = Camera.main.WorldToScreenPoint(target.position); } arrow.transform.localEulerAngles = Vector3.forward * angle; Vector2 targetPosition = startPosition + moveRange * UIUtils.GetNormalizedFromAngle(-angle); arrow.transform.position = targetPosition; arrow.SetActive(true); yield return(null); GameObjectMove(arrow, startPosition, targetPosition, 1, true); }
IEnumerator ShowFocusPointerByPointSub(RectTransform focusRectTf, Canvas canvas, float angle, RectTransform targetRtf, bool _isMove, bool isPingPong = true) { if (_focusPointer == null) { var go = Instantiate(ResourceLoadUtils.Load <GameObject>("Framework/Core/Tutorial/Focus/FocusPointer")) as GameObject; _focusPointer = go.transform as RectTransform; _focusPointer.gameObject.SetActive(false); _focusPointer.SetParent(SwitchTransform); _focusPointer.localScale = Vector3.one; } var pageCanvasScale = canvas.transform.localScale.x; Vector2 pivotPos = UIUtils.GetOctagonalPosOfRectByAngleInWorld(focusRectTf, angle, pageCanvasScale); _focusPointer.position = pivotPos; Vector2 targetPos = UIUtils.GetOctagonalPosOfRectByAngleInWorld(targetRtf, angle, pageCanvasScale); angle = UIUtils.NormalizedAngle(angle); _focusPointer.localScale = new Vector3(1, angle > 90 && angle < 270 ? 1 : -1, 1); _focusPointer.eulerAngles = new Vector3(0, 0, angle); yield return(null); _focusPointer.gameObject.SetActive(true); if (_isMove) { GameObjectMove(_focusPointer.gameObject, _focusPointer.position, targetPos, 1, isPingPong); } EnableParentCanvasRaycaster(_focusPointer); }
public static void RegisterPool(string type, int startCount, string path) { if (!m_ObjectPool.ContainsKey(type)) { m_ObjectPathDic.Add(type, path); m_ObjectPool[type] = new List <GameObject>(); for (int i = 0; i < startCount; i++) { GameObject obj = GameObject.Instantiate(ResourceLoadUtils.Load <GameObject>(path)); GameObject.DontDestroyOnLoad(obj); obj.transform.SetParent(GetPool().transform); obj.SetActive(false); obj.name = type; m_ObjectPool[type].Add(obj); } } else { int number = m_ObjectPool[type].Count; if (number < startCount) { for (int i = 0; i < startCount - number; i++) { GameObject obj = GameObject.Instantiate(ResourceLoadUtils.Load <GameObject>(path)); GameObject.DontDestroyOnLoad(obj); obj.transform.SetParent(GetPool().transform); obj.SetActive(false); obj.name = type; m_ObjectPool[type].Add(obj); } } } }
public void PlayWord(string word) { if (_mute) { return; } try { var sfx = GetIdleSfx(); if (_wordCache.ContainsKey(word)) { sfx.clip = _wordCache[word]; } else { sfx.clip = ResourceLoadUtils.Load <AudioClip>(_folder + word.ToLower(), true); _wordCache.Add(word, sfx.clip); } //float[] data = new float[sfx.clip.samples * sfx.clip.channels]; //sfx.clip.GetData(data, 0); //FileStream fs = new FileStream(Application.dataPath + "/test.txt", FileMode.Create, FileAccess.ReadWrite); //StreamWriter sw = new StreamWriter(fs); //for (int i = 0; i < data.Length; i++) //{ // sw.WriteLine(data[i]); //} sfx.loop = false; sfx.Play(); } catch (Exception e) { Debug.Log(e.Message); } }
GameObject GetNodePrefab(string type) { string[] splits = type.Split('.'); var path = "UI/Nodes/" + splits[splits.Length - 1]; return(ResourceLoadUtils.Load <GameObject>(path, true)); }
void Init() { _checkTip = ResourceLoadUtils.Load <GameObject>("Framework/Core/UI/Prompt/CheckTip") as GameObject; _windowTip = ResourceLoadUtils.Load <GameObject>("Framework/Core/UI/Prompt/WindowTip") as GameObject; _floatingTip = ResourceLoadUtils.Load <GameObject>("Framework/Core/UI/Prompt/FloatingTip") as GameObject; _noticeTip = ResourceLoadUtils.Load <GameObject>("Framework/Core/UI/Prompt/NoticeTip") as GameObject; }
// Use this for initialization void Start() { m_AllWordNum = 0; if (Instance != null) { Destroy(Instance); LogManager.Log("Clear CorePlayManager"); } Instance = this; m_Status = GameStatus.Idle; m_Horn.SetActive(false); m_InputCheck = new CorePlayInputCheck(this); m_AutoPlay = Instantiate(ResourceLoadUtils.Load <GameObject>("CorePlay/AutoPointer")).GetComponent <CorePlayAutoPlay>(); m_AutoPlay.Close(); CorePlayInputCheck.SentenceAllRightEvent.RemoveAllListeners(); m_TapCreator = new RhythmTapCreator(); m_TapCreator.SetManager(this); m_VoiceCreator = new RhythmVoiceCreator(); PageManager.Instance.CurrentPage.GetNode <CalculateNode>().ShowMainSliderAndPauseButton(); Reset(); if (!m_EditMode) { CalcCorePlayData(); StartLogic(); } }
protected override void Init() { _arrow = GameObject.Instantiate(ResourceLoadUtils.Load <GameObject>(_path)); _arrow.SetActive(false); _arrow.transform.SetParent(TutorialUIManager.Instance.SwitchTransform); _arrow.transform.localScale = new Vector3(_scale, _scale, _scale); _arrow.transform.rotation = Quaternion.Euler(_angle); Type type = Type.GetType(_nodeName); if (PageManager.Instance.CurrentPage != null) { var nodeInstance = PageManager.Instance.CurrentPage.GetNode(type); if (nodeInstance != null) { var trans = nodeInstance.transform.Find(_targetPathS); if (trans != null) { _arrow.transform.position = trans.position; } else { LogManager.LogWarning("Warning! No button found in node: " + _nodeName + ": " + _targetPathS); } } } var oldColor = _arrow.GetComponent <Image> ().color; _arrow.GetComponent <Image> ().color = new Color(oldColor.r, oldColor.g, oldColor.b, _alpha); _arrow.SetActive(true); }
public void PlayWord(string word, Action callback = null) { if (_mute) { return; } try { IsPause = false; _playWordCompleteCallback = callback; _playWordSource = GetIdleSfx(); if (_wordCache.ContainsKey(word)) { _playWordSource.clip = _wordCache[word]; } else { _playWordSource.clip = ResourceLoadUtils.Load <AudioClip>(_wordFolder + word.Replace(' ', '_').ToLower(), true); _wordCache.Add(word, _playWordSource.clip); } _playWordSource.loop = false; _playWordSource.Play(); } catch (Exception e) { LogManager.Log(e.Message); } }
public static GameObject GetOne(string type) { GameObject obj = null; if (m_ObjectPool.ContainsKey(type)) { if (m_ObjectPool[type].Count > 0) { obj = m_ObjectPool[type][0]; obj.SetActive(true); m_ObjectPool[type].RemoveAt(0); } else { obj = GameObject.Instantiate(ResourceLoadUtils.Load <GameObject>(m_ObjectPathDic[type])); GameObject.DontDestroyOnLoad(obj); obj.name = type; } } else { LogManager.LogError("Did not register before asking for GameObject!!"); } return(obj); }
public void LoadLyric(string fileName) { if (!_songCache.ContainsKey(fileName)) { AudioClip clip = ResourceLoadUtils.Load <AudioClip>(_lyricFolder + fileName.ToLower(), true); _songCache.Add(fileName, clip); } }
public void LoadSong(string songName) { if (!_songCache.ContainsKey(songName)) { AudioClip clip = ResourceLoadUtils.Load <AudioClip>(_folder + songName.ToLower(), true); _songCache.Add(songName, clip); } }
IEnumerator InstantTutorial() { m_Status = GameStatus.Idle; yield return(new WaitForSeconds(1f)); m_Status = GameStatus.InTutorial; Tutorial = Instantiate(ResourceLoadUtils.Load <TutorialScene>("CorePlay/TutorialNode")); }
public static Transform ImageChinese(string text) { GameObject root = new GameObject(); root.AddComponent <RectTransform>(); float width = 0; float height = 0; float stringLen = text.Length; for (int i = 0; i < stringLen; i++) { string wordPath = "ArtAlphabet/Chinese/" + System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(text[i].ToString())); GameObject word = new GameObject(); if (ResourceLoadUtils.Load <Sprite>(wordPath) != null) { word.name = text[i].ToString(); Sprite spr = GameObject.Instantiate(ResourceLoadUtils.Load <Sprite>(wordPath)); Image image = word.AddComponent <Image>(); image.sprite = spr; image.SetNativeSize(); } else { LogManager.LogWarning("词库中不存在中文字:", text[i]); word = GameObject.Instantiate(ResourceLoadUtils.Load <GameObject>("ArtAlphabet/Text")); word.GetComponent <Text>().text = text[i].ToString(); } word.transform.localScale = Vector3.one; word.transform.SetParent(root.transform); RectTransform wordTransform = word.GetComponent <RectTransform>(); wordTransform.localScale = Vector3.one; float wordWidth = wordTransform.sizeDelta.x; float wordHeight = wordTransform.sizeDelta.y; if (height < wordHeight) { height = wordHeight; } float wordX = width + 0.5f * wordWidth; width = width + wordWidth; wordTransform.localPosition = new Vector3(wordX, 0, 0); } float removex = width / 2; for (int i = 0; i < stringLen; i++) { RectTransform wordTransform = root.transform.GetChild(i).GetComponent <RectTransform>(); float wordx = wordTransform.position.x - removex; wordTransform.position = new Vector3(wordx, 0, 0); } RectTransform thisRectTransform = root.transform.GetComponent <RectTransform>(); thisRectTransform.sizeDelta = new Vector2(width, height); thisRectTransform.position = new Vector3(0, 0, 0); return(root.transform); }
// 加载Loading场景 IEnumerator LoadLoadingScene(AsyncOperation aon) { yield return(new WaitForEndOfFrame()); if (aon.progress < 1) { StartCoroutine(LoadLoadingScene(aon)); } else { while (SceneManager.GetActiveScene().name != LoadingScene) { yield return(null); } InitProgress(); // 完成加载Loading场景 if (_loadingSceneCallback != null) { _loadingSceneCallback(); _loadingSceneCallback = null; } yield return(new WaitForEndOfFrame()); if (_preLoadObject != null) { Destroy(_preLoadObject); } yield return(null); AssetBundleManager.Instance.ClearBundleMap(); #if !UNITY_ANDROID || UNITY_EDITOR AssetBundleManager.Instance.ClearAudioMap(); #endif Resources.UnloadUnusedAssets(); System.GC.Collect(); if (!string.IsNullOrEmpty(_bundleName)) { var prefab = ResourceLoadUtils.Load <GameObject>("SceneInitObjects/" + _bundleName); if (prefab) { GameObject obj = Instantiate(prefab); obj.name = obj.name.Replace("(Clone)", ""); DontDestroyOnLoad(obj); _preLoadObject = obj; } } StartLoadNextScene(); } }
//private void UpdateChangePinYinButton(bool isShow) // { // if (LanguageManager.languageType == LanguageType.Chinese) // { //showPinYin.gameObject.SetActive(false); // } // else // { //showPinYin.gameObject.SetActive(true); //showPinYin.transform.GetChild(0).GetComponent<Text>().text = isShow != true ? "显示拼音" : "不显示拼音"; // } //} public void InitBossLife(int maxLife) { for (int i = 0; i < maxLife; i++) { GameObject obj = Instantiate(ResourceLoadUtils.Load <GameObject>("CorePlay/HeartItem")); obj.name = "HeartItem"; obj.transform.SetParent(tran_BossLifeRoot.transform); obj.transform.localScale = Vector2.one; } }
public void PlayMusic(int musicId) { if (_mute) { return; } _bgmSource.clip = ResourceLoadUtils.Load <AudioClip>(_folder + AudioConfig.Instance.GetNameById(musicId), true); _bgmSource.loop = true; _bgmSource.Play(); }
public void PlayMusic(string musicType) { //播放系统背景音乐 if (_mute) { return; } _bgmSource.clip = ResourceLoadUtils.Load <AudioClip>(_folder + AudioConfig.Instance.GetNameByKey(musicType), true); _bgmSource.loop = true; _bgmSource.Play(); }
public static Transform SpriteRendererChinese(string text) { GameObject root = new GameObject(); float width = 0; float height = 0; float stringLen = text.Length; for (int i = 0; i < stringLen; i++) { string wordPath = "ArtAlphabet/Chinese/" + System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(text[i].ToString())); GameObject word = new GameObject(); float wordWidth; float wordHeight; if (ResourceLoadUtils.Load <Sprite>(wordPath) != null) { word.name = text[i].ToString(); Sprite spr = GameObject.Instantiate(ResourceLoadUtils.Load <Sprite>(wordPath)); SpriteRenderer sprRenderer = word.AddComponent <SpriteRenderer>(); sprRenderer.sprite = spr; sprRenderer.sortingLayerName = "Font"; wordWidth = sprRenderer.bounds.extents.x * 2; wordHeight = sprRenderer.bounds.extents.y * 2; sprRenderer.color = new Color(1, 151 / 255f, 0); } else { LogManager.LogWarning("词库中不存在中文字:" + text[i]); word = GameObject.Instantiate(ResourceLoadUtils.Load <GameObject>("ArtAlphabet/Text3D")); word.GetComponent <TextMesh>().text = text[i].ToString(); wordWidth = word.GetComponent <MeshRenderer>().bounds.extents.x * 2; wordHeight = word.GetComponent <MeshRenderer>().bounds.extents.y * 2; } word.transform.SetParent(root.transform); word.transform.localScale = Vector3.one; if (height < wordHeight) { height = wordHeight; } float wordX = width + 0.5f * wordWidth; width = width + wordWidth; word.transform.localPosition = new Vector3(wordX, 0, 0); } float removex = width / 2; for (int i = 0; i < stringLen; i++) { Transform wordTransform = root.transform.GetChild(i); float wordx = wordTransform.position.x - removex; wordTransform.position = new Vector3(wordx, 0, 0); } return(root.transform); }
GameObject InstantiatePage(string pageType) { var path = "UI/Pages/" + pageType; var prefab = ResourceLoadUtils.Load <GameObject>(path, true); if (prefab != null) { return(Instantiate(prefab)); } return(null); }
public void PlayWordList(List <string> wordList, string songID = null, Action callback = null) { if (wordList.Count == 0) { if (callback != null) { callback.Invoke(); } return; } _waitQueue.Clear(); _waitQueue.AddRange(wordList); IsPause = false; if (_mute) { return; } try { _playWordCompleteCallback = callback; _songID = songID; if (_playWordSource == null) { _playWordSource = GetIdleSfx(); } if (_wordCache.ContainsKey(_waitQueue[0])) { _playWordSource.clip = _wordCache[_waitQueue[0]]; } else { if (songID == null) { _playWordSource.clip = ResourceLoadUtils.Load <AudioClip>(_wordFolder + _waitQueue[0].ToLower(), true); } else { _playWordSource.clip = ResourceLoadUtils.Load <AudioClip>(_audioWordsFolder + songID + "/" + _waitQueue[0].ToLower(), true); } _wordCache.Add(_waitQueue[0], _playWordSource.clip); } _playWordSource.loop = false; _playWordSource.Play(); _waitQueue.RemoveAt(0); } catch (Exception e) { LogManager.Log(e.Message); } }
public static string GetAudioFileName(string fileName) { string path = "Songs/" + fileName; TextAsset osu = ResourceLoadUtils.Load <TextAsset> (path); if (osu == null) { LogManager.LogError(path, ".txt 文件没有找到!!请检查SongConfig文件中 scripts 列是否正确"); return(null); } return(ParseAudioFileName(osu)); }
void BasePlaySfx(AudioSource audioSource, object type, bool isLoop = false) { if (type.GetType() == typeof(int)) { audioSource.clip = ResourceLoadUtils.Load <AudioClip>(_folder + AudioConfig.Instance.GetNameById((int)type), true); } else if (type.GetType() == typeof(string)) { audioSource.clip = ResourceLoadUtils.Load <AudioClip>(_folder + AudioConfig.Instance.GetNameByKey((string)type), true); } audioSource.loop = isLoop; audioSource.Play(); }
IEnumerator ShowFingerClickSub(Vector2 position) { if (!_fingerClickGo) { _fingerClickGo = Instantiate(ResourceLoadUtils.Load <GameObject>("Framework/Core/Tutorial/FingerClick/FingerClick")) as GameObject; } _fingerClickGo.SetActive(false); _fingerClickGo.transform.SetParent(SwitchTransform); _fingerClickGo.transform.localScale = Vector3.one; _fingerClickGo.transform.position = position; _fingerClickGo.SetActive(true); yield return(null); _fingerClickGo.GetComponent <Animation>().Play(); }
void AddNode() { PageManager.Instance.CurrentPage.AddNode <StartSceneNode>(true); if (CorePlaySettings.Instance.m_UseMemoryPool) { VideoClip vc = ResourceLoadUtils.Load <VideoClip>("animation"); StaticMemoryPool.AddIntoPool("startAnimation", vc); } PageManager.Instance.gameObject.GetComponent <Canvas>().worldCamera = Camera.main; for (int i = 0; i < m_models.Length; ++i) { m_models[i].gameObject.SetActive(true); } }
// 刷新文件信息 void RefreshFileList(string focusFilePath = "") { _scriptGroupFileInfos.Clear(); foreach (var folder in ResourceLoadUtils.GetSubfolderFullPaths()) { var fileInfos = MiscUtils.GetFileInfoFromFolder(Path.Combine(folder, TutorialManager.TutorialScriptPath), "*.json", SearchOption.AllDirectories, ".meta"); var key = folder.Replace(Application.dataPath.Replace("\\", "/") + "/", ""); _scriptGroupFileInfos[key] = fileInfos; if (!_scriptGroupOpen.ContainsKey(key)) { _scriptGroupOpen.Add(key, false); } } ChooseAppropriateScript(focusFilePath); }
public void StartAutoTestScript(string scriptName) { m_ScriptName = scriptName; string json = ResourceLoadUtils.Load <TextAsset>("AutoText/" + scriptName).text; JsonData data = JsonMapper.ToObject(json); m_AutoAction = AutoActionJsonParser.Parse(data); if (m_AutoAction != null) { m_AutoAction.SetFinishCallback(TestSuccess); Application.logMessageReceived += GetLog; m_Start = true; } else { TestFailed("script parse error!! " + scriptName); } }
private GameObject LoadReady(string objName) { GameObject obj = new GameObject(); obj.gameObject.name = objName; obj.tag = "intrada"; Image image = obj.AddComponent <Image>(); image.raycastTarget = false; image.sprite = GameObject.Instantiate(ResourceLoadUtils.Load <Sprite>("CorePlay/Pretip/" + objName)); RectTransform rt = image.GetComponent <RectTransform>(); rt.transform.SetParent(PageManager.Instance.CurrentPage.transform); rt.localScale = Vector3.one; image.SetNativeSize(); rt.position = new Vector3(-rt.sizeDelta.x / 2f, -rt.sizeDelta.y / 2f, 0); return(obj); }
private void PlayVideo() { if (StaticData.ApplicationStart) { if (CorePlaySettings.Instance.m_UseMemoryPool) { VideoPlay.Instance.PlayVideo(StaticMemoryPool.GetItem <VideoClip> ("startAnimation"), PlayEnd); } else { VideoClip vc = ResourceLoadUtils.Load <VideoClip> ("animation"); VideoPlay.Instance.PlayVideo(vc, PlayEnd); } } else { PlayBG(); } }