// Use this for initialization void Start() { instance = this; DontDestroyOnLoad(gameObject); followPoint = transform; //screen size //get the screen's width sWidth = Screen.width; sHeight = Screen.height; //calculate the rescale ratio guiRatioX = sWidth / 1280; guiRatioY = sHeight / 720; //create a rescale Vector3 with the above ratio GUIsF = new Vector3(guiRatioX, guiRatioY, 1); //health bar teksturHealth = (Texture2D)Resources.Load("Health/HUD_health_04"); teksturHealth2 = (Texture2D)Resources.Load("Health/HUD_health_04"); teksturSkill = (Texture2D)Resources.Load("Health/HUD_health_04"); teksturSkill2 = (Texture2D)Resources.Load("Health/HUD_health_04"); healthBarLength = 1200; skillBarLength = 1200; }
// Update is called once per frame void FixedUpdate() { instance = this; if (MultiplayerManager.instance.isGameStarted) { float hor = 0f; float ver = 0f; if (Network.isServer) { // server side // do calculation for server's gasing (as a player) if (!MultiplayerManager.instance.isDedicatedServer) { if (!client_gasing.isInvicibleAfterClash) { if (Application.platform == RuntimePlatform.Android) { hor = Input.acceleration.x * Gasing.COEF_SPEED * client_gasing.speed; ver = Input.acceleration.y * Gasing.COEF_SPEED * client_gasing.speed; } else { hor = Input.GetAxis("Horizontal") * Gasing.COEF_SPEED * client_gasing.speed; ver = Input.GetAxis("Vertical") * Gasing.COEF_SPEED * client_gasing.speed; } Vector3 movement = new Vector3(hor, 0f, ver); server_addForce(Network.player, movement * 2000 * Time.deltaTime); } } //send update to all player for (int i = 0; i < MultiplayerManager.instance.serverSideGasings.Count; i++) { if (MultiplayerManager.instance.playerList[i].playerNetwork == Network.player) { if (MultiplayerManager.instance.serverSideGasings[i] != null) { if (MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>() != null) { client_gasing.speed = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>().speed; client_gasing.isOnGround = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>().isOnGround; client_gasing.isInvicibleAfterClash = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <PhysicsTabrak>().isInvicibleAfterClash; client_gasing.energiPoint = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>().energiPoint; } } } else { if (MultiplayerManager.instance.isAllPlayerReady) { if (MultiplayerManager.instance.serverSideGasings[i] != null) { if (MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>() != null) { float speed = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>().speed; bool isOnGround = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>().isOnGround; bool isInvicibleAfterClash = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <PhysicsTabrak>().isInvicibleAfterClash; float energiPoint = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>().energiPoint; float skillPoint = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>().skillPoint; float energiPointMax = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>().energiPointMax; float skillPointMax = MultiplayerManager.instance.serverSideGasings[i].GetComponentInChildren <Gasing>().skillPointMax; networkView.RPC("client_sendGasingUpdate", MultiplayerManager.instance.playerList[i].playerNetwork, speed, isOnGround, isInvicibleAfterClash, energiPoint, skillPoint, energiPointMax, skillPointMax); } } } } } } else { // client side // do calculation if (!client_gasing.isInvicibleAfterClash) { if (Application.platform == RuntimePlatform.Android) { hor = Input.acceleration.x * Gasing.COEF_SPEED * client_gasing.speed; ver = Input.acceleration.y * Gasing.COEF_SPEED * client_gasing.speed; } else { hor = Input.GetAxis("Horizontal") * Gasing.COEF_SPEED * client_gasing.speed; ver = Input.GetAxis("Vertical") * Gasing.COEF_SPEED * client_gasing.speed; } Vector3 movement = new Vector3(hor, 0f, ver); networkView.RPC("server_addForce", RPCMode.Server, Network.player, movement * 2000 * Time.deltaTime); } } } }