示例#1
0
    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
                );
        }
    }
示例#2
0
    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));
        }
    }