public override int GetHashCode()
    {
        int hash = 1;

        if (Id != 0)
        {
            hash ^= Id.GetHashCode();
        }
        if (userPhysicalPosition_ != null)
        {
            hash ^= UserPhysicalPosition.GetHashCode();
        }
        if (userVRPosition_ != null)
        {
            hash ^= UserVRPosition.GetHashCode();
        }
        if (userRotation_ != null)
        {
            hash ^= UserRotation.GetHashCode();
        }
        if (_unknownFields != null)
        {
            hash ^= _unknownFields.GetHashCode();
        }
        return(hash);
    }
 public void MergeFrom(User other)
 {
     if (other == null)
     {
         return;
     }
     if (other.Id != 0)
     {
         Id = other.Id;
     }
     if (other.userPhysicalPosition_ != null)
     {
         if (userPhysicalPosition_ == null)
         {
             userPhysicalPosition_ = new global::Vector();
         }
         UserPhysicalPosition.MergeFrom(other.UserPhysicalPosition);
     }
     if (other.userVRPosition_ != null)
     {
         if (userVRPosition_ == null)
         {
             userVRPosition_ = new global::Vector();
         }
         UserVRPosition.MergeFrom(other.UserVRPosition);
     }
     if (other.userRotation_ != null)
     {
         if (userRotation_ == null)
         {
             userRotation_ = new global::Quadrublet();
         }
         UserRotation.MergeFrom(other.UserRotation);
     }
     _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
 }