位置: 编程技术 - 正文

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

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

  • 增值税发票如何抵扣税款
  • 企业如何做增量
  • 钢铁租赁公司
  • 医院企业所得税怎么征收的
  • 个体户城建税优惠政策
  • 企业亏损法定盈亏是什么
  • 出口产品报关单上保险费与实际不符可以丿退税吗
  • 增值税一般纳税人证明文件
  • 地方教育费附加的会计分录
  • 应对税务检查工作总结
  • 售后返租税收规定
  • 建筑公司收取的劳务费和挂靠管理费有区别吗?
  • 支票可以自己给自己开吗
  • 公司注销固定资产如何处理
  • 长期待摊费用多少钱
  • 税控盘服务费申报是在哪里填写
  • 设备安装公司如何经营
  • linux转换windows
  • mac桌面怎么整理
  • 银行 环保
  • 独立账户负债核算内容
  • 开发票时的数据可以四舍五入吗
  • 超市一般纳税人账务处理
  • 小宝宝耸肩膀缩脖子
  • window11安装失败
  • php自学
  • 营改增后房地产企业账务处理
  • php sql 教程
  • 营改增之前没有增值税吗
  • 出口退税如何办退税手续
  • 通知单位发放过节补助怎么说
  • 教案的近义词是什么
  • php js
  • 什么样的费用算研发费用
  • 关税对企业有什么影响
  • 外商独资企业资本金要求
  • 增值税的滞纳金税率
  • 金税盘密码和口令是多少
  • 影响公司股利分成的因素
  • 扣缴义务人如何登录电子税务局
  • mysql 死锁处理
  • sql server新增数据
  • sql中循环语句怎么写
  • sql语句批量添加数据
  • 出口单证不全如何申报退税
  • 非货币性资产交换以公允价值为基础进行计量
  • 当月进项税额大但是也要交增值税吗
  • 转出未交增值税借方余额怎么处理
  • 电费应收和实收怎么算
  • 出现销项负数
  • 投标保证金会计科目
  • 流动资产周转率和总资产周转率
  • 应收账款和预收账款都是企业的流动资产
  • 企业退休职工取暖费
  • 无形资产及其他资产包括哪些科目
  • 报销单粘贴单
  • 新成立的企业可以申请一般纳税人吗
  • 开具销项负数发票会计分录
  • 安装完成后如何检验安装的部分是否符合安装工艺
  • sql中case when的用法
  • 数据库账号密码怎么修改
  • linux的安装
  • openbsd6.8
  • 虚拟主机管理平台
  • hyper-v搭建
  • windows 8 build
  • unity alembic
  • 基于javascript的毕业设计
  • node chain
  • c调用nodejs
  • shell脚本用法
  • cmd命令format
  • python 源码解析
  • 深入理解javascript特性
  • javascript基础题目
  • 税控盘监控信息写盘失败时钟校准
  • 云南省税务局电话
  • 贵州网上办税服务厅登录
  • 计算本月应交消费税分录
  • 国地税合并6月15日挂牌
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设