facebook twitter hatena line email

「Unity/3d/向き」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ターゲットの向きを向く)
(こちらを向かせる)
行3: 行3:
  
 
==こちらを向かせる==
 
==こちらを向かせる==
 +
注意:負荷が高いかも・・
 +
 
全体処理を行うLookAtScene.cs
 
全体処理を行うLookAtScene.cs
 
<pre>
 
<pre>

2022年11月23日 (水) 04:41時点における版

ターゲットの向きを向く

enemyObj.transform.LookAt(playerObj.transform);

こちらを向かせる

注意:負荷が高いかも・・

全体処理を行うLookAtScene.cs

public class LookAtScene : MonoBehaviour
{
    [SerializeField] GameObject charaCubePrefab;
    [SerializeField] GameObject player;
    void Start()
    {
        for (int i = 0; i < 10; i++)
        {
            GameObject charaCube = Instantiate(charaCubePrefab);
            charaCube.transform.localPosition = new Vector3(1f * i - 2.5f, Random.RandomRange(-5f, 5f), Random.RandomRange(-1f, 1f));
            charaCube.GetComponent<CharaCubeController>().player = player;
        }
    }
}

CharaCubeのPrefabにつけたCharaCubeController.cs

public class CharaCubeController : MonoBehaviour
{
    public GameObject player;
    
    void Update()
    {
        var dir = transform.position - player.transform.position;
        var lookAtRotation = Quaternion.LookRotation(dir, Vector3.up);
        var offsetRotation = Quaternion.FromToRotation(Vector3.forward, Vector3.forward);
        transform.rotation = lookAtRotation * offsetRotation;
    }
}

参考:https://nekojara.city/unity-look-at