Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by unitydev0008 · Feb 09, 2011 at 02:05 AM · networkingrpcnetworkview

RPCMode.All Question

Hey guys im trying to understand Unitys built in networking via the old M2H Networking Tutorial Example 4 which is a FPS multiplayer example. I feel that i know the flow of the code. However the following code is kind of throwing me off:

Code from the Pickup Script var playersNetworkView : NetworkView = object.GetComponent(NetworkView);

if(pickedUp=="hp"){
    var newHP=playerScript.hp+50;
    if(newHP>100){
        newHP=100;
    }
    playersNetworkView.RPC("setHP",RPCMode.All, newHP); 

And here is the code on the playerscript


@RPC
function setHP(newHP : int){
    hp=newHP;
}

now my question lies in the playersNetworkView.RPC("setHP",RPCMode.All, newHP); line of code.

Since it is using RPCMode.All doesnt that mean each playerscript will update their health when one player picks up the pickup? or does the reference to that players network view mean it will only execute the function on that player?

If someone could be so kind as to explain to me how this works i would greatly appreciate it as i was feeling confident with how RPC works until this =P

Thank you for your time and any additional info that may be needed i will post if requested, again this is from example 4 of the M2H Networking Tutorial.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
2
Best Answer

Answer by PrimeDerektive · Feb 09, 2011 at 02:57 AM

What's happening is when this particular player picks up a health pickup, he needs to send a message to all other players that his health increased (hence the RPCMode.All).

The NetworkView part is what is specifying what object to call the function on across the network. It's not calling it on all objects that have this function, its only calling it on all instances of this particular object across the network.

Comment
Add comment · Show 1 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image unitydev0008 · Feb 09, 2011 at 11:28 PM 0
Share

Thanks Derek for clearing that up, it makes alot of sense now. For some reason i was thinking RPC$$anonymous$$ode.All meant everyone do it but i see what you mean that this particular gameobject will execute this function on each client. So if this wasnt the case it would simply update the local players health and to everyone else in the game that player would still be at say for example 50 health even...thanks again =D

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

No one has followed this question yet.

Related Questions

Get NetworkPlayer from ViewID 1 Answer

Networking: RPC To Specific Player? 1 Answer

networkView not called on Child objects? 0 Answers

Couldn't invoke RPC to server after Network.Destroy 0 Answers

NetworkView conflicts between Levels 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges