当前位置: 首页 > news >正文

怎么让网站被百度收录hugo 怎么做网站

怎么让网站被百度收录,hugo 怎么做网站,佛山网站建设公司怎么样,WaP网站模块行为树#xff08;Behavior Trees#xff09;是一种在游戏开发中广泛使用的AI设计模式#xff0c;主要用于描述AI的行为和决策过程#xff0c;实现更加智能和自然的游戏AI。它由多个节点组成#xff0c;每个节点代表一个行为或决策#xff0c;按照特定的方式连接在一起Behavior Trees是一种在游戏开发中广泛使用的AI设计模式主要用于描述AI的行为和决策过程实现更加智能和自然的游戏AI。它由多个节点组成每个节点代表一个行为或决策按照特定的方式连接在一起形成一个树状结构。 在行为树中根节点是AI的起点通过遍历子节点来决策AI的行为。节点有以下三种状态成功Success、失败Failure和运行Running。前两个通知其父节点其操作是成功还是失败。第三种意味着尚未确定成功或失败并且该节点仍在运行。下次树被选择时该节点将再次被选择此时它将再次有机会成功失败或继续运行。 行为树的节点有以下几种主要原型 组合控制节点Composite一种将多个子节点组合在一起的节点用于实现复杂的行为和决策逻辑。主要包括次序节点Sequencer和选择节点Selector。次序节点并行执行多个子节点直到所有子节点都返回成功或者任意一个子节点返回失败为止。选择节点按照顺序执行子节点当某个子节点返回成功时停止执行并返回成功。 修饰节点Decorator一种特殊的节点它不执行具体的行为或决策而是修饰其它节点的行为或决策。主要包括逆变节点Inverter和重复节点Repeater。逆变节点可以将子节点的结果倒转比如子节点返回了失败则这个修饰节点会向上返回成功以此类推。重复节点重复执行其子节点指定的次数或者一直重复执行直到其子节点返回成功或者失败。 叶节点Leaf树的最末端就是这些AI实际上去做事情的命令。 行为树通过模拟树状结构来描述AI的行为和决策过程使得AI的行为更加灵活、自然和智能。 代码实现 using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree;namespace BehaviourTree {public class BehaviourTree : MonoBehaviour{private Node root null;private Blackboard blackboard;public Node Root{get{return root;}set{root value;}}void Start(){Init();}void Update(){if(root!null gameObject!null){root.Evaluate(gameObject.transform,blackboard);}}protected virtual void Init(){blackboard new Blackboard();}} }using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree;namespace BehaviourTree {//行为树共享数据public class Blackboard{private Dictionarystring,object Data;public Blackboard(){Data new Dictionarystring, object();}//获取数据public T GetT(string key){if(Data.ContainsKey(key)){return (T)Data[key];}return default;}//添加数据public void AddT(string key,T value){if(Data.ContainsKey(key)){Data[key] value;}else{Data.Add(key,value);}}//删除数据public void Remove(string key){if(Data.ContainsKey(key)){Data.Remove(key);}else{Debug.Log(数据不存在 key);}}} }using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree;namespace BehaviourTree {//状态类型public enum Status{Running, //运行中Failure, // 失败Success, //成功}//节点基类public abstract class Node{protected Node parent;protected Status status;Status Status{get{return status;}set{status value;}}public Node(){}//声明节点状态返回方法public abstract Status Evaluate(Transform transform,Blackboard blackboard);} }using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree;namespace BehaviourTree {//复合节点类public abstract class Composite : Node{//子节点列表protected ListNode children new ListNode();protected int index;//子节点下标计数protected Composite(ListNode children){index 0;foreach(var child in children) {this.children.Add(child);}}} }using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree;namespace BehaviourTree {//修饰器节点public abstract class Decorator : Node{//子节点列表protected ListNode children;protected Decorator(ListNode children){children new ListNode(){};foreach(var child in children) {this.children.Add(child);}}}}using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree;namespace BehaviourTree {//选择节点所有子节点都为失败则失败public class Selector : Composite{public Selector(ListNode children) : base(children){}//所有子节点都为失败则失败public override Status Evaluate(Transform transform, Blackboard blackboard){if(indexchildren.Count){index 0;return Status.Success;}var status children[index].Evaluate(transform,blackboard);switch(status){case Status.Success:index 0;return Status.Success;case Status.Failure:index1;if(indexchildren.Count){index 0;return Status.Failure;}return Status.Running;case Status.Running:return Status.Running;default:return Status.Failure;}}} }using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree;namespace BehaviourTree {//顺序节点所有子节点成功才成功public class Sequencer : Composite{public Sequencer(ListNode children) : base(children){}//所有子节点成功才成功public override Status Evaluate(Transform transform, Blackboard blackboard){if(indexchildren.Count){index 0;return Status.Success;}var status children[index].Evaluate(transform,blackboard);switch(status){case Status.Success:index1;if(indexchildren.Count){index 0;return Status.Success;}return Status.Running;case Status.Failure:return Status.Failure;case Status.Running:return Status.Running;default:return Status.Failure;}}} }using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree;namespace BehaviourTree {//任务节点,这里会处理对象具体行为逻辑叶节点public abstract class Task : Node{} }简单使用 实现敌人在两点之间巡逻人物靠近会变红温并停止移动人物远离时继续巡逻 using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree; using System.ComponentModel.Design.Serialization; using System.Linq;namespace BehaviourTree {public class EnemyBT : BehaviourTree{Vector3 aPos new Vector3(4.07999992f,-2.21000004f,-2);Vector3 bPos new Vector3(4.07999992f,1.65999997f,-2)protected override void Init(){//调用基类初始化base.Init();//创建变红节点TurnRed turnRed new TurnRed();//创建巡逻节点Patrol patrol new Patrol(aPos,bPos);//创建查找节点FindObject findObject new FindObject();//创建侦查节点子节点序列Node[] spyChildren {findObject,turnRed};//创建顺序节点用于执行侦查行为EnemySequencer enemySequencer new EnemySequencer(spyChildren.ToList());//创建根节点子节点序列Node[] selectorChildren {enemySequencer,patrol};//创建选择节点用于处理侦查和巡逻行为EnemySelector enemySelector new EnemySelector(selectorChildren.ToList());//将选择节点设置为根节点Root enemySelector;}} }using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree;namespace BehaviourTree {public class EnemySelector : Selector{public EnemySelector(ListNode children) : base(children){}} } using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree;namespace BehaviourTree {public class EnemySequencer : Sequencer{public EnemySequencer(ListNode children) : base(children){}} } using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree; using DG.Tweening;namespace BehaviourTree {public class FindObject : Task{float radius 5f;int layer 512;public override Status Evaluate(Transform transform, Blackboard blackboard){Collider2D obj Physics2D.OverlapCircle(transform.position,radius,layer);if(obj!null){return Status.Success; }transform.gameObject.GetComponentSpriteRenderer().DOColor(Color.white,1);return Status.Failure;}} } using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree; using DG.Tweening;namespace BehaviourTree {//在aPoint和bPoint之间来回移动public class Patrol : Task{Vector3 aPoint;Vector3 bPoint;float speed 4f;Vector3 target;public Patrol(Vector3 aPos,Vector3 bPos){aPoint aPos;bPoint bPos;target aPoint;}public override Status Evaluate(Transform transform, Blackboard blackboard){if(Vector2.Distance(transform.position,target)0.1f){if(target aPoint){target bPoint;}else{target aPoint;}}else{transform.position Vector2.MoveTowards(transform.position,target,Time.deltaTime*speed);}return Status.Success;}} } using System.Collections; using System.Collections.Generic; using UnityEngine; using BehaviourTree; using DG.Tweening;namespace BehaviourTree {//变红public class TurnRed : Task{Vector3 bPoint;public override Status Evaluate(Transform transform, Blackboard blackboard){transform.gameObject.GetComponentSpriteRenderer().DOColor(Color.red,1);return Status.Success;}} }
http://www.dnsts.com.cn/news/70139.html

