位置: 编程技术 - 正文

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

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

  • 自己的医院
  • 印花税税源明细表怎么填
  • 车间停止生产时间怎么计算
  • 手机上可以开个人劳务发票吗
  • 建筑企业印花税的计税依据
  • 个税走什么科目
  • 基本户和一般户的用途
  • 普票需要填写全部开票信息吗
  • 小规模增值税的三个附加税计算公式是什么
  • 银行结构性存款是理财吗
  • 平均分摊法计算公式
  • 预借差旅费,付给现金会计分录
  • 增值税发票认证是什么意思
  • 购买非专利技术发生的手续费计入什么科目
  • 无效产权转移的契税需要征收吗
  • 接受捐赠的材料会计分录怎么写
  • 商贸公司账务复杂吗
  • 企业合并会计处理方法研究论文
  • 购买的厂房怎样交税
  • 增值税专用发票有效期是多长时间
  • 保险合同有啥用
  • 投资退税申请应怎么写
  • 应交税费属于什么会计要素
  • 进项票一定要专票吗
  • 工程款发票备注栏必须填写吗
  • 非房地产企业转让旧房土地增值税
  • 高新创投企业所得税税率
  • 用于非应税项目的购进货物或应税劳务
  • 积分全部换购商品是什么
  • 隐藏资源管理器窗口
  • 利用php实现开心麻花
  • ajax与php交互
  • iframe内嵌页面
  • 企业职工教育培训经费列支范围适用事业单位
  • 同业拆入属于哪个行业
  • vue-element
  • 处置固定资产涉税
  • Blog2N如何计算
  • 企业会计准则季报利润表本期金额怎么填
  • 发票明细清单怎么打印
  • 债券发行费用包括
  • python怎么用
  • 个人所得税计算器公式
  • 什么情况企业需要调档
  • sql主键是什么意思
  • 消防工程改造方案
  • 企业预缴所得税年末应该怎么交税
  • 其他权益工具账面价值和公允价值
  • 同在一个单位
  • 商业承兑汇票销售产品会计分录
  • 税控系统设备可以全额抵扣吗
  • 收到其他公司往来款怎么做账
  • 原始凭证错误的更正方法
  • 库存商品结转成本需要附件吗
  • 小企业会计准则没有以前年度损益调整科目
  • 给对方承兑对方不承认怎么办
  • 购买原材料材料尚未验收入库,款项尚未支付
  • 汇算清缴从业人数平均值怎么算
  • 会计写数字的技巧和方法
  • 数据库优化的作用是什么?
  • freebsd与linux
  • linuxcpu监控
  • 电脑光驱怎么装系统w7
  • win7系统的电脑
  • win7开启路由功能
  • win8怎么更新到win8.1
  • Cocos2d-x 3.0final 终结者系列教程23CocosStudio UI组件使用大全Cocos2d-x3.2使用
  • 前端 插件
  • java 迭代器 remove
  • SQLite -- 嵌入式关系型数据库
  • Setver、Share、Subst命令的使用方法
  • bat批处理命令教程
  • 使用androidx 找不到v7
  • scrollcontroller
  • unity中播放视频
  • python操作db2数据库
  • 湖南增值税普通发票查询系统官网
  • 实名办税人员承诺书范本
  • 普通发票每个月有限制吗
  • 天津市各区国税局待遇一样吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设