位置: 编程技术 - 正文

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年旅游免费
  • 库存盘亏的原因
  • 出口货物预收账款会计分录
  • 个贷系统平账户
  • 委托加工模具的费用计入什么科目?
  • 销售自产自销的产品要交税吗?
  • 注册地在境外的公司需要纳税么
  • 企业收取客户利润违法吗
  • 小规模纳税人的税率是多少(含国、地税)
  • 数字证书费
  • 自然灾害造成的存货净损失计入什么科目
  • 应纳税所得额怎么理解
  • 销售折扣与折让影响应收账款周转率吗
  • 资产负债表待摊费用出现负数
  • 代开专票不满10万的要交附加吗?
  • 当月开发票收到货款会计应该以什么为做账凭证?
  • mac book air文件夹怎么重命名
  • 企业销售应如何做
  • php怎么做网页
  • 然后用u盘重装系统
  • Program Files(x86)是什么意思
  • wamp设置
  • 预收房屋租金
  • 长期应收款属于流动资产吗
  • 资产负债表的资产方能够提供的信息包括
  • 基于php的系统
  • php验证系统
  • 增值税专用发票进项
  • 跨年的增值税专票怎么开
  • 公司逾期交税,后期补上有何后果
  • 小规模纳税人三减一政策
  • 算税负是含税还是不含税
  • sql server功能介绍
  • MySQL读写分离中间件
  • 免税收入怎么做会计分录
  • 承兑汇票收据开什么发票
  • 建安业一般纳税人税率是多少
  • 在建工程进项税额转出会计分录
  • 半成品仓库的管理办法
  • 其他应收款属于什么会计要素
  • 加油吃饭开的发票抵什么税
  • 发票金额大于付款金额可以报销吗
  • 久期缺口计算公式解析
  • 重要性水平如何判断
  • 总分类账的依据
  • 会计账簿按外表可分为
  • win10预览版21277
  • 打开优酷视频播放
  • SSDP Discovery Service 是什么可以禁用吗
  • win8应用显示错误
  • mac 查看当前用户
  • win7大小写提示图标
  • win8 cmd在哪
  • pdf文件下载后打不开
  • nodejs调用go
  • css中div怎么用
  • 可以在windows环境下双击而直接放映
  • javascript编程语言
  • jquery validate表单校验长度
  • 手机截取电脑屏幕
  • 利用html css javascript做一个网页
  • 沈阳市税务局最新公告
  • 车辆购置税是国税吗
  • 国外寄东西到国内要身份证号码吗
  • 水费不用交吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设