// aim rotation slider; on value change; public void AimRotationSliderChanged() { moveAndAimScript.AimValueChangeBySliderOrInputField(true, false); }
// korutina za začetek nasljednjega igralca IEnumerator WaitThenStartNextPlayerTrun() { /// Waiting ... /// // timerja še ne odšteva timerIsCounting = false; // please wait sliko nastavi na active if (!img_SelectionImageGameObjects[0].activeInHierarchy) { img_SelectionImageGameObjects[0].SetActive(true); } // še na vseh clientih .. if (isServer) { // parameter true pomeni da smo [0] sliko aktivira RpcActivateWaitAndOtherImages(true); } // čakamo dokler je true ... ; na false se postavi ko izteče timer, ali ko se uniči iztrelek; Timer se ustavi ko ustrelimo, tako da ni komplikacij tukaj while (waitingForNextPlayer) { yield return(null); } /// start next tanks turn /// // določimo index naslednjega igralca int nextPlayerIndex = playerOnHisTurn + 1; // če je index večji ali enak številu vseh tankov, je na vrsti spet tank z indexom 0; if (nextPlayerIndex >= tanks.Length) { nextPlayerIndex = 0; } // nastavimo index igralca na vrsti playerOnHisTurn = nextPlayerIndex; // ta naj bi bil syncan tako da bi se moral takoj postaviti na vseh clientih (ampak mislim da se ne bo ker nismo v Cmd-ju - ne vem) // pošljemo ta index vsem tankom foreach (GameObject tank in tanks) { if (tank != null) { tank.GetComponent <TankMoveAndAim>().SetSelectedTank(playerOnHisTurn); } } // če je network sporoči še vsem clientom if (isServer) { RpcSetSelectedTank(playerOnHisTurn); } // aktiviramo vse slike z gumbi foreach (GameObject imageGO in img_SelectionImageGameObjects) { if (!imageGO.activeInHierarchy) { imageGO.SetActive(true); } } // če je network sporoči še vsem clientom if (isServer) { RpcActivateWaitAndOtherImages(false); } // poiščemo primerne skritpe na tankih fireScript = tanks[playerOnHisTurn].GetComponent <TankFire>(); moveAndAimScript = tanks[playerOnHisTurn].GetComponent <TankMoveAndAim>(); // če je network sporoči še vsem clientom if (isServer) { RpcFindTankScripts(playerOnHisTurn); } // konča premike; brez tega: če držiš tipko za premik ko se čas izteče se to shrani // in ko je spet na vrsti ta tank se premika čeprav ne držiš tipke za premik! MoveStop(); // deaktiviramo merjeneje z dotikom če je slučajno še aktivirano; to bi se zgodilo če se odšteje čas ko še merimo; TouchAimDeactivate(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////// //************************************************************************************************************** // tole še 1x poglej // mogoče je potreben Rpc //////////////////////////////////////////////////////////////////////////////////////////////////////////////// // nastavi sliderje in input fielde; just back check fireScript.FirePowerChangeBySliderOrInputField(false, false); moveAndAimScript.AimValueChangeBySliderOrInputField(false, false); if (!NetworkInfo.isNetworkMatch) { // izpiše kateri igralec je na vrsti playersTurnGameObject.GetComponent <Text>().text = "Player " + playerOnHisTurn + "!"; // aktivira sliko playersTurnGameObject.SetActive(true); // počaka #.#f sekund; ta čas je napis aktiven while (true) { yield return(new WaitForSeconds(1.5f)); break; } // ne rabimo slike ki pravi Please Wait; img_SelectionImageGameObjects[0].SetActive(false); // deaktiviramo napis; playersTurnGameObject.SetActive(false); } else if (NetworkInfo.isNetworkMatch && isServer) { // določi ime string nextPlayerName = "Player " + playerOnHisTurn + "!"; // izpiše na vseh clientih RpcPrintNextPlayer(nextPlayerName); // počaka #.#f sekund; ta čas je napis aktiven while (true) { yield return(new WaitForSeconds(1.5f)); break; } // deaktivira "Please Wait" sliko samo na primernem clientu in // deaktivira sliko z imenom za naslednjega igralca na vseh clientih RpcDeactivateWaitAndNextPlayerImage(playerOnHisTurn); } // nastavimo preostali čas na začetni čas roundTimeLeft = startRoundTime; // začnemo šteti timerIsCounting = true; yield return(null); }