Advertisement
nbannister

Unity SerializableDecimal

Oct 8th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.74 KB | None | 0 0
  1. using UnityEngine;
  2.  
  3. [System.Serializable]
  4. public class SerializableDecimal : ISerializationCallbackReceiver {
  5.     public decimal value;
  6.     [SerializeField]
  7.     private int [] data;
  8.  
  9.     public static implicit operator decimal (SerializableDecimal d) {
  10.         return d.value;
  11.     }
  12.  
  13.     public static implicit operator SerializableDecimal (decimal d) {
  14.         return new SerializableDecimal (d);
  15.     }
  16.  
  17.     public SerializableDecimal (decimal decimalValue) {
  18.         value = decimalValue;
  19.     }
  20.  
  21.     public void OnBeforeSerialize () {
  22.         data = decimal.GetBits (value);
  23.     }
  24.     public void OnAfterDeserialize () {
  25.         if (data != null && data.Length == 4) {
  26.             value = new decimal (data);
  27.         }
  28.     }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement