Esempio n. 1
0
        //设置水果状态
        void SetFruitBehaviour(eFruitState state)
        {
            switch (state)
            {
            case eFruitState.FruitState_Login:
            {
                //设置刚体类型
                RB.isKinematic = true;
                //加载外环对象.
                AddFruitFrame();
                //路径
                break;
            }

            case eFruitState.FruitState_Game:
            {
                RB.isKinematic = false;
                break;
            }

            default:
            {
                break;
            }
            }
        }
Esempio n. 2
0
 private void OnDisable()
 {
     m_eFruitType  = eFruitType.Fruit_None;
     m_eFruitState = eFruitState.FruitState_None;
     m_oFrameObj   = null;
     m_fYBtm       = 0f;
     rb            = null;
 }
Esempio n. 3
0
        //实例化水果
        public static FruitController InstantiateMyFruit(
            Vector3 pos,
            Vector3 rot,
            eFruitState state        = eFruitState.FruitState_Game,
            eFruitType type          = eFruitType.Fruit_Melon,
            SliceDelgate _sliceEvent = null
            )
        {
            GameObject fruit;

            //动态加载预制体到层级列表中
            if (null == GarbageCollection.m_Inst || null == (fruit = GarbageCollection.m_Inst.GetGameObjectFromContainer(type)))
            {
                fruit = Instantiate(Resources.Load(GlobalHelper.g_dGlobalInfos[type]), pos, Quaternion.Euler(rot)) as GameObject;
            }
            else
            {
                fruit.transform.position = pos;
                fruit.transform.rotation = Quaternion.Euler(rot);
            }

            FruitController fc = fruit.GetOrAddComponent <FruitController>();

            //设置水果状态对应的行为
            fc.SetFruitBehaviour(state);

            //设置水果类型
            fc.m_eFruitState = state;
            fc.m_eFruitType  = type;


            //归零速度
            fc.RB.velocity = Vector3.zero;

            //设置离开视野坐标
            fc.m_fYBtm = GlobalHelper.GetVisibleYPos(pos.z, fc.MaxSize);

            if (null != _sliceEvent)
            {
                fc.m_delSliceEvent = _sliceEvent;
            }

            return(fc);
        }