相关文章:

  • 一个网站 多个域名有关网站开发的参考文献
  • 嘉兴建站模板源码西安哪个公司可以做网站
  • 宝安医院网站建设徐州网站制作机构
  • 苏州创建网站wordpress商业插件
  • 产教融合信息门户网站建设方案我国网站建设的不足
  • 免费的网站app下载做黑龙头像的网站
  • 苏州网站建设培训学校wordpress按分类设置seo
  • 国外一个专门做配乐的网站备案平台新增网站
  • 网站建站素材网站商城的意义
  • 如何加强高校网站建设哪里有网站建设电话
  • 城乡建设门户网站织梦大气金融类通用企业网站模板
  • 网络建站一般多少钱wordpress微信评论
  • 帮别人做彩票网站吗wordpress支持内网和外网
  • 不用源码做网站电子商务网站建设 论文
  • 网站建设需要找网站建设公司做吗北京短视频制作
  • 网站建设单选融通资源开发公司
  • 淮安建设机械网站制作网站编程代码大全
  • 网站开发如可使用支付宝重庆邮电大学官网网站
  • 怎么建自己的销售网站网站建设方案500字
  • 长沙网站设计公司哪家好wordpress在页眉加载js
  • 印度域名注册网站网站维护一次多少钱
  • 电子商务网站建设的相关流程呼和浩特城乡建设网站
  • 手机+显示器自适应wordpress+主题产品seo怎么优化
  • 温州专业手机网站制作哪家便宜wordpress简体中文版
  • 网站建设主要营销内客备案添加网站
  • 做网站是否需要自购服务器深圳 学习网站
  • 重庆手机网站推广流程销售管理系统实验报告
  • 哪里建设企业网站wordpress 生成静态
  • 网上做室内设计的网站做一个网站首页多少钱
  • 做网站需要什么东西做网站需要网站负责人