位置: 编程技术 - 正文

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

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

  • 交通费中的高速费怎么算
  • 开专用发票可以直接写加工费这个明细吗
  • 小规模纳税人是季报还是月报
  • 小规模纳税人免税怎么做账
  • 公司车辆承包给个人违法吗
  • 季度应收账款周转天数是按多少天除
  • 资产负债表中本期盈余等于什么?
  • 购入货物自用的进项税额转出分录怎么处理
  • 为什么企业要预缴增值税
  • 个人所得税期末为负数审计调整
  • 软件开发票入研发费用哪个明细科目?
  • 外地建安个人所得税标准
  • 普票每季度开多少免税
  • 增值税专用发票几个点
  • 高档化妆品消费税的计算公式
  • 什么是遗产税什么是税
  • 完税凭证号是几位数
  • 外购产品用于赠送帐务处理
  • 附加税的税率表
  • 离职补偿怎么做工资
  • 通行费进项税额抵扣金额填在哪里?
  • 外派人员计算个人所得税可否有附加扣除
  • 如何解决win7系统搜不到蓝牙耳机
  • 腾讯电脑管家病毒库更新
  • win10系统通知中心在哪
  • 购买商城购买化肥
  • php7 ??
  • 已经认证抵扣的发票,发生冲红,要怎么处理
  • 企业的税收优惠政策有哪些
  • wordpress 常用函数
  • 甘油三血脂高怎么办
  • 保险储金是什么意思
  • mxnet github
  • 发票开具有误拒收后销售方如何处理?
  • 在校学生是不是纳税人,请举例说明
  • 补发工资怎么做账
  • 自产自销农产品发票如何开具
  • 小规模纳税人交税怎么做会计分录
  • 福利费入账要求
  • 微软的人工智能ChatGPT
  • controller控制器怎么调
  • laravel 实例
  • 微信php开发教程
  • phpcms默认密码
  • 举报民间借贷利息收入所得税
  • 金税盘报送汇总在哪
  • 存货都有什么科目
  • 配置windows update
  • python 读取图片
  • sqlserver正则表达式用法
  • 往来对账的作用
  • 房产租赁增值税率是5%还是9%
  • 对公账户的钱都可以取吗
  • 坏账核算备抵法的优缺点
  • 固定资产的修理费属于什么费用
  • 银行汇票转入银行分录
  • 坏账确认无法收回
  • 资产减值哪些资产
  • 公司给员工转公司
  • 房开企业预缴增值税
  • 企业转让固定资产属于什么收入
  • 应付账款的主要风险点
  • 矿山运输设备的点检绩效考核
  • 设置mysql数据库字符集的语句
  • sqlserver 禁用触发器 超时
  • window10预览在哪里找
  • 面向小微企业
  • centos下载命令
  • win8系统打不开exe
  • cocos2d-x教程
  • OpenGL Tutorial: (2) Creating an OpenGL Window
  • javascript的语法在哪一项中规定
  • 搭建gitbook
  • bootstrap基础教程
  • jquery keydown
  • android的图片应该放到哪一个目录下面?
  • vscode 远程调试jni
  • python难度
  • nodejs 扫描目录
  • python基于django的项目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设