// Update is called once per frame void Update() { UnitySingleTouchAction touchAction = SceneShare.Instance.GetInput().GetSingleTouchAction(); UnitySingleTouchDragAction dragAction = SceneShare.Instance.GetInput().GetSingleTouchDragAction(); touchAction.Update(); dragAction.Update(); //touchAction.PrintDifference(); dragAction.PrintDifference(); //if (dragAction.IsDragging()) { // MhCommon.Print("dragging"); //} //if (dragAction.IsDragBegan()) { // MhCommon.Print("dragBegan"); //} //if (touchAction.IsDragging()) { //MhCommon.Print("dragging"); //Vector3 sp = touchAction.GetDragEndPosition(); //Vector3 sp = touchAction.GetDragCurrentPosition(); //MhCommon.Print("x = " + sp.x + " y = " + sp.y + " z = " + sp.z); //} }
/// <summary> /// ステータス更新処理 /// </summary> /// <param name="elapsedTime">前回実行からの経過時間</param> /// <param name="touchAction">タッチ入力クラス</param> /// <param name="dragAction">ドラッグ入力クラス</param> public void Update(float elapsedTime, UnitySingleTouchAction touchAction, UnitySingleTouchDragAction dragAction) { StgPlayerAttackState.state state = current.Update(elapsedTime, touchAction, dragAction); if (state != currentState) { SetCurrentState(state); } }
/// <summary> /// 更新処理 /// </summary> /// <param name="elapsedTime">前回からの経過時間</param> /// <param name="touchAction">タッチ情報</param> /// <param name="dragAction">ドラッグ情報</param> public void Update(float elapsedTime, UnitySingleTouchAction touchAction, UnitySingleTouchDragAction dragAction) { // 一定時間ごとに攻撃 currentShootInterval -= elapsedTime; if (currentShootInterval <= 0.0f) { // 攻撃処理 ExecuteShoot(); // 攻撃再間隔設定 ResetInterval(); } }
// Update is called once per frame public override void Update() { UnitySingleTouchAction touchAction = SceneShare.Instance.GetInput().GetSingleTouchAction(); UnitySingleTouchDragAction dragAction = SceneShare.Instance.GetInput().GetSingleTouchDragAction(); touchAction.Update(); dragAction.Update(); // 移動処理 Move(); // 攻撃処理 Attack(); }
private void Attack() { Rigidbody2D rigidbody2D = GetComponent <Rigidbody2D>(); MhCommon.Assert(rigidbody2D != null, "StgPlayer::Attack() rigidbody2D null"); MhCommon.Assert(attack != null, "StgPlayer::Attack() StgPlayerAttack null"); UnitySingleTouchAction touchAction = SceneShare.Instance.GetInput().GetSingleTouchAction(); UnitySingleTouchDragAction dragAction = SceneShare.Instance.GetInput().GetSingleTouchDragAction(); attackNew.Update(Time.deltaTime, touchAction, dragAction); // 発射位置を設定 //attack.Update(); }
private void Move() { //UnitySingleTouchAction touchAction = SceneShare.Instance.GetInput().GetSingleTouchAction(); UnitySingleTouchDragAction dragAction = SceneShare.Instance.GetInput().GetSingleTouchDragAction(); //dragAction.PrintDifference(); if ((dragAction.IsDragMoved()) || (dragAction.IsDragStationary())) { // 前フレームとの差分からドラッグ移動を算出 Vector3 before = dragAction.GetApplicationDragBefore1FramePosition(); Vector3 current = dragAction.GetApplicationDragCurrentPosition(); Vector3 diffarence = current - before; if (!isDragRaw) { // 正規化+速度をかけ合わせてドラッグを反映 float speed = 9.0f; Vector2 direction = new Vector2(diffarence.x, diffarence.y).normalized; GetComponent <Rigidbody2D>().velocity = direction * speed; } else { // ほぼ無加工でドラッグを反映 Vector2 direction = new Vector2(diffarence.x, diffarence.y); GetComponent <Rigidbody2D>().velocity = direction; } } else { Vector2 direction = new Vector2(0, 0).normalized; GetComponent <Rigidbody2D>().velocity = direction; } /* * if (touchAction.IsTouchBegan()) { * float x = 0.0f; * float y = -0.2f; * float speed = 1.0f; * Vector2 direction = new Vector2(x, y).normalized; * GetComponent<Rigidbody2D>().velocity = direction * speed; * } */ }
public override state Update(float elapsedTime, UnitySingleTouchAction touchAction, UnitySingleTouchDragAction dragAction) { MhCommon.Assert(playerScript != null, "StgPlayerAttackPower5State::Update() playerScript null"); // 発射位置の設定 shoot.SetShootPosition(playerScript.GetShootPosition()); shoot.SetShootOffset(new Vector3(0.0f, 0.0f, 0.0f)); // 発射更新処理 shoot.Update(elapsedTime, touchAction, dragAction); return(state.Power6); }
/// <summary> /// 入力更新処理 /// </summary> /// <param name="elapsedTime">前回からの経過時間</param> /// <param name="touchAction">入力クラス</param> /// <param name="dragAction">ドラッグ入力クラス</param> /// <returns>次のステータス</returns> public virtual state Update(float elapsedTime, UnitySingleTouchAction touchAction, UnitySingleTouchDragAction dragAction) { return(state.Power1); }
public void Update(float elapsedTime, UnitySingleTouchAction touchAction, UnitySingleTouchDragAction dragAction) { attackStateContext.Update(elapsedTime, touchAction, dragAction); }
public InputSystem() { unitySingleTouchAction = new UnitySingleTouchAction(); unitySingleTouchDragAction = new UnitySingleTouchDragAction(); }