public void GroundUpdate(Packet packet) { lastMessage = (Message_ShipUpdate)((PacketSingle)packet).message; if (lastMessage.UID != networkUID) { return; } targetPositionGlobal = lastMessage.position + lastMessage.velocity.toVector3 * Networker.pingToHost; targetVelocity = lastMessage.velocity.toVector3; //targetRotation = lastMessage.rotation; //targetRotation = targetRotation.normalized; //could not get the rotation to work for whatever reason, so ground moves face their velocity vector //Debug.Log("Ground reciever rotation is: " + lastMessage.rotation.ToString()); if ((VTMapManager.GlobalToWorldPoint(lastMessage.position) - groundUnitMover.transform.position).magnitude > 100) { Debug.Log("Ground mover is too far, teleporting."); groundUnitMover.transform.position = VTMapManager.GlobalToWorldPoint(lastMessage.position); Quaternion qs = lastMessage.rotation; qs = qs.normalized; groundUnitMover.transform.rotation = qs; smoothedPosition = lastMessage.position; if (targetVelocity.sqrMagnitude > 1) { smoothedRotation = Quaternion.LookRotation(targetVelocity); } //smoothedRotation = lastMessage.rotation; //smoothedRotation = smoothedRotation.normalized; } }
private void Awake() { lastMessage = new Message_ShipUpdate(new Vector3D(), new Quaternion(), new Vector3D(), networkUID); Networker.ShipUpdate += ShipUpdate; ship = GetComponent <ShipMover>(); ship.enabled = false; shipTraverse = Traverse.Create(ship); }
private void Awake() { lastMessage = new Message_ShipUpdate(new Vector3D(), new Quaternion(), new Vector3D(), networkUID); Networker.ShipUpdate += ShipUpdate; waypoint = new Waypoint(); GameObject wptTransform = new GameObject(); waypoint.SetTransform(wptTransform.transform); ship = GetComponent <ShipMover>(); ship.enabled = false; }
private void Awake() { lastMessage = new Message_ShipUpdate(new Vector3D(), new Quaternion(), new Vector3D(), networkUID);//it uses ship update, cause the information really isnt all that different Networker.ShipUpdate += GroundUpdate; groundUnitMover = GetComponent <GroundUnitMover>(); soldier = GetComponentInChildren <SoldierAnimator>(); groundUnitMover.enabled = false; rb = GetComponent <Rigidbody>(); if (soldier != null) { Debug.Log("uwu, i am a soldier!"); soldier.enabled = false; isSoldier = true; } //groundTraverse = Traverse.Create(groundUnitMover); }
public void ShipUpdate(Packet packet) { lastMessage = (Message_ShipUpdate)((PacketSingle)packet).message; if (lastMessage.UID != networkUID) { return; } targetPositionGlobal = lastMessage.position.toVector3 + lastMessage.velocity.toVector3 * Networker.pingToHost; targetVelocity = lastMessage.velocity.toVector3; targetRotation = lastMessage.rotation; if ((VTMapManager.GlobalToWorldPoint(lastMessage.position) - ship.transform.position).magnitude > 100) { Debug.Log("Ship is too far, teleporting. This message should apear once per ship at spawn, if ur seeing more something is probably fucky"); ship.transform.position = VTMapManager.GlobalToWorldPoint(lastMessage.position); } }
private void Awake() { lastMessage = new Message_ShipUpdate(new Vector3D(), new Quaternion(), new Vector3D(), networkUID); ship = GetComponent <ShipMover>(); }
private void Awake() { lastMessage = new Message_ShipUpdate(new Vector3D(), new Quaternion(), new Vector3D(), networkUID);//it uses ship update, cause the information really isnt all that different groundUnitMover = GetComponent <GroundUnitMover>(); }