using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BoxCollider : MonoBehaviour {
private float degrees = 180f;
public float rotateSpeed = 10f;
private GameObject character;
private bool entered = false;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
if (entered == true)
{
character.transform.rotation = Quaternion.Slerp(character.transform.rotation, Quaternion.Euler(degrees, 0, degrees), rotateSpeed * Time.deltaTime);
}
}
void OnTriggerEnter(Collider c)
{
character = c.gameObject;
entered = true;
}
}
初めてキャラクターが壁に衝突しました(空のゲームオブジェクトとボックスコライダー)。これは、入力された文字を真に変更し、文字を回転しています。文字がボックスに衝突したときに論理的な方法でbool変数を使用するにはどうすればよいですか?
しかし、回転した後、他の壁に衝突して、他の壁に到達した上で、私は、ブレークポイントを使用し、それが一部になっています:それはアップデート機能になってきたときに
void OnTriggerEnter(Collider c)
{
character = c.gameObject;
entered = true;
}
しかし:
if (entered == true)
この行にブレークポイントを使用し、入力はfalseです。 理由がわかりません。
最初は壁と衝突しますが、2番目の壁では壁と衝突しますが、それは間違いです。
私はこのブールを使用している理由は、壁(ボックス)を衝突させるときだけ、キャラクターを回転させることです。
地形の周りに4つの空のgameobjectsがあり、それぞれにボックスコライダーistriggerがオンに設定されており、このスクリプトもすべてのゲームオブジェクトに関連付けられています。
最初に入力した理由が2度目に間違っていることがわかりません。
確かに正しいエンティティが表示されているかデバッグしていますか? (多くの場合、ブレークポイントは誤解を招かない限り混乱します。) – RuDevel