// Start is called before the first frame update void Start() { int iball = 0; // Generate free balls for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 4; j++) { freeBallObjs[iball] = Instantiate(BallPrefab, new Vector3(-2 * i, 1, -2 * j), Quaternion.identity); freeBallTrs[iball] = freeBallObjs[iball].GetComponent <Transform>(); iball++; freeBallObjs[iball] = Instantiate(BallPrefab, new Vector3(2 * i, 1, -2 * j), Quaternion.identity); freeBallTrs[iball] = freeBallObjs[iball].GetComponent <Transform>(); iball++; freeBallObjs[iball] = Instantiate(BallPrefab, new Vector3(-2 * i, 1, 2 * j), Quaternion.identity); freeBallTrs[iball] = freeBallObjs[iball].GetComponent <Transform>(); iball++; freeBallObjs[iball] = Instantiate(BallPrefab, new Vector3(2 * i, 1, 2 * j), Quaternion.identity); freeBallTrs[iball] = freeBallObjs[iball].GetComponent <Transform>(); iball++; } } // Get balls for (int i = 0; i < 3; i++) { ballObjs[i] = GameObject.Find("Ball" + i); ballTrs[i] = ballObjs[i].GetComponent <Transform>(); } // Init server or client if (IsServer) { //Destroy(GameObject.Find("Main Camera")); //Destroy(ballObj.GetComponent<MeshRenderer>()); for (int i = 0; i < 3; i++) { ballRbs[i] = ballObjs[i].GetComponent <Rigidbody>(); } for (int i = 0; i < 64; i++) { freeBallRbs[i] = freeBallObjs[i].GetComponent <Rigidbody>(); } server = new ServerNetwork <SyncDataToServer, SyncDataToClient>(); server.Start(10000); } else { for (int i = 0; i < 3; i++) { Destroy(ballObjs[i].GetComponent <Rigidbody>()); Destroy(ballObjs[i].GetComponent <SphereCollider>()); } for (int i = 0; i < 64; i++) { Destroy(freeBallObjs[i].GetComponent <Rigidbody>()); Destroy(freeBallObjs[i].GetComponent <SphereCollider>()); } client = new ClientNetwork <SyncDataToServer, SyncDataToClient>(); client.Start(Ip, 10000); } }