void Update()
    {
        StringBuilder stringBuilder = new StringBuilder();
        var           current       = gyro.attitude;

        controllerStatus.quaternion = QuaternionSerializable.FromQuaternion(current);
        CheckTrackpad();

        stringBuilder.AppendFormat("Attitude: {0}\nTrigger: {1}\nTrackButton: {2}\nExtra1: {3}\nExtra2: {4}\nExtra3: {5}\nTrackpad: {6}\nTrackpadTouched: {7}\nConnected: {8}", current, controllerStatus.trigger, controllerStatus.trackpadButton, controllerStatus.extra1, controllerStatus.extra2, controllerStatus.extra3, controllerStatus.trackpad.ToVector2(), controllerStatus.trackpadTouched, connectedCant);
        text.text = stringBuilder.ToString();

        if (!IsConnected)
        {
            return;
        }

        byte[]          buffer    = new byte[1024];
        Stream          stream    = new MemoryStream(buffer);
        BinaryFormatter formatter = new BinaryFormatter();


        formatter.Serialize(stream, controllerStatus);
        int bufferSize = 1024;

        networkController.SendMessage(buffer, bufferSize);
    }
    public static void SaveArItem(Transform arItem)
    {
        // Convert the AR item's Unity data into serializable format that can be saved

        ArItemData arItemData = new ArItemData();

        arItemData.ItemType = (int)arItem.GetComponent <ArItem>().ItemType;

        QuaternionSerializable newQuat = new QuaternionSerializable();

        newQuat.Fill(arItem.rotation);
        arItemData.Orientation = newQuat;

        var             rawGpsPos = XRSessionManager.GetSession().LocalPositionToGps(arItem.position);
        GpsSerializable gpsPos    = new GpsSerializable();

        gpsPos.Height     = rawGpsPos.Height;
        gpsPos.Latitude   = rawGpsPos.Latitude;
        gpsPos.Longitude  = rawGpsPos.Longitude;
        arItemData.GpsPos = gpsPos;

        // Create (almost) unique ID for this AR item
        string itemId = arItem.GetInstanceID().ToString() + "." + rawGpsPos.Latitude.ToString() + "." + rawGpsPos.Longitude.ToString();

        arItemData.Id = itemId;
        arItem.GetComponent <ArItem> ().Id = itemId;

        Debug.Log("Added AR item to save data");
        ArItemList.Add(arItemData);
        Save();
    }
 public GameObjectSerializable(PersistedGameObject _go)
 {
     Position = new Vector3Serializable(_go.Position);
     Rotation = new QuaternionSerializable(_go.Rotation);
     Scale    = new Vector3Serializable(_go.Scale);
     Enabled  = _go.Enabled;
 }
        public static void AddQuaternion(this SerializationInfo info, string name, QuaternionSerializable v)
        {
            if (info is null)
            {
                throw new ArgumentNullException(nameof(info));
            }

            info.AddValue(name, v);
        }
Esempio n. 5
0
    static public QuaternionSerializable CreateQuaternionSerializable(Quaternion q)
    {
        QuaternionSerializable save = new QuaternionSerializable
        {
            x = q.x,
            y = q.y,
            z = q.z,
            w = q.w
        };

        return(save);
    }
Esempio n. 6
0
    public static MagicCubeSaveData CreateSaveData(MagicCubeManager manager)
    {
        MagicCubeSaveData savedata = new MagicCubeSaveData();

        //deep copies to be safe.
        foreach (var cubeTile in manager.GetCubeTileListReference())
        {
            savedata.positions.Add(Vector3Serializable.CreateVector3Serializable(cubeTile.transform.position));
            savedata.rotations.Add(QuaternionSerializable.CreateQuaternionSerializable(cubeTile.transform.rotation));
            savedata.cubeTileIDs.Add(cubeTile.GetComponent <CubeTileInfo>().GetID());
        }
        foreach (var action in manager.GetUndoListReference())
        {
            savedata.undoActions.Add(ActionSaveData.CreateSaveData(action));
        }

        savedata.magicCubeSize = manager.GetMagicCubeSize();
        savedata.time          = manager.GetTimePassed();

        return(savedata);
    }
Esempio n. 7
0
 public TransformSerializable(Transform t)
 {
     position = new Vector3Serializable(t.localPosition);
     rotation = new QuaternionSerializable(t.localRotation);
     scale = new Vector3Serializable(t.localScale);
 }
Esempio n. 8
0
 public BezierSplinePointSerializable(BezierSplinePoint other)
 {
     this.position     = other.position;
     this.rotation     = other.rotation;
     this.controlPoint = other.controlPoint;
 }