位置: 编程技术 - 正文

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

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

  • 进项税额转出的例题
  • 一般纳税人销售货物税率
  • 工业增加值怎么找
  • 独立核算与非独立核算区别
  • 税盘连接服务器失败130008
  • 初次购买金税盘一般多少钱
  • 油费补助记什么科目
  • 非同一控制下的企业合并采用成本法
  • 固定资产的维护费计入什么科目
  • 作为一个财务 月末要做什么
  • 购买商标权税率多少
  • 退回投标保证金分录
  • 由于生产工艺改进引起建筑物设备陈旧
  • 产品销售员
  • 收到外币货款的汇率
  • 不动产有法律效力吗
  • 小微 小型微利
  • 附加税退税如何做账
  • 营改增政策解读
  • 税务没有核定印花税
  • 电子发票可以开专票吗
  • 小规模付增值税怎么做账
  • 企业清算期间账务怎么做
  • 原材料暂估入库怎么做账
  • 路由器和光猫上的无线网络名称一样吗
  • xp从做系统
  • php部署在什么服务器
  • 赡养人 被赡养人
  • 发生坏账计入
  • 工业企业汽车发生费用处理
  • 公司中奖要交税吗
  • 货物运输业增值税专用发票
  • 转让存货属于什么收入
  • 变动成本法计算营业利润
  • 增值税附加税必须交吗
  • waffe
  • vue区别
  • 气温和降水空间变化一月平均气温规律是什么原因是什么
  • php 密码
  • python字符串字面量有哪4种
  • ps怎么把皮肤变红润
  • 租入商铺
  • 保洁公司的税率是多少
  • 税率开成0了怎么办
  • 公司福利费用会计分录
  • 仓库出入库账本怎么做
  • 上月结余金额是什么的
  • sql server 2005安装失败
  • mysql存储语句
  • 企业返聘退休人员需要交社保吗
  • 代缴社保费怎么做分录
  • 固定资产未转固属于什么问题
  • 行政单位资产报告范文
  • 行政单位应缴财政税金
  • 抵账协议上可以签字吗
  • 多交税款账务怎么处理
  • 应纳税所得额计算公式excel
  • 研发费用的会计处理对公司经营成果的影响
  • 账务处理有哪几种
  • 关于小规模纳税人2023年的政策
  • 可交换债券发行方的会计处理
  • 当你想弥补想还清
  • 合同资产百度百科
  • 企业的源头
  • 结转销售成本怎么操作
  • cmos是一种什么芯片
  • win7如何创建文件夹
  • airplay macbook
  • linux统计文件中每个单词出现的次数
  • win10系统自带浏览器在哪里
  • Linux+Apache+PHP+MySQL+Zend Optimizer+PHPMyAdmin
  • opencv轻松入门
  • unity gui
  • JavaScript中的复杂数据类型又称为
  • jQuery实现textarea自动增长宽高的方法
  • javascript闭包的作用
  • python simple
  • 一个月可不可以瘦十斤
  • 厦门市税务局电话
  • 办理跨区域事项报验
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设