Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 LK84 · Jan 04, 2017 at 09:25 PM · networkingrpcjointsclient-server

Server controlled Joint in UNET

Hi, I have this little multiplayer test game where players can shoot off each others hat (s. picture). The Hat has a Rigidbody Component and is attached to the Capsule through a Hinge Joint. My goal is to fully let the server decide (it's a game with a host and no dedicated server) about when the joint is breaking and the hat falls off. Therefore I've written the following script:

 public class NetworkPlayer : NetworkBehaviour {
 
     HingeJoint thisJoint;
 
     public override void OnStartLocalPlayer()
     {
         base.OnStartLocalPlayer();
         gameObject.FindComponentInChildWithTag<MeshRenderer>("Body").material.color = Color.blue;
         
     }
     public override void OnStartClient()
     {
         base.OnStartClient();
         if (!isServer)
         {
             thisJoint = GetComponentInChildren<HingeJoint>();
             thisJoint.breakForce = Mathf.Infinity;
             gameObject.FindComponentInChildWithTag<Rigidbody>("Hat").isKinematic = true;//Extension method which works 100%
         }
     }
 
     public override void OnStartServer()
     {
         base.OnStartServer();
         thisJoint=GetComponentInChildren<HingeJoint>();
         thisJoint.breakForce =10;
     }
 
     
     pulic void JointBreak() //gets called from the OnJointBreak(float breakforce) method from the Hat Children object
     {
         if(isServer)
             RpcDestroyJoint(gameObject);
     }
 
     [ClientRpc]
     void RpcDestroyJoint((GameObject NetworkGO)
     {
         Destroy(NetworkGO.GetComponentInChildren<HingeJoint>());
     }
 
     //....more shooting methods which are not relevant to the problem
 }

Only on the server the joints are breakable. If the joint breaks I intend to let the server send a ClientRPC to all Clients to Destroy the Joint. All Players have NetworkTransform as well as NetworkTransformChild for the Hat (s. picture). If I shoot the server hats it is syncronized on both game instances. The other way around, if I shoot the clients hat only on the server game instance you can see the hat fall of (for some reason the HingeJoint didn't get destroyed on the client game instance). The Players were autospawned by the NetworkManager.alt text

inspectorscreenshot.jpg (83.1 kB)
hatshoot.jpg (22.8 kB)
Comment
Add comment · Show 1
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 LK84 · Jan 04, 2017 at 10:57 PM 0
Share

Ok, by deleting the statement gameObject.FindComponentInChildWithTag<Rigidbody>("Hat").is$$anonymous$$inematic = true; I managed to let the hat fall. I think because the the Parent GameObject had localplayerauthority. Still not looking perfect. I'm gonna look at it tomorrow.

0 Replies

· Add your reply
  • Sort: 

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

84 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

A nontrivial question: Call server procedure by wamp protocol 0 Answers

Rpc Can't be called on client - Problem with client, works on server 1 Answer

Changing variable value Network 1 Answer

How to fix "ClientRpc call on un-spawned object" error, using UNET 2 Answers

Standard ClientRPC not called on client 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