わからないこと
private void OnTriggerStay(Collider other) { if (other.gameObject.CompareTag("Player")) { ZombieMove.EnemyState state = zombieMove.GetState(); Debug.DrawLine(transform.position + Vector3.up, other.transform.position + Vector3.up, Color.yellow); if((state == ZombieMove.EnemyState.Wait || state == ZombieMove.EnemyState.Walk) && !Physics.Linecast(transform.position + Vector3.up,other.transform.position + Vector3.up,obstacleLayer)) { zombieMove.SetState(ZombieMove.EnemyState.Chase, other.transform); } else if(Physics.Linecast(transform.position + Vector3.up, other.transform.position + Vector3.up, obstacleLayer)) { zombieMove.SetState(ZombieMove.EnemyState.Wait); } } }
「Unityで主人公が敵から隠れた時は追いかけないようにする」というサイトを見ながら簡単なAIの作成の勉強をしています。その中で、一つ疑問に思ったことがあります。なぜ、transform.positionにVector3.upを足す必要があるのでしょうか?
以前、Vector3.upはVector3(0f,1f,0f)と同じ意味だという事を聞いたことがあります。そう考えると、現在位置のy軸に1を足しただけでは足さなかった場合とさほど変わらないのではないかと思いました。これを足すことによって何かメリットがあるのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。