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

怎么让网站被百度收录微信公众号后天网站开发

怎么让网站被百度收录,微信公众号后天网站开发,免费手机网页网站,建站高端网站行为树#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/258783.html

相关文章:

  • 小公司建设网站图片网站虚拟主机
  • 网站建设细节差异化怎么自创网页
  • 如何做自己的网站链接海外建站推广
  • 网站建设与优化推广方案河北网站建设与推广
  • 电商平台网站有哪些如何自己建设简单的手机网站
  • 网站开发与管理实训项目wordpress插件的使用
  • 模板性公司网站图片智能建造专业学什么
  • 网站代码制作软件沧州网站建设熊掌号
  • 网站建设的开发方式知乎wordpress生成xml地图
  • 直接做海报的网站wordpress+简繁
  • 潍坊网站制作怎么做雕塑网站源码
  • xx企业网站建设方案书游戏网站建设与策划方案
  • 宝安网站推广ui设计素材网站有哪些
  • 网站开发实训报告模板十大品牌策划公司
  • 做的好的网站开发centos wordpress 一键
  • 高新营销型网站建设公司大渝网官网
  • 网站类型大全全球快速建站工具
  • 程序员给别人做的网站违法了网页设计报告结束语
  • wordpress成品网站云部落做宣传类网站需要什么资质
  • 个人注册公司在哪个网站申请网页布局方式
  • 网站的实用性了解网站建设的基本流程
  • 中英文网站建站wordpress4.9.7
  • 连云港市网站平台太原网站建设加q.479185700
  • 金融网站框架模板企业网站多少钱一个
  • 网站建设文化策划沭阳金地建设网站
  • 大于二高端网站建设做网站技术好学嘛
  • 支持支付宝登录的网站建设网站权重多少4
  • 网站开发用什么莱芜交友论坛
  • 用粉色做网站主题色wordpress 500错误解决
  • wordpress用户勾选北京seo实训班学校