title: Trigger "Set" when changed class object property C#
body: <p>If I have a custom class <code>Vector3</code> and I have a class object <code>Myobject</code> that use the <code>vector3</code> class as a property and when I set a new vector 
  <code>myobject.pos = new vector3(x,y,z);</code> the <code>set</code> will trigger in this case <code>Debug.Log("set")</code> as expected but If I instead of creating a new vector I only want to change <code>x</code> but still have <code>set</code> triggered I would want to do <code>myobject.pos.x = x</code> but this will not trigger the <code>set</code> in <code>MyObject</code> but the <code>set</code> in my <code>vector3</code> class for x is there any way of fixing this so <code>set</code> in <code>MyObject</code> triggers when I change only the "<em>sub property</em>" x of the <code>vector3</code>.</p>
  
  <pre><code>public class MyObject{
          private Vector3 p_pos = new Vector3(0, 0, 0);
          public Vector3 pos
          {
              get { return (p_pos); }
              set
              {
                  Debug.Log("set");
                  p_pos = value;
              }
          }
  }
  </code></pre>
  
  <p>The only way I can think of doing it is to create a separate method in <code>MyObject</code> class like this <code>MyObject.SetPosX(x)</code>:</p>
  
  <pre><code>public void SetPosX(double _x)
  {
      Debug.Log("set");
      p_pos.x = _x;
  }
  </code></pre>
  
  <p>But It is not a very clean way of doing it so would prefer another solution.</p>