public void TestOneFish() { float hBound = 120; float yBottom = -70; float yUp = 70; int[] temp = new int[2] { -1, 1 }; int flag = temp[Random.Range(0, 2)]; float speed = Random.Range(40, 70); int pathid = Random.Range(0, 5); int[] temp1 = new int[10] { 0, 0, 0, 0, 0, 2, 0, 0, 0, 1 }; int fishid = temp1[Random.Range(0, 10)]; if (fishid == 1) { speed = 30; } if (fishid == 2) { speed = 20; pathid = 0; } Vector3 headPosition = new Vector3(hBound * flag, Random.Range(yBottom + 20, yUp - 20), Random.Range(96, 96 + 20)); Vector3 bornEulerAngles = new Vector3(Random.Range(-20, 20), -Random.Range(80, 100) * flag, 0); FishManager.GetInstance().CreateFish(fishid, headPosition, bornEulerAngles, pathid, speed, 0); }
public void OnClickedIsland() { FishManager.GetInstance().Initialize(); FishData.GetInstance().GameState = GameState.MainLoop; gameObject.SetActive(false); UIManager.GetInstance().Show("Debug"); }
public void InitFish(int FishID) { var fishManager = FishManager.GetInstance(); for (int i = 0; i < Trans.Count; i++) { var fish = fishManager.CreatFishByID(FishID); fish.transform.position = Trans[i].position; fish.transform.rotation = Trans[i].rotation; fish.transform.SetParent(gameObject.transform); Fishes.Add(fish); } }
// Update is called once per frame void Update() { float dt = Time.deltaTime; UIManager.GetInstance().Update(dt); UICommandSystem.GetInstance().Update(dt); if (FishData.GetInstance().GameState == GameState.MainLoop) { TimeManager.GetInstance().Update(dt); EventManager.GetInstance().Update(dt); FishManager.GetInstance().Update(dt); } }
public void TestFishSeason() { FishSeason season = SeasonConfigManager.GetInstance().GetSeason(Random.Range(0, 3)); if (season == null) { return; } foreach (OneWave wave in season.waves) { foreach (WaveFish fish in wave.fishes) { FishManager.GetInstance().CreateFish(fish.fkid, fish.p, wave.ea, wave.pathid, wave.speed, -fish.p.x / 20.0f); } } }
public void InitFishs(List <int> fishs) { if (fishs.Count == Trans.Count) { var fishManager = FishManager.GetInstance(); for (int i = 0; i < fishs.Count; i++) { if (Trans[i] != null) { var fish = fishManager.CreatFishByID(fishs[i]); if (fish != null) { fish.transform.SetParent(Trans[i]); fish.transform.position = Trans[i].position; } } } } }
public void TestTeam() { float hBound = 120; float yBottom = -70; float yUp = 70; int[] temp = new int[2] { -1, 1 }; int flag = temp[Random.Range(0, 2)]; float speed = Random.Range(40, 70); int pathid = Random.Range(0, 5); Vector3 headPosition = new Vector3(hBound * flag, Random.Range(yBottom + 20, yUp - 20), Random.Range(96, 96 + 20)); //Vector3 bornEulerAngles = new Vector3(Random.Range(-20, 20), Random.Range(80, 100) * flag, 0); Vector3 bornEulerAngles = new Vector3(0, -90 * flag, 0); int randomCnt = Random.Range(5, 11); for (int i = 0; i < randomCnt; i++) { Vector3 offset = new Vector3(i * 15 * flag, 0, 0); //offset = Quaternion.Euler(bornEulerAngles) * offset; FishManager.GetInstance().CreateFish(0, headPosition + offset, bornEulerAngles, pathid, speed, i * 15.0f / speed); } }
// Update is called once per frame void Update() { if (mFishPath == null) { return; } if (mUnActiveTime > 0) { transform.Translate(Vector3.forward * Time.deltaTime * mSpeed); mUnActiveTime -= Time.deltaTime; return; } float framedt = Time.deltaTime * mSpeedScaleFactor; mLastFrameLife = mCurrentLife; mCurrentLife += framedt; mStepTime = 0; for (int i = 0; i < mFishPath.controlPoints.Length; i++) { mStepTime += mFishPath.controlPoints[i].mTime; if (mCurrentLife <= mStepTime) { mCurrentStep = i; break; } else { mCurrentStep = mFishPath.controlPoints.Length; if (i == mFishPath.controlPoints.Length - 1) { FishManager.GetInstance().RecycleFish(this); } } } if (mLastFrameStep != mCurrentStep) { int tmpStep = mLastFrameStep; float t1 = mLastFrameLife; while (true) { tmpStep = tmpStep + 1; if (tmpStep > mCurrentStep) { break; } float t2 = 0; for (int i = 0; i < tmpStep; i++) { t2 += mFishPath.controlPoints[i].mTime; } float dt1 = t2 - t1; t1 = t2; int cnt1 = Mathf.FloorToInt(dt1 / SECOND_ONE_FRAME); for (int i = 0; i < cnt1; i++) { CaculateTransform(tmpStep - 1, SECOND_ONE_FRAME); } CaculateTransform(tmpStep - 1, dt1 - SECOND_ONE_FRAME * cnt1); } float t3 = 0; for (int i = 0; i < mCurrentStep; i++) { t3 += mFishPath.controlPoints[i].mTime; } float dt2 = mCurrentLife - t3; int cnt2 = Mathf.FloorToInt(dt2 / SECOND_ONE_FRAME); for (int i = 0; i < cnt2; i++) { CaculateTransform(mCurrentStep, SECOND_ONE_FRAME); } CaculateTransform(mCurrentStep, dt2 - SECOND_ONE_FRAME * cnt2); mLastFrameStep = mCurrentStep; } else { int cnt1 = Mathf.FloorToInt(framedt / SECOND_ONE_FRAME); for (int i = 0; i < cnt1; i++) { CaculateTransform(mCurrentStep, SECOND_ONE_FRAME); } CaculateTransform(mCurrentStep, framedt - SECOND_ONE_FRAME * cnt1); } }