位置: 编程技术 - 正文

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

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

  • 安徽省增值税发票开票截止日期
  • 怎么应对降税,不含税价怎么应对
  • 工商税收是什么意思啊
  • 今年补交上年的对外捐赠(视同销售收入)的税怎么处理?
  • 个税申报与社保申报一定是一致的么
  • 资产负债表怎么看营业收入
  • 上级补助收入支出决算科目
  • 小规模转一般纳税人生效时间
  • 利润表管理费用怎么算
  • 城建税的征税范围是什么
  • 库存商品的进销存怎么做账
  • 辅导期一般纳税人和一般纳税人的区别
  • 投资款转为借款需要哪些证据
  • 计提分红款体现在利润表中哪一个
  • 公司买车赠与员工
  • 永续债的利息会计处理
  • 社保和个税怎么个对应法
  • 2021年新疆果业灰枣销售情况
  • 汽车维修单位提成比例
  • 清包工开票详细名称
  • apple取消支付方式
  • 税控盘服务费全额抵扣勾选在什么地方
  • win10双系统修改名称
  • 民办非企业单位是什么企业类型
  • 提供应税服务的纳税义务发生时间
  • 马耳他共和国瓦莱塔福利
  • 二手办公楼交易税多少
  • 超级本轻薄本
  • 废料收入的成本怎么核算
  • 经济补偿金个人所得税计算公式
  • 公司账户的钱怎么少了
  • php获取post请求参数
  • 人工智能答案
  • ai绘画网站
  • username命令
  • 应收账款周转率多少合适
  • 酒店会计做账流程及内容
  • 没有盈利的单位叫什么
  • 金融企业往来支出是一级科目吗
  • 报销差旅费属于什么现金流量项目
  • 跨年坏账准备转回
  • 银行存款出现负数
  • Pythonround函数作用
  • 小规模纳税企业在应交增值税明细科目
  • 应付职工薪酬的
  • 不能抵扣的抵扣了怎么办
  • 小规模纳税人增值税申报表怎么填
  • 完税证明可以去税务局补打吗
  • sql server版本号查看
  • 预算会计与企业会计的区别感悟
  • 金融企业有
  • 上年未结转的成本今年可以结转吗
  • 关税进口增值税缴纳时间
  • 缴纳房产税和城镇房产税
  • 商家代金券谁出钱
  • 个人独资企业的投资人以其个人财产对企业债务承担
  • 未达起征点的收入怎么入账
  • 绿化补偿标准
  • win预览版计划
  • win10每次开机都假死机
  • ubuntu20.04常用软件
  • linux在服务器领域的应用状况
  • 如何卸载影子还原软件
  • realshed.exe - realshed是什么进程 有什么用
  • win10系统家庭组如何关闭家庭组访问用户名密码
  • win8.0下载
  • Ubuntu 14.04 LTS中安装fcitx中文输入法的教程
  • jquery实现密码和确认密码
  • js引入css文件
  • unity简单小游戏案例
  • webuploader.create
  • unity manifest
  • 聊天界面的新消息通知设置 找不到
  • 重写runnable
  • javascript基础教程答案
  • python语言中
  • 江苏国家电子税务局网站
  • 电子税务局申领的发票怎么读入
  • 新华保险有返本金吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设