位置: 编程技术 - 正文

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

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

  • 专票税号不对可以认证吗
  • 什么是小规模纳税人税率
  • 买房契税缴纳比例
  • 应付利息增加会计分录
  • 冲销暂估原材料
  • 纳税人性质怎么改
  • 企业所得税申报表在哪里查询
  • 银行承兑汇票背书可以拆分
  • 主营业务成本可以暂估吗
  • 未投入使用的道路
  • 接受实物投资纳印花税怎么缴纳?
  • 设备维修增值税
  • 国库集中支付行政运行
  • 合伙企业交个税例题
  • 材料发票不够怎么办
  • 车辆租赁合同印花税怎么算
  • 月饼税收分类属于哪一类食品
  • 营改增后建筑业税率变化情况
  • 开了发票一定要确认收入吗
  • 会计估计变更由谁审批
  • 采购商品产生的费用有哪些
  • 进口海运费增值税发票 抵扣
  • 会展服务可以入管理费用的哪个明细费用
  • 工会经费80%
  • 广告公司结转收入应交税费分录?
  • 电脑安全模式有声音吗
  • php中运算符
  • Win11如何关闭屏保上的广告
  • linux内核与文件系统
  • 前端这点事
  • win10系统的安装
  • 农产品抵扣进项税额的规定
  • yolov3目标检测步骤流程图
  • 财税2016年12号文件解读
  • windowlocation用法
  • 在职工教育经费包括哪些
  • 加计抵减退税的会计分录
  • 织梦cms不更新了吗
  • sql server中数据文件的扩展名是
  • 公司自用咖啡机怎么处理
  • 物流进项发票应纳税额
  • 销售折扣单独开发票
  • 劳动报酬所得收入额大于4000
  • 计提和实际发放的区别
  • 付出对价的公允
  • 核价人员要对哪些方面的价格进行核定,怎么核?
  • 何为居民企业
  • 工会经费的会计分录2022
  • 收购分公司有什么要求
  • 出租固定资产的折旧计入哪个科目
  • 如何合理的运用网络
  • 待处理财产损溢借贷反向
  • 从一个公司到另一个公司叫什么
  • 财务软件可以直接做管理费用吗?
  • 出售二手固定资产如何开票
  • 当期损益包括哪些科目指的
  • 公司增资需要哪些材料
  • centos cmake安装
  • win2003peiso
  • centos 离线安装git
  • MAC百度网盘下载的压缩包怎么导出
  • centos 安装
  • win8开机进不了桌面
  • win7 24小时制
  • 装win10没有版本选择提示
  • 如何解决windows激活问题
  • win10系统桌面图标大小怎么设置
  • 优质安卓应用
  • com.android.phone无响应
  • 全部删除文件快捷键
  • css常用布局方式
  • express.js教程
  • python中的命名规范
  • javascript的
  • unity closestpoint
  • jquery网页制作
  • 全电子发票开具怎么扫脸认证?
  • 四川国税发票手机查询
  • 公司变更税务局
  • 资源税谁缴纳
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设