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
1
Question by sanamdehghan · Jan 07, 2012 at 10:17 AM · destroyclientdisconnect

Disconnecting from network doesn't destroy the player.

I am trying to make an online game. Everything seems OK but when a player disconnects from the server, it can't control its player anymore. However, its player stays there still. How can I destroy it? I tried Destroy(); , Destroy(GameObject); , Destroy(this) after disconnecting the player.However, none of them didn't work. (I have a button when the player clicks it disconnects the player. I want his player destroy exactly after that it disconnects from the server. How can I do it? Thanks

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

8 Replies

· Add your reply
  • Sort: 
avatar image
2

Answer by Bladesfist · Jan 07, 2012 at 03:38 PM

 void OnPlayerDisconnected(NetworkPlayer player)
     {
         Debug.Log("Clean up after player " + player);
         Network.RemoveRPCs(player);
         Network.DestroyPlayerObjects(player);
     }
Comment
Add comment · 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
2

Answer by FuzzyQuills · Sep 01, 2014 at 03:46 AM

Actually, try just doing this:

 function OnDisconnectedFromServer () {
 Destroy(gameObject);
 }

Stick this in the player prefab used to play the game.

EDIT: Corrected the function name. turns out I typed it wrong! ;)

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 hotozi · Nov 18, 2014 at 04:14 AM 0
Share

had the same problem this way its working just FINE!!

avatar image
1

Answer by sanamdehghan · Jan 07, 2012 at 11:39 AM

I copy what you wrote above, I control both of them.However, It didn't do anything. I still have that player.

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 asafsitner · Jan 07, 2012 at 01:15 PM 0
Share

Who spawns the player object? Network.Destroy(NetworkPlayer); destroys objects owned by that player, i.e. instantiated by that player over the network or objects that are explicitly set as owned by that player (via networkView.owner = somePlayer).

avatar image
1

Answer by sanamdehghan · Jan 07, 2012 at 11:39 AM

I copy what you wrote above, I control both of them.However, It didn't do anything. I still have that player.

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 proxyjan · Apr 15, 2014 at 11:32 AM 0
Share

Network.Destroy(PlayerObject.GetComponent().viewID);, it should work, for me works, but there is something else about my problem, when a player disconnects, it destroys on all other clients and server, but when a player join after that, he can see that disconnected player in the past, and the new player is Player 2, i only have player 0 and he comes with player 2, if player 2 disconnects, and a new player joins, he would be player 3, and is able to see player 1 and 2, who left earlier. YEAP, suckss, I'm a mess right now

avatar image
1

Answer by fafase · Jan 07, 2012 at 11:48 AM

Have a look there http://unity3d.com/support/documentation/ScriptReference/Network.DestroyPlayerObjects.html

That might be your solution.

Comment
Add comment · 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
  • 1
  • 2
  • ›

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

13 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

Related Questions

How to Destroy Game Object In All Clients in Photon Network 0 Answers

Error: "A client which was not in the connected player list disconnected. ???" 1 Answer

Error destroying player over network 1 Answer

Destroy its own instantiated objects when leaving server 1 Answer

using Contains(gameObject) to find and destroy a gameObject from a list 2 Answers


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