位置: 编程技术 - 正文

AI控制器(ai控制器的简称是)

编辑:rootadmin
using UnityEngine;using System.Collections;public class EnemyController : MonoBehaviour { /// <summary> /// 血条类 /// </summary> [HideInInspector] public PlayerHealth health; /// <summary> /// 移动的方向 /// </summary> [HideInInspector] public Vector3 MoveDrection; /// <summary> /// 敌人的状态 /// </summary> // [HideInInspector] public EnemyState enemyState; /// <summary> /// 攻击的目标 /// </summary> [HideInInspector] public Transform attackTarget; /// <summary> /// 动画组件 /// </summary> private Animator anim; /// <summary> /// 角色控制组件 /// </summary> private CharacterController controller; /// <summary> /// 当前动画的状态 /// </summary> private AnimatorStateInfo stateInfo;void Start () { InitFramePanel(); enemyState = EnemyState.Idle; anim = GetComponentInChildren<Animator>(); controller = GetComponent<CharacterController>(); MoveDrection = Vector3.zero;} void FixedUpdate() { //获取当前动画的状态 stateInfo = anim.GetCurrentAnimatorStateInfo(0); switch (enemyState) { case EnemyState.Idle: IdleController(); break; case EnemyState.Move: MoveController(); break; case EnemyState.Attack: AttackController(); break; case EnemyState.Death: DeathController(); break; }} #region 空闲动画脚本IdleController /// <summary> /// 空闲动画脚本IdleController /// </summary> private void IdleController() { if (controller != null && anim != null && enemyState==EnemyState.Idle) { //获取当前动画状态 if (stateInfo.nameHash != Animator.StringToHash("Base Layer.Idle")) anim.SetFloat("Speed", 0); } else Debug.LogWarning("EnemyController没有找到标签为CharacterController的组件或者Animator组件"); } #endregion #region 移动动画脚本MoveController /// <summary> /// 移动动画脚本MoveController /// </summary> private void MoveController() { if (controller != null && anim != null && enemyState==EnemyState.Move) { if (stateInfo.nameHash != Animator.StringToHash("Base Layer.Walk")) anim.SetFloat("Speed", 1); if (MoveDrection != Vector3.zero) controller.Move(MoveDrection); } else Debug.LogWarning("EnemyController没有找到标签为CharacterController的组件或者Animator组件"); } #endregion #region 攻击动画脚本AttackController /// <summary> /// 攻击动画脚本AttackController /// </summary> private void AttackController() { MoveDrection = Vector3.zero; if (controller != null && anim != null && enemyState == EnemyState.Attack) { if (attackTarget != null) { if (stateInfo.nameHash != Animator.StringToHash("Base Layer.Attack1")) anim.SetTrigger("Attack1"); HeroController hero = attackTarget.GetComponent<HeroController>(); hero.health.UpdateCurrentHP(-5); enemyState = EnemyState.Idle; } else Debug.Log("没有攻击目标哎"); } else Debug.LogWarning("EnemyAI没有找到标签为CharacterController的组件或者Animator组件"); } #endregion #region 死亡动画脚本DeathController /// <summary> /// 死亡动画脚本DeathController /// </summary> private void DeathController() { if (controller != null && anim != null && enemyState == EnemyState.Death) { if (stateInfo.nameHash != Animator.StringToHash("Base Layer.Death")) { anim.SetTrigger("Death"); } Debug.LogWarning("呜呜呜呜,我这人见人爱,花见花开的狼宝宝怎么死了呢"); } } #endregion #region 初始化FramePanel /// <summary> /// 初始化FramePanel /// </summary> private void InitFramePanel() { GameObject root = GameObject.Find("UI Root/Anchor_TopRight"); GameObject obj = Resources.LoadAssetAtPath("Assets\Prefabs\Health\PlayerHealth.prefab", typeof(GameObject)) as GameObject; if (root != null && obj != null) { obj = Instantiate(obj) as GameObject; obj.transform.parent = root.transform; obj.transform.localScale = Vector3.one; obj.transform.localPosition = new Vector3(-, -, 0); health = obj.GetComponent<PlayerHealth>(); health.MaxHP = 8; health.deathDelegate = new CallBack(Death); } } #endregion /// <summary> /// 死亡 /// </summary> public void Death() { enemyState = EnemyState.Death; }}public enum EnemyState{ Idle, Move, Attack, Death}

推荐整理分享AI控制器(ai控制器的简称是),希望有所帮助,仅作参考,欢迎阅读内容。

AI控制器(ai控制器的简称是)

文章相关热门搜索词:air控制器,ai控制器是什么,ai控制器检查不到玩家,ai控制器是什么,ai控制器是什么,ai控制器是什么,AI控制器龙头,ai控制器是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

人物移动 voidUpdate(){if(Input.GetMouseButtonDown(0)){RayControl();}if(flagMove){if(Vector3.Distance(transform.position,mousePos)1){transform.Translate(transform.worldToLocalMatrix*transform.forward*Time.delta

围绕摄像机旋转 vartarget:Transform;vardistance=.0;varxSpeed=.0;varySpeed=.0;varyMinLimit=-;varyMaxLimit=;privatevarx=0.0;privatevary=0.0;@scriptAddComponentMenu(Camera-Control/MouseOrbit)functionStart(){

Unity 初级AI躲避障碍物 1.引言阅读《UnityGameAIprogramming》第6章后,感觉躲避障碍物算法不是很给力。为了研究和学习Unity,自己改良躲避障碍物的算法。当然,代码没有优化,

标签: ai控制器的简称是

本文链接地址:https://www.jiuchutong.com/biancheng/369384.html 转载请保留说明!

上一篇:缩放(缩放打印到一张a4纸上设置)

下一篇:人物移动(人物移动素材)

  • 公司食堂辅助账怎么记账
  • 其他收益里的政府补助免税吗
  • 负债表内容
  • 固定资产大修理的标准
  • 预付款项包括哪些项目
  • 别人送我免费赠品
  • 停车场企业所得税税率
  • 增值税怎么补提
  • 通讯费计入什么部门
  • 如何查发票真伪发票查询
  • 职业培训和职业技能培训的区别
  • 基金公司收到投资者的投资款
  • 单位汽车按揭贷款怎么贷
  • 利润表里的其他业务利润怎么形成的
  • 银行借款利息支出可以税前扣除吗
  • 企业以盈余公积转增资本,会引起所有者权益总额的变动
  • 微软输入法打不出汉字只有拼音
  • windows 10输入法
  • 新会计制度下如何做账
  • 现金分红说明什么
  • win10系统白名单怎么设置
  • 工商企业年报网上申报流程
  • 采购合同付款违约条款怎么签
  • sguard是什么
  • imgrd.exe是什么
  • 车保险理赔的钱多久到账
  • 潘塔纳尔湿地的主要成因
  • 存放同业属于什么会计制度
  • 资产负债表和利润表的认定
  • 差旅费报销应注意什么
  • 小规模纳税人未开票收入如何填申报表
  • 货物及劳务包括哪些内容
  • ai训练流程
  • 新制度设置了应缴财政款科目原制度设置了什么科目
  • 债券溢折价摊销
  • 税款返还 分录
  • 农产品免税发票可以抵扣增值税吗
  • 公司地面硬化财务如何入账
  • php 清除缓存
  • mongodb subtract
  • SQL中print、sp_helptext的限制与扩展
  • 商品发生报废如何处罚
  • 数据库双亲结点
  • sql server拒绝访问是什么情况
  • 零售行业的销售额由什么决定
  • 营改增清包工
  • 个体工商户税务注销流程
  • 长期待摊费用会计分录
  • 社保补缴收滞纳金吗
  • 应交税金—应交增值税(进项税额)
  • 长期待摊费用的最新账务处理
  • 公司银行账号注销需要法人到场吗
  • 管理费用和财务费用期末有无余额
  • 某劳务派遣公司与某传媒公司签订
  • 小微企业应交增值税如何记账
  • 软件公司购买软件用于研发
  • win10系统详情
  • win7系统出现reboot and
  • ubuntu怎么修改网络配置
  • centos安装完成后重启进不去
  • solaris挂载nfs
  • macbook2020款改硬盘
  • linux用户账户管理
  • windows推送
  • xp无法访问win7电脑
  • windows8网络连接
  • 打开word显示
  • win8系统损坏怎么修复
  • nodejs安装在c盘好还是d盘好
  • me分析方法
  • node.js做服务器
  • 爱加密企业版
  • 浅析Python中MySQLdb的事务处理功能
  • android如何导入v4包
  • jquery遍历li
  • 广东电子税务系统社保1号都能申报吗
  • 成都税务企业号公众号
  • 税务部门的扣款协议
  • 福州市税务局领导班子成员名单
  • 印花税票在哪里可以查到
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设