当前位置: 首页 > news >正文

编辑网站在线注册系统建筑模板有几种

编辑网站在线注册系统,建筑模板有几种,丽水微信网站建设报价,修改WordPress登陆一.StateMachineBehaviour概述 状态机行为是一类特殊脚本。与将常规 Unity 脚本 (MonoBehaviour) 附加到单个游戏对象类似,您可以将 StateMachineBehaviour 脚本附加到状态机中的单个状态。因此可编写一些将在状态机进入、退出或保持在特定状态时执行的代码。这意味…

一.StateMachineBehaviour概述

状态机行为是一类特殊脚本。与将常规 Unity 脚本 (MonoBehaviour) 附加到单个游戏对象类似,您可以将 StateMachineBehaviour 脚本附加到状态机中的单个状态。因此可编写一些将在状态机进入、退出或保持在特定状态时执行的代码。这意味着您不必编写自己的逻辑来测试和检测状态的变化。

参考官方手册:状态机行为

二.StateMachineBehaviour脚本创建

如上图所示,选中状态节点,点击Add Behavior按钮创建脚本后,双击进入脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class attackState : StateMachineBehaviour
{// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state//override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)//{//    //}// OnStateUpdate is called on each Update frame between OnStateEnter and OnStateExit callbacks//override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)//{//    //}// OnStateExit is called when a transition ends and the state machine finishes evaluating this state//override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)//{//    //}// OnStateMove is called right after Animator.OnAnimatorMove()//override public void OnStateMove(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)//{//    // Implement code that processes and affects root motion//}// OnStateIK is called right after Animator.OnAnimatorIK()//override public void OnStateIK(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)//{//    // Implement code that sets up animation IK (inverse kinematics)//}
}

脚本继承StateMachineBehaviour并有五个虚方法,比较常用的是前面3个

三.案例演示

Demo说明:模型初始为idle状态,按下Q播放攻击动作,进入动作,动作进行中,动作结束时引擎会自动调用OnStateEnter,OnStateUpdate,OnStateExit

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class attackState : StateMachineBehaviour
{public int m_enterNum = 0;override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){m_enterNum++;Debug.Log(string.Format("OnStateEnter, m_enterNum = {0}", m_enterNum));}override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){Debug.Log("OnStateUpdate");}override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex){Debug.Log("OnStateExit");}}

事件方法参数说明:

  • animator:脚本所在状态节点所在的animator组件
  • AnimatorStateInfo:以get属性为主的结构体
  • layerIndex:脚本所在状态节点的动画层索引

下面代码展示MonoBehaviour访问StateMachineBehaviour

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Robot : MonoBehaviour
{private Animator m_animator;private attackState m_attackState;void Start(){m_animator = GetComponent<Animator>();m_attackState = m_animator.GetBehaviour<attackState>();}void Update(){if (Input.GetKeyDown(KeyCode.Q)){m_animator.SetTrigger("attack");Debug.Log(string.Format("进入attack状态之前 m_enterNum = {0}", m_attackState.m_enterNum));}}
}

http://www.yayakq.cn/news/197858/

相关文章:

  • 企业网站建站源码cms站群管理系统
  • 本地wordpress建站网站开发及服务合同模板
  • 网站建设需要哪些功能建设银行网站源码
  • 用哪个语言做网站比较好网站做压测
  • 全媒体门户网站建设方案优秀网站设计案例分析
  • nginx 网站开发学校网站备案前置审批
  • 长沙建网站要多少钱申请免费网站域名
  • 网站开发字体wordpress文章标题设为标签
  • 网站建设推广资讯wordpress无法管理站点
  • 建站小程序编辑器闪亮登场做优化的网站
  • 襄阳做网站的公司有哪些前端面试题2023
  • wordpress 网站备案号网页在线制作网站源码
  • 电商网站建设技术南头专业的网站建设公司
  • .tel域名能存放网站吗百度网站评价
  • 网站建设多少钱个人网站建设怎么设置留言界面
  • 做视频网站用什么语言服务哪家好中医小程序定制
  • 邯郸网站设计在哪里wordpress版权信息修改
  • 网站建设详情报价wordpress标签的调用代码
  • 烟台网站建设咨询花园之家wordpress
  • 绿色调网站东莞建设网站官网登录
  • icp备案网站名称更改商标设计网软件
  • 做效果图有哪些网站网站优化外包多少钱
  • 东莞网站建设怎么做做网站 excel
  • 网站建设中搜索引擎做图片素材的网站有哪些
  • 2024免费网站推广大全项目计划书ppt模板免费
  • 内部建设网站需要什么条件如何选择网站改版公司
  • 小荷特卖的网站谁做的做二手房比较好的网站有哪些
  • 网站项目建设周期制作手机app用什么语言
  • 网站建设深圳给原码青岛东橙网站建设
  • 旅行社电商网站怎么做辽宁建设工程信息网专家库官网