位置: 编程技术 - 正文

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

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

  • 待认证进项税额是什么情况下用的
  • 增值税销项税的计税依据(销售额)包括()
  • 利润总额×12%
  • 一般纳税人申报纳税的流程
  • 厂房设计费计入在建工程吗
  • 银行询证函快递怎么查
  • 装载机属于哪种车型
  • 财务预算是做什么的
  • 以前年度税款需要交税吗
  • 企业对于无法收回的应收账款
  • 售后回购融资租赁合同
  • 未收到增值税专用发票
  • 营业执照的注册地址怎么填
  • 饭店购买厨房用具分录
  • 开增值税发票开户行怎么填?
  • 投资收益涉及税种
  • 税务申报零申报怎么操作
  • 从两处领取工资,个人所得税应该如何申报缴纳?
  • 投标报价里税金和税率是一个吗
  • 收代扣代收代征手续费会计分录
  • 委托代收款
  • 利润表里的营业成本包括哪些
  • 长期股权投资溢价购入
  • 公司前期花费怎么记啊
  • 固定资产进项税额怎么做账
  • macbook怎么修改默认系统
  • 细说php
  • 代扣的工会会费怎么做账
  • 广告费和业务宣传费税前扣除基数
  • 开发企业房产税如何征收
  • linux如何删除lv
  • 房地产企业土地增值税预缴
  • 抵免法的缺点主要有以下几点
  • spring boot整合hibernate
  • vue新手教程
  • 机动车销售统一专票
  • 查账征收利润50万交多少税
  • 环保税的纳税义务人是施工方还是建设方安徽
  • 交易性金融资产的入账价值
  • 股权转让个人转个人要交什么税
  • 可变现净值属于会计计量属性吗
  • 福利部门领用材料计入什么科目
  • 个人去开票要交税吗
  • 外汇保值业务的特点包括
  • 创建一个空的学生基本信息表的副本
  • 企业购进材料取得增值税专用发票
  • 无票收入要交企业所得税吗
  • 加计扣除适用于什么企业
  • 预收工程款的会计分录
  • 如何查询工商局每天入驻情况
  • 货物出口销售确认流程
  • 应交税费年末需要结转吗
  • 资源税的账务处理
  • 原材料 半成品
  • 民间非盈利组织使用什么会计准则
  • 公司买房代替房贷合法吗
  • 旅游业小规模纳税人税率是多少
  • 年底需要结转的会计科目
  • 硬盘安装windows11
  • CentOS安装配置adb环境
  • 微软为什么放弃win10
  • win7使用mbr还是guid
  • centos开机自动运行
  • win8截屏在哪个文件夹
  • centos named
  • win8.1无法连接wifi
  • qclean.exe - qclean是什么进程 有什么用
  • win7内存检测工具
  • shell命令windows
  • win10mobile官网
  • 3ds怎么用3ds格式
  • javascript 异步操作
  • jQuery实现的AJAX简单弹出层效果代码
  • 使用js检测浏览器的网站
  • node.js web
  • macbookair安卓系统怎么切换到苹果
  • 云南国税电子税务局官网登录
  • 增值税申报表如何导出
  • 达州房管局备案查询系统
  • 刚成立小公司的流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设