位置: 编程技术 - 正文

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纸上设置)

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

  • 所得税的会计分录有哪些
  • 职工个人所得税
  • 增值税附加税减免
  • 建筑劳务如何开三个点的发票
  • 内含报酬率与必要报酬率相等
  • 前一年的发票第二年改抬头
  • 高新企业要求研发投入
  • 支付的工会经费现金流量项目是什么?
  • 新公司季初资产总额和季末资产总额怎么填
  • 混凝土开票的型号规格
  • 手机专票 一般纳税人能抵扣吗
  • 分支机构是否享受小微企业企业所得税优惠?
  • 存货取得的分录
  • 固定资产减值必有损益吗
  • 个体户没有税务登记证能注销营业执照吗
  • 可供分配利润包含哪些
  • 有留抵税额要考虑税负吗
  • 增值税补交还有没有责任
  • 租房的装修费怎么入账
  • 年终奖和当月工资合并申报税
  • 成本票最多开多少
  • 未办理三证合一营业执照会注销吗
  • 国家税务总局公告2023年第1号
  • 股东划入资产会计处理
  • 固定资产报废怎么开票
  • 票据贴现业务的风险
  • 单位社保部分会扣吗
  • 购买办公用品发放给各部门使用
  • ∧oc电脑bios
  • harmonyos2.0.0怎么用
  • adb是什么程序
  • 塞维利亚是港口吗?
  • 抵扣了的进项税可以冲销么
  • 创业补贴的作用
  • 公司比赛奖金计入什么科目
  • 低值易耗品现在还用吗
  • debian更换国内源教程
  • 固定资产的减值准备,一经确认,不得转回
  • 建设工程项目设计质量控制的内容
  • 神经网络模型python
  • 机器学习——感知机
  • 编程 开发
  • php sleep函数
  • 年底所得税怎么算
  • access使用查询向导固定常数
  • 商铺转让费的会计分录
  • 完税证明可以去税务局补打吗
  • db2数据文件
  • 存货减值税前可抵扣吗
  • 待报解啥意思
  • 原材料计入什么摘要
  • 现金比率合适范围
  • 城投公司政府购买服务
  • 公司现金收付管理
  • 房产契税什么时候退税
  • 投资性房地产账面价值大于公允价值计入什么
  • 增值税专用发票几个点
  • 农产品增值税公式
  • 小企业会计准则2023电子版
  • 销售不动产计税税率
  • 外包会计注意事项
  • 暂估怎么冲回
  • mysql缩印
  • sqlserver远程连接设置
  • xp电脑怎么样
  • ubuntu安装指南
  • .exe是什么软件
  • win10修改启动
  • 老旧的诗琴五个琴谱大全
  • fpt.exe
  • Shell脚本监控linux系统信息
  • javascript常用语法
  • 如何获得select选中的值
  • 我决定放弃了你却对我笑了
  • vps 备份
  • find 批处理
  • python字典常用操作以及字典的嵌套
  • 江苏省官网
  • 陕西陉阳县税务局官网
  • 卖钢材交哪些税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设