public override IValue GetIValue(Agent self, IInstanceMember firstParam) { Agent agent = Utils.GetParentAgent(self, _instance); bVector3 result = ((CInstanceMember <bVector3>)firstParam).GetValue(self); _returnValue.value = ((SoilderAgent)agent).MoveTo(result); return(_returnValue); }
private Vector3 curTargetPos;//当前目标位置 /// <summary> /// 向一个位置移动,主动移动放在agent里,driver只负责位置同步 /// </summary> /// <param name="targetPos"></param> /// <returns></returns> public behaviac.EBTStatus MoveTo(bVector3 targetPos) { if (curActionStatus != ActionStatus.Moving) { curActionStatus = ActionStatus.Moving; curTargetPos = targetPos.UnityVec(); MgrCenter.Instance.SendMsg(Msgs.GetMsgMoveRequest((ushort)MoveEvent.MoveClientRequest, Id, transform.position, curTargetPos)); } return(behaviac.EBTStatus.BT_RUNNING); }
/// <summary> /// 设置一个撤退点 /// </summary> /// <param name="retreatPosition"></param> public void SetRetreatPos(bVector3 retreatPosition) { _set_retreatPos(retreatPosition); }
public void _set_retreatPos(bVector3 value) { retreatPos = value; }
public void _set_fleePos(bVector3 value) { fleePos = value; }
public void _set_position(bVector3 value) { position = value; }
public void _set_homePoint(bVector3 value) { homePoint = value; }
public void _set_curTacticAtkPos(bVector3 value) { curTacticAtkPos = value; }
public static Vector3 UnityVec(this bVector3 bVector) { return(new Vector3(bVector.x, bVector.y, bVector.z)); }