- Home /
Same collider on server behaving different for each client?
Well, I'm having a simple multiplayer game where 2 players can connect and play on a simple level filled with some platforms where the players can jump on.
My problem is that my platform colliders are coded like this:
void Update () {
if (GetComponent<Renderer>().isVisible)
{
if (transform.position.y > GameObject.Find("Player(Clone)").transform.position.y)
{
(gameObject.GetComponent(typeof(Collider)) as Collider).isTrigger = true;
}
else if ((transform.position.y + 0.5f) < GameObject.Find("Player(Clone)").transform.position.y)
{
(gameObject.GetComponent(typeof(Collider)) as Collider).isTrigger = false;
}
}
}
So, this code will detect if the player Y position is lower or higher than the platform's position and will activate/deactivate (turn to "is Trigger") the box collider based on this logic. If the player is under the platform, the collider is a trigger, if the player is over the platform the collider is collider.
This works pretty fine on a single player mode, now, the problem is that I instantiate this platforms on the server and the server of course spawns this platforms on each client. What happens now is that when one of the players jumps over a platform, the other can't jump through that platforms anymore as the platforms have their colliders active because of the first player being over them.
Is there any way I can accomplish this, keeping the platforms instantiated on the server. I need it to work like this because I need to be able to destroy platforms and they should be the same on both clients. So it should be the same platform and when I "destroy" it in gameplay it should disappear logically for both clients.
So, how could a I have the same collider on the server behaving different for each client?
Answer by Datapax · Jan 08, 2017 at 08:19 PM
Well, I ended up adding two colliders each one on a different layer, also I add each player on a different layer and like this I can ignore the colliders that I don't wish to collide with based on the layers.
Your answer