public BtPreconditionAnd(BTPrecondition lhs, BTPrecondition rhs, int uniqueKey)
     : base(lhs, rhs)
 {
     _uniqueKey = uniqueKey;
 }
 public BTPreconditionNot(BTPrecondition lhs, int uniqueKey)
     : base(lhs)
 {
     _uniqueKey = uniqueKey;
 }
 public BtPreconditionUnary(BTPrecondition lhs)
     : base(1)
 {
     AddChild(lhs);
 }
 public BtPreconditionBinary(BTPrecondition lhs, BTPrecondition rhs)
     : base(2)
 {
     AddChild(lhs).AddChild(rhs);
 }
 public BTAction SetPrecondition(BTPrecondition precondition)
 {
     _precondition = precondition;
     return(this);
 }