位置: 编程技术 - 正文

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:curl_multi_remove_handle()的用法_cURL函数
  • image driver
  • 代理业务怎么记账
  • php获取访问用户的ip
  • 固定资产抵债账务怎么处理
  • 阐述php的特点
  • 预收账款增值税纳税义务
  • 计算机视觉姿势评估英语
  • 【角色扮演】
  • c语音进阶
  • phpgd库怎么开
  • halt关机命令
  • 6款好用的ppt制作软件推荐
  • 微信认证费是什么意思
  • 契税属于哪种说法
  • 帝国cms功能
  • SQLite学习手册(SQLite在线备份)
  • 织梦如何给栏目增加缩略图
  • 建筑公司计提企税怎么算
  • SQLserver2014(ForAlwaysOn)安装图文教程
  • 复印件可以作为会计原始凭证吗
  • 老板自己出钱买办公用品怎么做账
  • 代扣税是啥
  • 所得税不退税怎么写情况说明
  • 其他贷款服务计入什么科目
  • 个人出租租房收什么税
  • mysql外键是什么意思
  • mysql5.7.17安装
  • 如何用win7
  • 苹果电脑定制键盘
  • win8 设置打不开
  • mac上安装ios app
  • eve是什么文件
  • 屏保 win7
  • shnlog.exe - shnlog是什么进程 有什么用
  • 如何关闭win8的windows defender
  • 新版电脑装win7
  • Win10 Build 14279正式推送 更新后QQ可能会崩溃
  • 如何用python处理pdf
  • js修改内容
  • python3 ftplib
  • 用javascript写表单代码
  • 使用jquery实现表单验证
  • 文件夹怎么变成
  • node-js
  • android 系统app开机自启动设置
  • 税务 涉税中介
  • 怎么打印纳税申报表带章的
  • 电子税务局怎么添加银行账户信息
  • 广西职称申报系统入口220
  • 贵州国家税务局陈开平
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设