Пример #1
0
        public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
        {
            EditorGUI.BeginProperty(position, label, property);

            var rawProp = property.FindPropertyRelative("_serializedValue");

            FP fpValue = FP.FromRaw(rawProp.longValue);

            fpValue = EditorGUI.FloatField(position, label, (float)fpValue);

            rawProp.longValue = fpValue.RawValue;
            EditorUtility.SetDirty(rawProp.serializedObject.targetObject);

            EditorGUI.EndProperty();
        }
Пример #2
0
        public override void Deserialize(byte[] data, ref int offset)
        {
            byte numberOfActions = data[offset++];

            for (int i = 0; i < numberOfActions; i++)
            {
                byte key  = data[offset++];
                byte type = data[offset++];

                switch (type)
                {
                case (byte)Types.Integer:
                    int intValue = BitConverter.ToInt32(data, offset);
                    AddInt(key, intValue);
                    offset += sizeof(int);
                    break;

                case (byte)Types.Byte:
                    byte byteValue = data[offset++];
                    AddByte(key, byteValue);
                    break;

                case (byte)Types.ByteArray:
                    int byteArrayLen = BitConverter.ToInt32(data, offset);
                    offset += sizeof(int);

                    byte[] bArray = new byte[byteArrayLen];
                    for (int indexArray = 0; indexArray < byteArrayLen; indexArray++)
                    {
                        bArray[indexArray] = data[offset + indexArray];
                    }

                    offset += byteArrayLen;

                    AddByteArray(key, bArray);
                    break;

                case (byte)Types.String:
                    int strlen = BitConverter.ToInt32(data, offset);
                    offset += sizeof(int);
                    string stringValue = System.Text.Encoding.ASCII.GetString(data, offset, strlen);
                    offset += strlen;
                    AddString(key, stringValue);
                    break;

                case (byte)Types.FP:
                    FP fpValue = FP.FromRaw(BitConverter.ToInt64(data, offset));
                    AddFP(key, fpValue);
                    offset += sizeof(long);
                    break;

                case (byte)Types.FPVector:
                    FP fpValueX = FP.FromRaw(BitConverter.ToInt64(data, offset));
                    offset += sizeof(long);

                    FP fpValueY = FP.FromRaw(BitConverter.ToInt64(data, offset));
                    offset += sizeof(long);

                    FP fpValueZ = FP.FromRaw(BitConverter.ToInt64(data, offset));
                    offset += sizeof(long);

                    AddFPVector(key, new FPVector(fpValueX, fpValueY, fpValueZ));
                    break;

                case (byte)Types.FPVector2:
                    FP fpValueX2 = FP.FromRaw(BitConverter.ToInt64(data, offset));
                    offset += sizeof(long);

                    FP fpValueY2 = FP.FromRaw(BitConverter.ToInt64(data, offset));
                    offset += sizeof(long);

                    AddFPVector2(key, new FPVector2(fpValueX2, fpValueY2));
                    break;

                default:
                    //Not Implemented
                    break;
                }
            }
        }
Пример #3
0
 public FPVector ToFPVector()
 {
     return(new FPVector(FP.FromRaw(x), FP.FromRaw(y), FP.FromRaw(z)));
 }