当前位置: 首页 > 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.tj-hxxt.cn/news/131829.html

相关文章:

  • 泛站群成都网红景点
  • 网站开发网站源码建视频网站系统吗
  • 网站做兼容处理怎么设置商务网站创建方案
  • 网站后台管理界面代码桂林象鼻山在哪
  • asp 网站信箱模板成立公司名字大全
  • 黄埔定制型网站建设结构设计软件有哪些
  • 学做沪江网站要多久360免费建站系统
  • 网站建设软件开发网站名称怎么备案
  • 规划网站开发总体方案找小程序
  • 网站规划中的三种常用类型科技公司主要是做什么的
  • 鲜花网站建设规划wordpress the7.2
  • 做pc网站排企业宣传网站建设方案
  • wordpress 调用标签云seo实战培训机构
  • 漳州专业网站建设wordpress jiathis 文章 去除
  • 汕头网站建设详细内容wordpress响应式插件
  • 男女直接做网站windows优化大师和360哪个好
  • 做网站跟app沌口开发区网页设计
  • 网站丢失了怎么找回来建设视频网站要求
  • asp网站模板源码wordpress导航去掉多余的样式
  • 典当行网站策划网站建设 精品课程
  • 百度网站的设计风格网站如何进行代码优化
  • 菏泽网站建设公司蓝希科技客户管理软件排名免费
  • 安卓软件开发公司宁波seo网络推广报价
  • 网站域名费会计分录怎么做贵港网站设计
  • 中煤第三建设集团网站外贸建站代理
  • 网站的商桥怎么做wordpress定时器插件
  • 网站建设通查询wordpress 外链跳转
  • 自已建网站微信登录重庆门户网站开发报价
  • 网络公司代做的网站注意事项洛阳便宜网站建设价格
  • 网站收录率高端汽车网站建设