Advertisement
Pro_Unit

InspectableReactiveProperty.cs

Oct 6th, 2022 (edited)
847
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.29 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. using UniRx.InternalUtil;
  5.  
  6. using UnityEngine;
  7.  
  8. namespace UniRx
  9. {
  10.     /// <summary>
  11.     /// Inspectable ReactiveProperty.
  12.     /// </summary>
  13.     [Serializable]
  14.     public class IntReactiveProperty : ReactiveProperty<int>
  15.     {
  16.         public IntReactiveProperty() : base() { }
  17.  
  18.         public IntReactiveProperty(int initialValue) : base(initialValue) { }
  19.  
  20.         public static implicit operator int(IntReactiveProperty property) => property.Value;
  21.     }
  22.  
  23.     /// <summary>
  24.     /// Inspectable ReactiveProperty.
  25.     /// </summary>
  26.     [Serializable]
  27.     public class LongReactiveProperty : ReactiveProperty<long>
  28.     {
  29.         public LongReactiveProperty() : base() { }
  30.  
  31.         public LongReactiveProperty(long initialValue) : base(initialValue) { }
  32.         public static implicit operator long(LongReactiveProperty property) => property.Value;
  33.     }
  34.  
  35.     /// <summary>
  36.     /// Inspectable ReactiveProperty.
  37.     /// </summary>
  38.     [Serializable]
  39.     public class ByteReactiveProperty : ReactiveProperty<byte>
  40.     {
  41.         public ByteReactiveProperty() : base() { }
  42.  
  43.         public ByteReactiveProperty(byte initialValue) : base(initialValue) { }
  44.         public static implicit operator byte(ByteReactiveProperty property) => property.Value;
  45.     }
  46.  
  47.     /// <summary>
  48.     /// Inspectable ReactiveProperty.
  49.     /// </summary>
  50.     [Serializable]
  51.     public class FloatReactiveProperty : ReactiveProperty<float>
  52.     {
  53.         public FloatReactiveProperty() : base() { }
  54.  
  55.         public FloatReactiveProperty(float initialValue) : base(initialValue) { }
  56.         public static implicit operator float(FloatReactiveProperty property) => property.Value;
  57.     }
  58.  
  59.     /// <summary>
  60.     /// Inspectable ReactiveProperty.
  61.     /// </summary>
  62.     [Serializable]
  63.     public class DoubleReactiveProperty : ReactiveProperty<double>
  64.     {
  65.         public DoubleReactiveProperty() : base() { }
  66.  
  67.         public DoubleReactiveProperty(double initialValue) : base(initialValue) { }
  68.         public static implicit operator double(DoubleReactiveProperty property) => property.Value;
  69.     }
  70.  
  71.     /// <summary>
  72.     /// Inspectable ReactiveProperty.
  73.     /// </summary>
  74.     [Serializable]
  75.     public class StringReactiveProperty : ReactiveProperty<string>
  76.     {
  77.         public StringReactiveProperty() : base() { }
  78.  
  79.         public StringReactiveProperty(string initialValue) : base(initialValue) { }
  80.         public static implicit operator string(StringReactiveProperty property) => property.Value;
  81.     }
  82.  
  83.     /// <summary>
  84.     /// Inspectable ReactiveProperty.
  85.     /// </summary>
  86.     [Serializable]
  87.     public class BoolReactiveProperty : ReactiveProperty<bool>
  88.     {
  89.         public BoolReactiveProperty() : base() { }
  90.  
  91.         public BoolReactiveProperty(bool initialValue) : base(initialValue) { }
  92.         public static implicit operator bool(BoolReactiveProperty property) => property.Value;
  93.     }
  94.  
  95.     /// <summary>Inspectable ReactiveProperty.</summary>
  96.     [Serializable]
  97.     public class Vector2ReactiveProperty : ReactiveProperty<Vector2>
  98.     {
  99.         public Vector2ReactiveProperty() { }
  100.  
  101.         public Vector2ReactiveProperty(Vector2 initialValue) : base(initialValue) { }
  102.         public static implicit operator Vector2(Vector2ReactiveProperty property) => property.Value;
  103.  
  104.         protected override IEqualityComparer<Vector2> EqualityComparer { get { return UnityEqualityComparer.Vector2; } }
  105.     }
  106.  
  107.     /// <summary>Inspectable ReactiveProperty.</summary>
  108.     [Serializable]
  109.     public class Vector3ReactiveProperty : ReactiveProperty<Vector3>
  110.     {
  111.         public Vector3ReactiveProperty() { }
  112.  
  113.         public Vector3ReactiveProperty(Vector3 initialValue) : base(initialValue) { }
  114.  
  115.         protected override IEqualityComparer<Vector3> EqualityComparer => UnityEqualityComparer.Vector3;
  116.         public static implicit operator Vector3(Vector3ReactiveProperty property) => property.Value;
  117.     }
  118.  
  119.     /// <summary>Inspectable ReactiveProperty.</summary>
  120.     [Serializable]
  121.     public class Vector4ReactiveProperty : ReactiveProperty<Vector4>
  122.     {
  123.         public Vector4ReactiveProperty() { }
  124.  
  125.         public Vector4ReactiveProperty(Vector4 initialValue) : base(initialValue) { }
  126.  
  127.         protected override IEqualityComparer<Vector4> EqualityComparer => UnityEqualityComparer.Vector4;
  128.         public static implicit operator Vector4(Vector4ReactiveProperty property) => property.Value;
  129.     }
  130.  
  131.     /// <summary>Inspectable ReactiveProperty.</summary>
  132.     [Serializable]
  133.     public class ColorReactiveProperty : ReactiveProperty<Color>
  134.     {
  135.         public ColorReactiveProperty() { }
  136.  
  137.         public ColorReactiveProperty(Color initialValue) : base(initialValue) { }
  138.  
  139.         protected override IEqualityComparer<Color> EqualityComparer => UnityEqualityComparer.Color;
  140.         public static implicit operator Color(ColorReactiveProperty property) => property.Value;
  141.     }
  142.  
  143.     /// <summary>Inspectable ReactiveProperty.</summary>
  144.     [Serializable]
  145.     public class RectReactiveProperty : ReactiveProperty<Rect>
  146.     {
  147.         public RectReactiveProperty() { }
  148.  
  149.         public RectReactiveProperty(Rect initialValue) : base(initialValue) { }
  150.  
  151.         protected override IEqualityComparer<Rect> EqualityComparer => UnityEqualityComparer.Rect;
  152.         public static implicit operator Rect(RectReactiveProperty property) => property.Value;
  153.     }
  154.  
  155.     /// <summary>Inspectable ReactiveProperty.</summary>
  156.     [Serializable]
  157.     public class AnimationCurveReactiveProperty : ReactiveProperty<AnimationCurve>
  158.     {
  159.         public AnimationCurveReactiveProperty() { }
  160.  
  161.         public AnimationCurveReactiveProperty(AnimationCurve initialValue) : base(initialValue) { }
  162.         public static implicit operator AnimationCurve(AnimationCurveReactiveProperty property) => property.Value;
  163.     }
  164.  
  165.     /// <summary>Inspectable ReactiveProperty.</summary>
  166.     [Serializable]
  167.     public class BoundsReactiveProperty : ReactiveProperty<Bounds>
  168.     {
  169.         public BoundsReactiveProperty() { }
  170.  
  171.         public BoundsReactiveProperty(Bounds initialValue) : base(initialValue) { }
  172.  
  173.         protected override IEqualityComparer<Bounds> EqualityComparer => UnityEqualityComparer.Bounds;
  174.         public static implicit operator Bounds(BoundsReactiveProperty property) => property.Value;
  175.     }
  176.  
  177.     /// <summary>Inspectable ReactiveProperty.</summary>
  178.     [Serializable]
  179.     public class QuaternionReactiveProperty : ReactiveProperty<Quaternion>
  180.     {
  181.         public QuaternionReactiveProperty() { }
  182.  
  183.         public QuaternionReactiveProperty(Quaternion initialValue) : base(initialValue) { }
  184.  
  185.         protected override IEqualityComparer<Quaternion> EqualityComparer => UnityEqualityComparer.Quaternion;
  186.         public static implicit operator Quaternion(QuaternionReactiveProperty property) => property.Value;
  187.     }
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement