私は以下のスクリプトを使って回転するプレーヤーを持っています。それは10でなく、20度でプレイヤーを回転させます(そして私は10が必要です)。理由を理解できません。 q
を押すと、1回だけ実行されます。スクリプトは必要以上にオブジェクトを回転させます
private UnityStandardAssets.Characters.FirstPerson.FirstPersonController firstPersonController;
public GameObject player;
void Start()
{
firstPersonController = player.GetComponent<UnityStandardAssets.Characters.FirstPerson.FirstPersonController>();
}
void Update()
{
StartCoroutine("RotatePlayerDelay");
}
IEnumerator RotatePlayerDelay()
{
Debug.Log("1");
firstPersonController.m_MouseLook.myAngle += 10; // here I have +20, not +10
yield return new WaitForSeconds(0.005f);
firstPersonController.m_MouseLook.myAngle = 0;
Debug.Log("2");
}
P.S.それがなければ永遠に回転するので、コルーチンが必要です
それは答えを与えるためにやや難しいですFirstPersonControllerクラスやMouseLookクラスを知らなくても。私はあなたがそのためにコルーチンを必要としないと確信していますが、むしろ "isAiming"や "isFacingTarget"のようなブール値です。ところで、コルーチンは、望ましくないようなフレームごとに開始されます。 – Wipster