//订阅主题数据 void IObserver.ObserverUpdate(ISubject subject, System.Object arg) { if ((EnumBeatType)arg == EnumBeatType.DOWNBEAT) { mCount = 0; } else { mCount++; } print("mCount" + mCount); mCurrentBarIndex = SingletonBeatManager.GetInstance().BarIndex; while (j < mEffectsIterator.Count && mArrayEffectAttribute[j].BarNum == (mCurrentBarIndex - 1) && (mCount == mArrayEffectAttribute[j].Beat)) { //if(mCount == mArrayEffectAttribute[j].Beat){ if (mArrayEffectAttribute[j].FlagPos) { //print ("dddddd"); Instantiate(SingletonLoadGamePlayResources.GetInstance().ArrayEffects[mArrayEffectAttribute[j].EffectId], new Vector3(mArrayEffectAttribute[j].PosX, mArrayEffectAttribute[j].PosY, mArrayEffectAttribute[j].PosZ), Quaternion.identity); //Effect.SetActive (true); } else { //print ("ccccc"+mCurrentBarIndex+" "+mArrayEffectAttribute[j].EffectId); Instantiate(SingletonLoadGamePlayResources.GetInstance().ArrayEffects[mArrayEffectAttribute[j].EffectId]); //Effect.SetActive (true); } j++; } }
// Use this for initialization void Start() { //第0号角色是主角 mPlayerTransform = SingletonLoadGamePlayResources.GetInstance().MainPlayerTransform; //设置当前位置,使用主角的xz,自己的y mCurrentPosition = new Vector3(mPlayerTransform.position.x, transform.position.y, mPlayerTransform.position.z); mTargetPosition = new Vector3(mCurrentPosition.x, mCurrentPosition.y, mCurrentPosition.z); }
// Use this for initialization void Start() { //TODO: 根据配置文件,选择场景和角色的prefab,目前只有一个角色,一个场景(除了角色在那边Instantiate以外,其余的都在需要时相应模块Instantiate) //TODO: 开启节拍控制模块,播放音乐,开始动画 SingletonBeatManager.GetInstance().Begin(); SingletonLoadGamePlayResources.GetInstance().ArrayCharacters[0].animation.Play(DataBetweenScene.SongName); audio.clip = SingletonLoadGamePlayResources.GetInstance().CurrentSong; audio.Play(); }
// Use this for initialization void Start() { //Resources.Load用法 //http://docs.unity3d.com/ScriptReference/Resources.Load.html //http://blog.csdn.net/mxlcl0557/article/details/11195575 mInstance = this; int i = 0; IIterator userPromptsIter = SingletonGameData.GetInstance().CreateUserPromptsIterator(); //加载音乐、用户提示图片和特效 mCurrentSong = Resources.Load("Songs/" + DataBetweenScene.SongName, typeof(AudioClip)) as AudioClip; mArrayTextureUserPromptImages = new Texture[userPromptsIter.Count]; for (i = 0; i < userPromptsIter.Count; i++) { mArrayTextureUserPromptImages[i] = Resources.Load("User Prompt Images/" + DataBetweenScene.SongName + "/" + i.ToString(), typeof(Texture)) as Texture; } //加载特效 EffectAttribute effectAttribute; IIterator effectsIterator = SingletonGameData.GetInstance().CreateEffectIterator(); mArrayEffects = new GameObject[effectsIterator.Count]; while (effectsIterator.HasNext()) { effectAttribute = (effectsIterator.Next()) as EffectAttribute; i = effectAttribute.EffectId; if (mArrayEffects[i] == null) { mArrayEffects[i] = Resources.Load("Effect Prefabs/" + i.ToString(), typeof(GameObject)) as GameObject; } } //TODO: 场景和角色,当前各有一个,均在Song的属性中,第二版改为多个场景切换,角色排列多个 //加载单个场景和单个角色 mArrayScenes = new GameObject[1]; mArrayCharacters = new GameObject[1]; mArrayScenes[0] = Instantiate(Resources.Load("Scene Prefabs/Scene 0", typeof(GameObject))) as GameObject; mArrayCharacters[0] = Instantiate(Resources.Load("Character Prefabs/Character 0", typeof(GameObject))) as GameObject; mMainPlayerTransform = GameObject.FindWithTag("Standard Torso").transform; }
// Update is called once per frame void Update() { switch (mIndex) { case 1: if (SingletonBeatManager.GetInstance().BarIndex == mFirstBarNum - 2) { gameObject.transform.position = mVector[2]; guiTexture.texture = mTexture3; guiTexture.pixelInset = mRect[1]; } if (SingletonBeatManager.GetInstance().BarIndex == mFirstBarNum - 1) { if (gameObject.transform.position.x > mVector[1].x) { transform.Translate((mVector[1] - mVector[2]) * Time.deltaTime * mSpeed); } else { gameObject.transform.position = mVector[1]; guiTexture.pixelInset = mRect[0]; } } if (SingletonBeatManager.GetInstance().BarIndex == mFirstBarNum) { if (gameObject.transform.position.x < mVector[0].x) { transform.Translate((mVector [0] - mVector [1]) * Time.deltaTime * mSpeed); } else { gameObject.transform.position = mVector[0]; guiTexture.pixelInset = mRect[1]; } } break; case 2: if (SingletonBeatManager.GetInstance().BarIndex == mFirstBarNum - 2) { if (gameObject.transform.position.x < mVector[0].x) { transform.Translate((mVector [0] - mVector [1]) * Time.deltaTime * mSpeed); } else { gameObject.transform.position = mVector[0]; guiTexture.pixelInset = mRect[1]; } } if (SingletonBeatManager.GetInstance().BarIndex == mFirstBarNum - 1) { gameObject.transform.position = mVector[2]; guiTexture.texture = mTexture4; guiTexture.pixelInset = mRect[1]; } if (SingletonBeatManager.GetInstance().BarIndex == mFirstBarNum) { if (gameObject.transform.position.x > mVector[1].x) { transform.Translate((mVector[1] - mVector[2]) * Time.deltaTime * mSpeed); } else { gameObject.transform.position = mVector[1]; guiTexture.pixelInset = mRect[0]; } } break; case 3: if (SingletonBeatManager.GetInstance().BarIndex == mFirstBarNum - 2) { if (gameObject.transform.position.x > mVector[1].x) { transform.Translate((mVector[1] - mVector[2]) * Time.deltaTime * mSpeed); } else { gameObject.transform.position = mVector[1]; guiTexture.pixelInset = mRect[0]; } } if (SingletonBeatManager.GetInstance().BarIndex == mFirstBarNum - 1) { if (gameObject.transform.position.x < mVector[0].x) { transform.Translate((mVector [0] - mVector [1]) * Time.deltaTime * mSpeed); } else { gameObject.transform.position = mVector[0]; guiTexture.pixelInset = mRect[1]; } } if (SingletonBeatManager.GetInstance().BarIndex == mFirstBarNum) { gameObject.transform.position = mVector[2]; guiTexture.texture = SingletonLoadGamePlayResources.GetInstance().ArrayTextureUserPromptImages[mIndex % 3]; guiTexture.pixelInset = mRect[1]; } break; } if (SingletonBeatManager.GetInstance().BarIndex > mBarNum) { mBarNumber = mBarNum; if ((gameObject.transform.position.y == mVector [0].y) && mIsMoved2) { gameObject.transform.position = mVector[2]; guiTexture.texture = SingletonLoadGamePlayResources.GetInstance().ArrayTextureUserPromptImages[mIndex % 3 + 3 * mImageIndex]; guiTexture.pixelInset = mRect[1]; if (mUserPromptImageIterator.HasNext()) { mUserPromptsAttribute = (UserPromptsAttribute)mUserPromptImageIterator.Next(); } mBarNum = mUserPromptsAttribute.BarNumber; mText = mUserPromptsAttribute.Text; mBarNum = mBarNum + mBarNumber; mIsMoved2 = false; mImageIndex++; } else if ((gameObject.transform.position.x == mVector[2].x || mIsMoved)) { if (gameObject.transform.position.x > mVector[1].x) { mIsMoved = true; transform.Translate((mVector[1] - mVector[2]) * Time.deltaTime * mSpeed); guiTexture.pixelInset = mRect[1]; } else { gameObject.transform.position = mVector[1]; guiTexture.pixelInset = mRect[0]; if (mUserPromptImageIterator.HasNext()) { mUserPromptsAttribute = (UserPromptsAttribute)mUserPromptImageIterator.Next(); } mBarNum = mUserPromptsAttribute.BarNumber; mText = mUserPromptsAttribute.Text; mBarNum = mBarNum + mBarNumber; mIsMoved = false; } } else if ((gameObject.transform.position.x == mVector [1].x || mIsMoved1)) { if (gameObject.transform.position.y < mVector[0].y) { mIsMoved1 = true; transform.Translate((mVector [0] - mVector [1]) * Time.deltaTime * mSpeed); guiTexture.pixelInset = mRect[0]; mIsMoved2 = false; } else { gameObject.transform.position = mVector[0]; guiTexture.pixelInset = mRect[1]; if (mUserPromptImageIterator.HasNext()) { mUserPromptsAttribute = (UserPromptsAttribute)mUserPromptImageIterator.Next(); } mBarNum = mUserPromptsAttribute.BarNumber; mText = mUserPromptsAttribute.Text; mBarNum = mBarNum + mBarNumber; mIsMoved1 = false; mIsMoved2 = true; } } } }