Photon Quantum3 GameObjectからEntityを取得

CameraからRayを飛ばしてEntityRefを取得しようと思います。
EntityをGameObjectから取得する際はQuantumからEntityを生成した時に自動でアタッチされるQuantumEntityViewコンポーネントから取得します。

手順

指定したオブジェクトからEntityを自由に取得するためにMain CameraからRayを飛ばしてGameObjectを取得し、そのObjectからQuantumEntityViewコンポーネントを取得、.EntityからEntityRefを取得

コード

// 取得したEntityを格納する変数
EntityRef entity;

// Rayをカメラから飛ばす
var ray = Camera.main.ScreenPointToRay(Input.mousePosiiton);

// Rayにヒットするオブジェクトがあるか調べる
if (Physics.Raycast(ray, out var hit, 100))
{
    // ヒットしたオブジェクトの指定コンポーネントを取得する
    if (hit.collider.TryGetComopnent<QuantumEntityView>(out var qev))
    {
        // 取得したコンポーネントから.EntityでEntityRefを取得する
        entity = qev.Entity;
        UnityEngine.Debug.Log($"取得されたEntity:{qev.name}”);
    }else{
        UnityEngine.Debug.LogWarning("QuantumEntityViewがアッタッチされていない");
    }
}else{
    UnityEngine.Debug.LogWarning("Rayにヒットするオブジェクトが無い");
}

コメント

タイトルとURLをコピーしました