public override IPlayerState GetNextState(PlayerComponent arg_player) { if (arg_player.m_inputHandle.m_reach) { return(new PlayerReachState(this)); } if (arg_player.m_isGrounded) { return(new OnPlayerGroundedState().GetNextState(arg_player)); } if (arg_player.m_inputHandle.m_run) { if (m_directionBuf != arg_player.m_direction) { return(new PlayerAirRunState(arg_player.m_direction)); } } else { return(new PlayerAirIdleState()); } return(null); }
public virtual IPlayerState GetNextState(PlayerComponent arg_player) { if (arg_player.m_inputHandle.m_run) { return(new PlayerAirRunState(arg_player.m_direction)); } return(new PlayerAirIdleState()); }
public virtual IPlayerState GetNextState(PlayerComponent arg_player) { if (!arg_player.m_inputHandle.m_reach) { return(m_stateBuf); } return(null); }
public override void OnGraspedStay(PlayerComponent arg_player) { this.m_transform.position = arg_player.Arm.GetTopPosition(); if (arg_player.m_currentState.GetType() != typeof(PlayerReachState)) { arg_player.m_rigidbody.isKinematic = false; } }
/// <summary> /// ステート開始時 /// </summary> /// <param name="arg_player"></param> public void OnEnter(PlayerComponent arg_player) { m_velocityBuf = arg_player.m_rigidbody.velocity; arg_player.m_rigidbody.isKinematic = true; arg_player.m_rigidbody.velocity = Vector2.zero; m_directionBuf = arg_player.m_direction; arg_player.Arm.StartLengthen(); }
public override void OnGraspedEnter(PlayerComponent arg_player) { #if DEVELOP Debug.Log("Grasped : Enter"); #endif base.OnGraspedEnter(arg_player); arg_player.Arm.m_shorten = true; m_direction = ((Vector2)arg_player.Arm.m_transform.position - arg_player.Arm.m_targetPosition).normalized; arg_player.m_rigidbody.isKinematic = true; }
public override void OnGraspedExit(PlayerComponent arg_player) { #if DEVELOP Debug.Log("Grasped : Exit"); #endif base.OnGraspedExit(arg_player); arg_player.m_rigidbody.isKinematic = false; arg_player.m_inputHandle.m_reach = false; }
public void PlayerGenerate(PlayerComponent arg_player) { foreach (StartPoint point in m_startPoints) { if (point.m_id == START_POINT_ID) { point.m_isActive = true; point.Generate(arg_player); } } }
/// <summary> /// ステート中の更新 /// </summary> /// <param name="arg_player"></param> public void OnUpdate(PlayerComponent arg_player) { arg_player.m_transform.position = arg_player.Arm.GetBottomPosition(); arg_player.m_direction = m_directionBuf; if (!arg_player.Arm.m_isActive) { arg_player.m_inputHandle.m_reach = false; return; } }
/// <summary> /// ステート終了時 /// </summary> /// <param name="arg_player"></param> public void OnExit(PlayerComponent arg_player) { if (!arg_player.Hand.m_graspingItem) { arg_player.m_rigidbody.isKinematic = false; } if (m_velocityBuf.y > 0) { m_velocityBuf.y = 0; } arg_player.m_rigidbody.velocity = m_velocityBuf; }
/// <summary> /// ステート中の更新 /// </summary> /// <param name="arg_player"></param> public override void OnUpdate(PlayerComponent arg_player) { if (Physics2D.BoxCast(arg_player.m_transform.position, arg_player.m_collider.size, 0, new Vector2((int)arg_player.m_direction, 0), 0.1f, 1 << LayerMask.NameToLayer("Ground"))) { return; } arg_player.m_transform.position += new Vector3() { x = arg_player.m_speed * (int)arg_player.m_direction, y = 0, z = 0 }; }
public override void OnGraspedStay(PlayerComponent arg_player) { #if DEVELOP Debug.Log("Grasped : Update"); #endif ArmComponent arm = arg_player.Arm; if (arm.m_lengthBuf.Count > 0) { arm.m_transform.position = m_transform.position + (m_direction * arm.m_lengthBuf.Peek()); } else { arm.m_transform.position = m_transform.position; arg_player.gameObject.transform.position = arm.m_transform.position = transform.position; } arg_player.m_rigidbody.velocity = Vector2.zero; }
public void SetOwner(PlayerComponent arg_player) { m_owner = arg_player; }
/// <summary> /// ステート終了時 /// </summary> /// <param name="arg_player"></param> public override void OnExit(PlayerComponent arg_player) { }
/// <summary> /// ステート開始時 /// </summary> /// <param name="arg_player"></param> public override void OnEnter(PlayerComponent arg_player) { arg_player.m_direction = m_directionBuf; }
public virtual IPlayerState GetNextState(PlayerComponent arg_player) { return(new PlayerGroundedIdleState()); }
/// <summary> /// ステート中の更新 /// </summary> /// <param name="arg_player"></param> public override void OnUpdate(PlayerComponent arg_player) { }
/// <summary> /// ステート中の更新 /// </summary> /// <param name="arg_player"></param> public virtual void OnUpdate(PlayerComponent arg_player) { }
public virtual IPlayerState GetNextState(PlayerComponent arg_player) { return(null); }
public void Initialize(PlayerComponent arg_player) { m_xScaleBuf = m_transform.localScale.x; }
/// <summary> /// 掴まれていた状態から離された時の処理 /// ここでは一度だけ呼ばせること /// </summary> /// <param name="arg_player"></param> public virtual void OnGraspedExit(PlayerComponent arg_player) { //TODO:掴まれているの処理 //Armを縮めるのか、固定なのか、自分もついていくのか //また、持ち運ばれるのか }
public virtual void Generate(PlayerComponent arg_player) { arg_player.m_transform.position = this.transform.position; }
public override void OnGraspedExit(PlayerComponent arg_player) { arg_player.m_inputHandle.m_reach = false; }
public virtual void Initialize(PlayerComponent arg_player) { }
/// <summary> /// ステート開始時 /// </summary> /// <param name="arg_player"></param> public virtual void OnEnter(PlayerComponent arg_player) { }
public override void OnGraspedStay(PlayerComponent arg_player) { }
/// <summary> /// ステート終了時 /// </summary> /// <param name="arg_player"></param> public virtual void OnExit(PlayerComponent arg_player) { }
public override void OnGraspedExit(PlayerComponent arg_player) { arg_player.Arm.m_shorten = true; }
public override void OnGraspedEnter(PlayerComponent arg_player) { }
public override IPlayerState GetNextState(PlayerComponent arg_player) { return(new OnPlayerAirState().GetNextState(arg_player)); }