//设置水果状态 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; } } }
private void OnDisable() { m_eFruitType = eFruitType.Fruit_None; m_eFruitState = eFruitState.FruitState_None; m_oFrameObj = null; m_fYBtm = 0f; rb = null; }
//实例化水果 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); }