あなたの世界を作りなさい
スクリプティング

レイキャスト

3min
raycast関数は、unityのシーン内でオブジェクトを効率的に見つけるために使用できます。 unityプログラミングにおけるraycastは、シーン内の位置から発射され、コライダーに衝突するまで飛ぶレーザービームの一種です。 コライダーに衝突すると、衝突したオブジェクトの情報(raycasthit)とシーン内の位置が返されます。 unity raycastの詳細については、unityガイドを確認してください。 📘 unity raycast https //docs unity3d com/manual/camerarays html https //docs unity3d com/manual/camerarays html unity raycastは、次の手順を完了することでzepeto scriptで使用できます: まず、raycast関連のクラスをインポートします。 import { physics, raycasthit } from 'unityengine'; 以下はraycast関数のサンプルコードです: raycast import { zepetoscriptbehaviour } from 'zepeto script'; import { physics, raycasthit, input, camera } from 'unityengine'; export default class raycastsample extends zepetoscriptbehaviour { update() { this mousecontrol(); } mousecontrol() { if (input getmousebuttondown(0)) { let ray = camera main screenpointtoray(input mouseposition); // raycasthit情報を出力パラメータとして保持するためには、$refタグでラップする必要があります。 // out修飾子をパラメータとして必要とするため、オブジェクトを実際に作成せずに参照を作成します。 let ref = $ref\<raycasthit>(); if (physics raycast(ray, ref, 1000)) { // 返されたraycastヒットデータを確認するには、$unrefを使用して参照をアンラップすることを忘れないでください。 let hitinfo = $unref(ref); console log(`ヒットを検出!`); console log(`hitinfo collider name ${hitinfo collider name}`); } else { console log(`衝突の検出に失敗しました`); } } } } 📘 スクリプトで使用されている$refと$unrefの説明については、以下のガイドを参照してください。 \[ $ref と $unref docid\ ogpm67 6t1j1cje5 wrgf ] テストコードを通じて、シーン内のキューブをマウスポインタでクリックすることでオブジェクトの情報が出力されることを確認できます。 zepeto scriptで使用されているraycast apiに関する詳細情報は、以下のリンクにアクセスしてください。 📘 raycast https //docs unity3d com/scriptreference/physics raycast html https //docs unity3d com/scriptreference/physics raycast html