(スクリプト)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TankMovement2 : MonoBehaviour
{
private int clickCount = 0;
public float speed = 5;
private Rigidbody rb;
private float movementInputValue;
private void Start()
{
rb = GetComponent<Rigidbody>();
}
void Update()
{
if(Input.GetKeyDown(KeyCode.W))
{
clickCount += 1;
Invoke("Reset", 0.3f);
}
if(Input.GetKeyUp(KeyCode.W)) // Wキーから指を離したら速度リセット
{
speed = 5;
}
movementInputValue = Input.GetAxis("Vertical");
Vector3 movement = transform.forward * movementInputValue * speed * Time.deltaTime;
rb.MovePosition(rb.position + movement);
}
void Reset()
{
if(clickCount != 2)
{
clickCount = 0;
return;
}
else // clickCountが2の時(0.3秒以内にWキーを2回押した時)
{
clickCount = 0;
print("ダブルクリック成功。速度2倍");
speed = 10;
}
}
}
(実行結果)
- Wキーのダブルクリックで速度が2倍になる。
- Wキーから指を離した瞬間、速度が元に戻れば成功です。