private void MultiplayerSpawnEnemy(int id, EnemyBehavior behavior) { if (behavior == null) { return; } Transform enemyTransform = behavior.transform; Rigidbody2D rigidbody = behavior.GetComponent <Rigidbody2D>(); using (RTData data = RTData.Get()) { Vector2 pos = enemyTransform.position; Signs posSign = SignsExt.GetSign(pos); Vector2 vel = rigidbody.velocity; Signs velSign = SignsExt.GetSign(vel); data.SetInt(1, id); data.SetVector2(3, pos); data.SetInt(4, (int)posSign); data.SetFloat(5, enemyTransform.rotation.eulerAngles.z); data.SetVector2(6, vel); data.SetInt(7, (int)velSign); gameSparksManager.RTSession.SendData( MultiplayerCodes.ENEMY_SPAWN.Int(), GameSparksRT.DeliveryIntent.RELIABLE, data ); } }
IEnumerator SendTransformUpdates() { // To be safe if (!_transform) { _transform = transform; } if (!_rigidbody) { _rigidbody = GetComponent <Rigidbody2D>(); } while (true) { using (RTData data = RTData.Get()) { Vector3 pos = _transform.position; Vector2 vel = _rigidbody.velocity; data.SetVector3(1, pos); Signs posSign = SignsExt.GetSign(pos); data.SetInt(2, (int)posSign); data.SetFloat(3, _transform.eulerAngles.z); data.SetVector2(4, vel); data.SetInt(5, (int)SignsExt.GetSign(vel)); _gameSparksManager.RTSession.SendData( MultiplayerCodes.PLAYER_POSITION.Int(), GameSparksRT.DeliveryIntent.UNRELIABLE_SEQUENCED, data ); } yield return(new WaitForSeconds(UpdateRate)); } }