• 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 CreatuRe64 · Feb 17, 2018 at 08:16 PM · networkinglocalscale

Please Help!!! Sync LocalScale of NonPlayerObject across all Clients

Hi,

You guys are my last best hope.

I am pulling my hair out trying to solve what I thought would be a simple problem.

I have setup a simple networked scene where I NetworkServerSpawn two Sphere's at a random position into the game world.

I then proceed to reduce the transform.localscale of one of the sphere's.

I then build & run two seperate windows of the game (one in host mode and the other in client)

Here is my problem:

 The transform.localscale of the sphere that I am reducing only reduces on the host - see pic below (in other words the transform.localscale is not being synced to the clients)
 I know that my SpawnSpheres() function is working correctly as the spheres spawn in the correct random position on both host & client which is great.
 I have tried every combination on [SyncVar], [SyncVar](Hook" "), [ClientRpc] and [Command] i can think of but nothing ever works.
 As a side note the NetworkTransform component works perfectly if I move one of the spheres around , it will update its position accordingly on the corresponding host/client it is only the transform.localscale that I can seem to sync

alt text

alt text

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.Networking;
 
 public class SphereManager : NetworkBehaviour
 
 {
 
     public GameObject sphere1;
     public GameObject sphere2;
 
     private GameObject sphere1_Instance;
     private GameObject sphere2_Instance;
 
     private float reduceFactor = 15f;
     
     private Vector3 syncScale;
 
     // Use this for initialization
     void Start ()
 
     {
         SpawnSpheres();
     }
 
     void UpdateScale(Vector3 newLocalScale)
     {
         CmdSyncLocalScale(newLocalScale);
         Debug.Log(newLocalScale);
     }
 
     [Command]
     void CmdSyncLocalScale(Vector3 newLocalScale)
     {
         sphere1_Instance.transform.localScale = newLocalScale;
         // Now from the server, tell all clients to update local scale
         RpcSyncLocalScale(newLocalScale);
     }
 
     void SpawnSpheres()
 
     {
         if (isServer)
         {
             sphere1_Instance = (GameObject)Instantiate(sphere1, new Vector3(0.0f, 10.0f, Random.Range(-20.0f, 20.0f)), transform.rotation);
             sphere2_Instance = (GameObject)Instantiate(sphere2, new Vector3(0.0f, 10.0f, Random.Range(-20.0f, 20.0f)), transform.rotation);
 
             NetworkServer.Spawn(sphere1_Instance);
             NetworkServer.Spawn(sphere2_Instance);
         }
     }
 
     void ReduceSpheres()
 
     {
         if (isServer)
         {
             if (sphere1_Instance.transform.localScale.x > sphere2_Instance.transform.localScale.x)
             {
                 sphere1_Instance.transform.localScale -= new Vector3(0.1F, 0.1f, 0.1f) * reduceFactor * Time.deltaTime;
                 syncScale = sphere1_Instance.transform.localScale;
                 //Debug.Log(syncScale);
             }
         }
     }
 
     [ClientRpc]
 
     void RpcSyncLocalScale(Vector3 newLocalScale)
     {
         sphere1_Instance.transform.localScale = newLocalScale;
     }
 
     // Update is called once per frame
     void Update ()
 
     {
         ReduceSpheres();
         UpdateScale(syncScale);
     }
 }
 


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

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

109 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 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

Photon Networking: LocalScale transform doesn't work 1 Answer

Unity networking tutorial? 6 Answers

Syncing localScale 0 Answers

Network Tutorial Interpolation - TPS Auth 0 Answers

Unity PhotonNetwork globally enable a component 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