位置: 编程技术 - 正文

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

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

  • 印花税征税范围是什么
  • 月初没报完税可以开票吗
  • 外籍人员个人所得税政策2022
  • 各种投资之间的关系
  • 金税盘续费怎么开票
  • 补交以前年度城建税和滞纳金怎么做账
  • 补充医疗保险应享尽享方案
  • 增值税留抵退税政策2022
  • 银行汇票退回
  • 低值易耗品摊销什么意思
  • 购买东西进项税在借方还是贷方
  • 汇算清缴期结束后税务机关发现企业应当取得而未取得
  • 房屋及建筑物原值计算
  • 个体工商户每月不超过10万免税
  • 幼儿园开学费发票内容
  • 最新房产税消息2020
  • 领购发票实名认证流程
  • 印花税征税范围包括所有合同
  • 金融合同违约金罚息
  • 形式发票需要报关吗
  • 清算财产分配会计分录
  • 贴现利息会计处理
  • 收入税金账务处理
  • 对公账户转私人账户手续费多少
  • linux 速度
  • enter an integer
  • 计入当期损益的利得分录
  • 使用php连接数据的方法
  • php curl_init
  • php获取当前时间提交数据库
  • php str_split
  • elementui的upload组件详解
  • 员工报销的差旅费属于什么科目
  • 金融企业贷款损失
  • 增值税普通发票需要交税吗
  • 增值税 附加税
  • 其他权益工具投资公允价值变动怎么计算
  • 企业的职工福利费应当按照应付工资总额的14%计提
  • 先计提所得税还是先结转成本
  • 在什么情况下要切除子宫
  • 给境外公司代扣代缴税款
  • 挂靠设计公司费用标准怎么记账
  • sql2012存储过程
  • 工会费可以发现金吗
  • 对公账户 退款
  • 所得税减免的会计科目
  • 抵押贷款购买商品合法吗
  • 办公楼开始建造前专门借款的利息费用
  • 退回货款给客户怎么做会计分录
  • 增值税进项用不完怎么办
  • 村料采购会计科目有哪些
  • 前程无忧是怎么收费的
  • 去银行更换帐户需要什么
  • 机器配件属于什么类型的商品
  • 住房贷款利息专项附加扣除怎么用
  • 汽车销售公司代购汽车有风险吗
  • 金税盘清卡怎么操作视频
  • 序时账是明细账吗
  • 工业企业的材料销售收入应计入什么
  • 删除用户mysql
  • Windows Server 2016技术预览版第四版系统截图曝光 编号10565
  • win7断电后无法启动
  • freebsd 安装
  • ubuntu创建新用户并增加管理员权限
  • SymSPort.exe - SymSPort是什么进程 有何作用
  • wind8系统怎么清除所有东西 恢复出厂
  • win11注意
  • win10开机黑屏进入不了系统界面
  • win10每周更新
  • 轻量级java开发工具
  • windows8.1升级到windows10
  • OpenGl的glMatrixMode()函数理解
  • linux shell执行命令
  • jQuery基本选择器
  • android studio安装过程中出现的问题
  • js判断设备
  • jquery foreach循环
  • 浙江国家税务局电子税务局官网入口
  • 辽宁朝阳丧葬费标准2022
  • 发票多久作废不了
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设