示例#1
0
    public static void receiveObject(byte[] data, out IdentityAndTransform iat)
    {
        ByteReceiver br          = new ByteReceiver(data);
        var          objectID    = br.getInt();
        int          authorityID = br.getInt();
        var          type        = (ObjectType)br.getInt();
        var          prefabIndex = br.getInt();
        var          pos         = br.getVector3();
        var          rot         = br.getQuaternion();

        iat = NetTransportManager.instance.spawnObjectSync(prefabIndex, authorityID, pos, rot, objectID);
        switch (type)
        {
        case ObjectType.Planet:
            var mass   = br.getFloat();
            var linVel = br.getVector3();
            var angVel = br.getVector3();
            var seed   = br.getInt();
            var radius = br.getFloat();
            UniverseManager.instance.syncPlanet(iat, mass, linVel, angVel, seed, radius);
            break;

        case ObjectType.Rigidbody:
            var massR   = br.getFloat();
            var linVelR = br.getVector3();
            var angVelR = br.getVector3();
            makeRigidBody(iat.instance, massR, linVelR, angVelR);
            break;
        }
    }
示例#2
0
 public void receiveTransform(ByteReceiver br)
 {
     bool[] boolA = br.getBoolArray();
     if (boolA [7])
     {
         moveTo(br.getVector3());
     }
     if (boolA [6])
     {
         rotateTo(br.getQuaternion());
     }
     if (boolA [5])
     {
         trans.localScale = br.getVector3();
     }
 }