public virtual void DoAwake()
 {
     if (m_tr == null)
     {
         m_tr = transform;
     }
     if (m_cstack == null)
     {
         m_cstack = m_tr.ForceGetComponent <ConstraintStack>();
         m_cstack.Add(this); //will ignore repetitive object
     }
 }
 void Awake()
 {//to handle auto added ConstraintStack
     m_tr     = transform;
     m_cstack = m_tr.ForceGetComponent <ConstraintStack>();
     m_cstack.Add(this); //will ignore repetitive object
 }