예제 #1
0
 //订阅主题数据
 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++;
     }
 }
예제 #2
0
 // 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);
 }
예제 #3
0
    // 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;
    }
예제 #5
0
    // 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;
                }
            }
        }
    }