- Home /
Question by
vanreus · Jan 08, 2017 at 09:23 AM ·
unity 5networkingnetworkshooting
Unity Network Laggy projectile
How can i solve this problem ? Problem Here (Video)
Calling Part;
if (isLocalPlayer)
{
if (!shoot_c)
{
if (fireRate <= 0f)
{
if (Input.GetButtonDown("Fire1") && Time.time > nextFire)
{
nextFire = Time.time + fireRate;
if (!boom)
{
if (!isServer)
CmdFire();
if (isServer)
RpcFire();
}
else
{
if (!isServer)
CmdFuze();
if (isServer)
RpcFuze();
}
if (!isServer)
{
CmdEffect();
}
if (isServer)
{
RpcEffect();
x = 0;
}
}
else if (Input.GetButtonUp("Fire1"))
{
// shoot_c = true;
// StartCoroutine(weaponwait(3));
}
}
else
{
if (Input.GetButtonDown("Fire1") && Time.time > nextFire)
{
nextFire = Time.time + 1f / fireRate;
if (!boom)
{
if (!isServer)
{
InvokeRepeating("RpcEffect", 0f, 1f / fireRate);
InvokeRepeating("RpcFire", 0f, 1f / fireRate);
}
if (isServer)
{
InvokeRepeating("CmdEffect", 0f, 1f / fireRate);
InvokeRepeating("CmdFire", 0f, 1f / fireRate);
}
}
else {
if (!isServer)
{
InvokeRepeating("RpcEffect", 0f, 1f / fireRate);
InvokeRepeating("RpcFuze", 0f, 1f / fireRate);
}
if (isServer)
{
InvokeRepeating("CmdEffect", 0f, 1f / fireRate);
InvokeRepeating("CmdFuze", 0f, 1f / fireRate);
}
}
}
else if (Input.GetButtonUp("Fire1"))
{
if (!boom)
{
if (!isServer)
{
CancelInvoke("RpcEffect");
CancelInvoke("RpcFire");
}
if (isServer)
{
CancelInvoke("CmdEffect");
CancelInvoke("CmdFire");
}
}
else
{
if (!isServer)
{
CancelInvoke("RpcEffect");
CancelInvoke("RpcFuze");
}
if (isServer)
{
CancelInvoke("CmdEffect");
CancelInvoke("CmdFuze");
}
}
// shoot_c = true;
// StartCoroutine(weaponwait(fireRate));
}
}
}
And Shooting Part:
[ClientRpc]
void RpcFire()
{
CmdFire();
}
[ClientRpc]
void RpcFuze()
{
CmdFuze();
}
[Command]
void CmdFire()
{
if (mermi > 0)
{
if (!boom)
{
if(this.gameObject.GetComponent<CharacterMovement>().speed == -2)
{
}
GameObject Mermi = (GameObject)Instantiate(bullet, new Vector3(mz[muzzleloc].transform.position.x , mz_client[muzzleloc].transform.position.y, 0), mz_client[muzzleloc].transform.rotation);
Mermi.GetComponent<Mermi>().hasar = hasarito;
Mermi.GetComponent<Mermi>().owner_name = this.gameObject.name;
Mermi.GetComponent<Mermi>().bulletspeed = bspeed;
NetworkServer.SpawnWithClientAuthority(Mermi, connectionToClient);
if (pompi)
{
Destroy(Mermi, 0.5f);
}
}
mermi -= 1;
}
}
[Command]
void CmdFuze()
{
if(x == 0)
{
if (mermi > 0)
{
if (boom)
{
GameObject Mermi3 = (GameObject)Instantiate(füze, new Vector3(mz[muzzleloc].transform.position.x, mz[muzzleloc].transform.position.y, 0), mz[muzzleloc].transform.rotation);
Mermi3.GetComponent<BoomBitch>().hasar = hasarito;
NetworkServer.Spawn(Mermi3);
}
mermi -= 1;
}
}
else
{
if (mermi > 0)
{
if (boom)
{
GameObject Mermi3 = (GameObject)Instantiate(füze, new Vector3(mz_client[muzzleloc].transform.position.x, mz_client[muzzleloc].transform.position.y, 0), mz_client[muzzleloc].transform.rotation);
Mermi3.GetComponent<BoomBitch>().hasar = hasarito;
NetworkServer.Spawn(Mermi3);
}
mermi -= 1;
}
}
}
Comment
Your answer
Follow this Question
Related Questions
UNet NetworkServer max connections 4 Answers
Can i Call Additive Scene On Network 1 Answer
Unity Mirror Network Discovery Stop Joining 0 Answers
Multiplayer Object spawned by client does not show up on host 1 Answer
Unity network perfomance 0 Answers