位置: 编程技术 - 正文

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

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

  • 什么情况借钱
  • 房屋租赁印花税怎么算
  • 油库存油租赁
  • 个税申报表中的基本养老保险怎么填
  • 管道燃气工程设计方案
  • 哪个会计科目必须对全部项目发函证
  • 集装箱维护是做什么的
  • 一般纳税人工会经费返还政策
  • 累计折旧计入
  • 纳税筹划成本支出怎么算
  • 房租费可以摊销吗
  • 年底没计提年终奖,下一年发放要怎么做
  • 固定资产转在建工程
  • 供应商货款打折分录
  • 开出转账支票的摘要怎么写
  • 金税三期房产税更正申报怎么弄
  • 增值税申报进项抵扣汇总表在哪里
  • 个人取得下列各项所得须自行申报纳税的有
  • 购设备发票只开来一部分怎么入账?
  • 外币折算差额计入什么科目
  • 发票已认证开票方未报税要怎么作废?
  • 二手房个人所得税和增值税
  • 增值税发票小数点后面小数不能打印
  • 高新企业职工食堂承包方案
  • 补付工程款的分录
  • 大学食堂外包的优点与缺点
  • 安全系统不起作用或未正确安装 cad2016
  • 王者荣耀如何充值退款
  • 去掉右键菜单中的快捷键
  • 公司收到利息怎么记账
  • 报税残疾人保障金怎么算
  • php statement
  • 返点收入怎么会计分录
  • 入门易学
  • php递归实现1到100的和
  • 收到车险发票含增值税吗
  • php 文件管理系统
  • php 带cookie post
  • 月底结转汇兑损益
  • 2023前端面试题目100及最佳答案
  • tomcat-juli
  • linux脚本文件编写
  • 货币盘盈盘亏账怎么算
  • 什么是企业管理的首要职能
  • 销售蔬菜企业怎么做
  • 利润分配财务管理
  • pos机到账流水算个人收入吗
  • 小规模纳税人成本含税吗
  • 未分配利润可以挂多久
  • 捐赠支出入账
  • 折扣如何做账
  • 建筑工程拨款申请模板
  • 发票已经认证是什么意思
  • 管理费用和销售费用都有职工薪酬
  • 金税盘未清盘怎么处理
  • 电子发票开具流程?
  • 房地产的预付账款
  • 投资回报怎么写
  • 关闭 windows
  • linux 添加ipv6路由
  • xp系统开机后不停重启
  • 360卫士重装电脑够进入不了桌面
  • 安装xp后win7不能用怎么办
  • win8的ie浏览器在哪里
  • Red Hat Enterprise Linux AS release 4 apache+MYsql+PHP的安装和优化
  • linux 进入命令
  • linux升级系统版本
  • linux就要这样学
  • [置顶] 此外,车牌号:458143(懂得都懂[吃瓜])
  • 函数里面声明函数
  • html中href,src区别
  • 克隆本机系统
  • bat脚本%1
  • jquery.validate提示错误信息位置方法
  • python正则批量替换字符串
  • javascript运用
  • python守护线程与非守护线程
  • python3模拟登录
  • 租车费为何不能抵扣
  • 拟录用是正式录用吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设