本文简单介绍如何基于FSM有限状态机实现Enemies AI,首先定义敌人的AI逻辑:默认状态下Enemy为巡逻状态,有...
函数定义:public T[] GetBehaviours(); 代码示例: using UnityEngine; public class SlideBehaviour : StateMachineBehaviour { public bool fastBreath; public override void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { animator.SetBool("FastBreath", fastBreath); } } using...
public voidSetBool(intid, boolvalue); 参数 name参数名称。 id参数 ID。 value新的参数值。 描述 设置给定布尔参数的值。 通过脚本使用 Animator.SetBool 将布尔值传递给。 用于触发动画器状态间的过渡。例如,通过将“alive”布尔值设置为 false 来触发死亡动画。有关设置动画器的更多信息,请参阅动画。
privatevoid_Move(intdic)//dic代表面向方向,左为-1,右为1{if(!_isDown)//判断是否为下蹲状态{_rigidbody.velocity=newVector2(dic*_moveSpeed,_rigidbody.velocity.y);//直接用rigidbody.velocity赋予角色速度_animator.SetBool("IsWalk",true);//触发行走动画_isWalking=true;}//当前进方向与面向方向不一...
public class BreathBehaviour : StateMachineBehaviour { public bool fastBreath; // OnStateUpdate is called at each Update frame between OnStateEnter and OnStateExit callback override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { animator.SetBool("Fast...
animator.SetFloat(floatHash,Input.GetAxis("Horizontal"));//获取设置Int类型参数animator.GetInteger(intHash);animator.SetInteger(intHash,Number);//获取设置Bool类型参数animator.GetBool(boolHash);animator.SetBool(boolHash,true/false);//触发,取消触发Trigger的方法animator.SetTrigger(triggerHash);animator....
_animator.SetBool("IsDown", isDown); _isDown = isDown; if(_isJump) //跳跃时下蹲无效 { return; } if(isDown) //下蹲时停止移动 { _StopMove(); } } 效果如下(看我上下鬼畜!): 4.角色冲刺 角色冲刺时要注意是不受重力影响的,所以在角色处于冲刺状态时将其重力影响设置为0,冲刺结束后再设置回...
animator.SetBool("Dead", true);//新系统 animator.SetTrigger("Walk");//新系统 8、控制相机跟随主角的移动: 给相机添加一个FllowPlayer.cs的脚本 private Transform player; private Vector3 offsetPosition;//位置偏移 void Start () { player = GameObject.FindGameObjectWithTag(Tags.player).transform; ...
首先需要使用Unity动画控制器的物体,需要被添加一个Animator组件 Animator组件是Unity已经实现的,一套基于状态机的动画控制器 之后我们需要创建出一个Animator Controller资源文件,并挂载到Animator上,作为状态机的配置文件 打开Animator 和 Animation 的编辑窗口
GetComponent<Animator>();pm=GetComponent<PlayerMovemont>();}publicvoidPlayerGetHit(intdamage){playerHealth-=damage;playerHP.value=playerHealth;if(playerHealth<=0){playerHealth=0;}}最后需要给角色加入头像以及等级显示,在角色脚本中申明一个Text组件,用来显示角色等级,当用Tostring方法将角色等级等于Text显示...