public void SetFrequency(float frequency) { var message = new Message(); message.command = "frequency"; message.argument = frequency; context.SendJson <Message>(message); }
private void Update() { if (attached) { transform.position = attached.transform.position; transform.rotation = attached.transform.rotation; } if (owner) { context.SendJson(new Message(transform, fired)); } if (owner && fired) { body.isKinematic = false; body.AddForce(transform.up * 0.75f, ForceMode.Force); if (!particles.isPlaying) { particles.Play(); body.AddForce(new Vector3(Random.value, Random.value, Random.value) * 1.1f, ForceMode.Force); } } if (!owner && fired) { if (!particles.isPlaying) { particles.Play(); } } }
private void Send<T>(string type, T args) { context.SendJson(new Message() { type = type, args = JsonUtility.ToJson(args) }); }
private void Send(string type, string args) { context.SendJson(new Message() { type = type, args = args }); }
public GameObject Spawn(GameObject gameObject) { var i = ResolveIndex(gameObject); var networkId = NetworkScene.GenerateUniqueId(); context.SendJson(new Message() { catalogueIndex = i, networkId = networkId }); return(Instantiate(i, networkId, true)); }
public void SpawnBasketball() { var ball = Instantiate(Prefab, transform).GetComponent <SimpleBasketball>(); ball.Id.Set(NetworkScene.GenerateUniqueId()); ball.owner = true; context.SendJson(new Message() { newNetworkObjectId = ball.Id }); }
private void FixedUpdate() { if (follow != null) { owner = true; rb.isKinematic = false; // TZY transform.position = follow.transform.position; transform.rotation = follow.transform.rotation; } // if a player throw the matrial and material stoped if (follow == null && rb.velocity == new Vector3(0, 0, 0) && rb.angularVelocity == new Vector3(0, 0, 0)) { //Debug.Log("The center is:" + center); //Debug.Log("I am here:" + this.gameObject.transform.localPosition); float dis = Mathf.Pow(center.x - transform.position.x, 2) + Mathf.Pow(center.y - transform.position.z, 2); dis = Mathf.Sqrt(dis); if (dis < activate_distance_threshold) { if (!is_set) { int index = gameController.current_piece_index; gameController.current_piece_index += 1; int floor_index = index / 5; int wall_index = index % 5; Debug.Log("The index is:" + index); if (wall_index <= 3) { transform.position = BasePosition + wall_bias[wall_index] + new Vector3(0, 2, 0) * floor_index; Debug.Log("The position has been set to:" + transform.position); transform.rotation = Quaternion.Euler(wall_angle[wall_index]); } GetComponent <Rigidbody>().useGravity = false; GetComponent <BoxCollider>().enabled = false; is_set = true; } } //Debug.Log("The distance:" + dis); } if (owner) { context.SendJson(new TransformMessage(transform)); } }
private void FixedUpdate() { if (follow != null) { owner = true; rb.isKinematic = false; } if (follow != null) { rb.AddForce(-rb.velocity, ForceMode.VelocityChange); rb.AddForce((follow.transform.position - rb.position) / Time.deltaTime, ForceMode.VelocityChange); } if (owner) { context.SendJson(new TransformMessage(transform)); } if (!follow && owner_id != null && rb.velocity == vel && rb.angularVelocity == vel) { Vector3 y = new Vector3(0, 1, 0); if (Vector3.Dot(rb.transform.forward, y) >= 0.9) { result = 3; } if (Vector3.Dot(rb.transform.right, y) >= 0.9) { result = 5; } if (Vector3.Dot(rb.transform.up, y) >= 0.9) { result = 1; } if (Vector3.Dot(rb.transform.forward, y) <= -0.9) { result = 4; } if (Vector3.Dot(rb.transform.right, y) <= -0.9) { result = 2; } if (Vector3.Dot(rb.transform.up, y) <= -0.9) { result = 6; } owner = false; } }
private void FixedUpdate() { if (follow != null) { owner = true; rb.isKinematic = false; } if (follow != null) { rb.AddForce(-rb.velocity, ForceMode.VelocityChange); rb.AddForce((follow.transform.position - rb.position) / Time.deltaTime, ForceMode.VelocityChange); } if (owner) { context.SendJson(new TransformMessage(transform)); } }
void Update() { // when update, check if the puzzle is finished bool isFinish = Instance.IsFinish(); // Updata position matrix and Update Correction Matrix in PuzzleManager Instance Instance.UpdatePosition(rectTransform.position, name); Instance.UpdateGridCorrection(); // sending msg if (owner) { content.SendJson(new Message(rectTransform.position)); } if (pre_not_owner) { owner = false; pre_not_owner = false; } }
// Update is called once per frame void Update() { // if the start button is pressed by me, I need to send the time to other all the time // Otherwise, just parse the time received in Update() if (isMePressStartButton) { content.SendJson(new Message(spendTime, distroyflag));//, puzzlespanwer.transform.position + new Vector3(0.0f, 1.2f, 0.0f))); if (startTime && !finishedflag) { UpdateTime(); } } else { ParseTime(spendTime); } if (distroyflag) { Destroy(ClosePanel); } }
private void AnimateHands() { if (avatar.IsLocal) { gripTargetLeft = GetHintNode(AvatarHints.NodeFloat.LeftHandGrip); gripTargetRight = GetHintNode(AvatarHints.NodeFloat.RightHandGrip); context.SendJson(new Message(gripTargetLeft, gripTargetRight)); // sent every frame currently...put into if() ? //Debug.Log("Anim: " + gripCurrent + " " + gripTarget); } if (gripCurrentLeft != gripTargetLeft) { gripCurrentLeft = Mathf.MoveTowards(gripCurrentLeft, gripTargetLeft, Time.deltaTime * speed); leftHandAnimator.SetFloat(animatorGripParam, gripCurrentLeft); } if (gripCurrentRight != gripTargetRight) { gripCurrentRight = Mathf.MoveTowards(gripCurrentRight, gripTargetRight, Time.deltaTime * speed); rightHandAnimator.SetFloat(animatorGripParam, gripCurrentRight); } }
public void Send(NetworkId sharedId, Message m) { context.SendJson(sharedId, m); }
public void ClickStartButton() { is_click = true; is_start = true; context.SendJson(new ClickMessage(is_click, is_start)); }
private void FixedUpdate() { //print("我当前正在看:" + "本地:" + current_piece_index + "Controller:" + gameController.current_piece_index); if (follow != null) { owner = true; // TZY if (current_piece_index > 2) { transform.position = follow.transform.position; } else // first 3 pieces are so high, so I add some y axis bias to make it easy to hold { transform.position = new Vector3(follow.transform.position.x, follow.transform.position.y + 1.5f, follow.transform.position.z); } transform.rotation = follow.transform.rotation; } if (follow == null) // TZY, only owner do this judgement. If not, if I drag the object to the nearby place, it will flash { if (owner == true && rb.velocity == new Vector3(0, 0, 0) && rb.angularVelocity == new Vector3(0, 0, 0)) { float dis = Mathf.Pow(centre.x - transform.position.x, 2) + Mathf.Pow(centre.z - transform.position.z, 2); dis = Mathf.Sqrt(dis); if (dis < activate_distance_threshold) { transform.position = blockPositions[current_piece_index]; transform.rotation = Quaternion.Euler(blockAngles[current_piece_index]); GetComponent <Rigidbody>().useGravity = false; GetComponent <BoxCollider>().enabled = false; context.SendJson(new TransformMessage(transform)); owner = false; // always sending, but only update when the receieving state is true // context.SendJson(new finishMessage(is_finished)); } } } // Dymatic check if is finshed by comparing the distance is 0 or not if (follow == null) { rb.isKinematic = false; //print("位置对比:" + transform.position.x + '=' + blockPositions[current_piece_index].x + ' ' + transform.position.z + '=' + blockPositions[current_piece_index].z); if (Mathf.Abs(transform.position.x - blockPositions[current_piece_index].x) < 0.3 && (transform.position.z - blockPositions[current_piece_index].z) < 0.3 && transform.rotation == Quaternion.Euler(blockAngles[current_piece_index])) { rb.isKinematic = true; centerComponent.GetComponent <MeshRenderer>().enabled = false; GetComponent <Rigidbody>().useGravity = false; GetComponent <BoxCollider>().enabled = false; } } if (owner) { context.SendJson(new TransformMessage(transform)); } }