常に同じオブジェクトの方を向かせる

投稿者: | 2020-03-20

動くキャラクターなどに複数のレイを当てたいとき、的となる複数の子オブジェクトをそのキャラクターに付けて、それに向かってレイを飛ばすとすると、キャラクターの回転に沿って、的のオブジェクトも回転します。


このとき、例えば上の画像の様に、2つの的を常にレイが飛んでくる場所と同じ距離で並ぶようにしてみました。

まずCubeがキャラクターなどの本体だとして、レイを飛ばす的として、2つのSphereを置きました。

2つのSphereは空のゲームオブジェクトの子オブジェクトになっていて、その空のオブジェクトはCubeの子オブジェクトです。

スタンダードアセットのFPSコントローラにスクリプトを付けました。

  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4.  
  5.  
  6. public class PlayerScript : MonoBehaviour
  7. {
  8. public GameObject target0;
  9. public GameObject target1;
  10. public GameObject target2;
  11.  
  12. // Start is called before the first frame update
  13. void Start()
  14. {
  15.  
  16. }
  17.  
  18. // Update is called once per frame
  19. void Update()
  20. {
  21.  
  22. target0.transform.LookAt(transform);
  23.  
  24. Debug.DrawRay(transform.position, target1.transform.position - transform.position, Color.red);
  25. Debug.DrawRay(transform.position, target2.transform.position - transform.position, Color.blue);
  26. }
  27. }

LookAtメソッドを使って、2つの的の親オブジェクトである空のゲームオブジェクトが常にプレイヤーの方を向くようにしています。

コメントを残す

メールアドレスが公開されることはありません。