Call another instance/player's method

The whole answer can be found below.

Please note: The Photon forum is closed permanently. After many dedicated years of service we have made the decision to retire our forum and switch to read-only: we've saved the best to last! And we offer you support through these channels:

Try Our
Documentation

Please check if you can find an answer in our extensive documentation on PUN.

Join Us
on Discord

Meet and talk to our staff and the entire Photon-Community via Discord.

Read More on
Stack Overflow

Find more information on Stack Overflow (for Circle members only).

Write Us
an E-Mail

Feel free to send your question directly to our developers.

Call another instance/player's method

Vukky
2020-03-02 02:02:55

Hello guys, this will be a noob question, sorry about that.
So, i'm actually making a car arena/derby game, the cars/players should damage each other on collision, based on velocity. When a collision happens i call the colliding objects method and damage it with my velocity, the problem that this only affect the other player's HP locally, but from it's view we don't change it's HP, is there a proper way to do it?

My code:

Where carPhysics is the name of the script which i attached to the Car prefab, and when 2 Car collides.

Comments

cranemountaingaming
2020-03-23 01:33:34

Make sure your class that contains OnPhotonSerializeview inherits from IPunObservable like so:

And make your class observable by adding the following in Start():

I'm a novice, so I might have misunderstood your question. Or it's possible you have already done all this and just didn't show those segments. But, it looks to me like you're doing it correctly, so I thought maybe it's the setup and not the execution that is not quite correct.

Vukky
2020-03-23 12:40:12

Thank you for your reply!
I figured out the solution, so i share it:

If you would like to do something with another player's object (in my case damage the other player's car), you should call an RPC, and say that object that hey, you need to decrease your health because I hit you!
The RPC( Remote Procedure Call) spreads over the network, and if someone's PhotonView ViewID equal with the searched PhotonViewID,which i pass as parameter, it decreases it's heath.

My Script:

This code maybe looks dirty, but it works, if you know how to do it better, please don't keep it for yourself!
Ps : Be aware, that this script works as a client side verfied thing, which is don't the best thing, due to cheating may happen.

Back to top