تشخیص آبجکت

 با استفاده از دستور ScreenPointToRay از کامپوننت دوربین فعال در بازی، می توان یک Ray (ماهیتی مانند لیزر که برای اعمالی مثل تیر اندازی از آن استفاده می‌شود) را بر اساس صفحه نمایش (Screen) ساخت که در پارامتر ورودی خود جهت این Ray درخواست می شود. بطور مثال می خواهیم آبجکتی که اشاره گر ماوس روی آن قرار گرفته است را شناسایی کنیم، پس از جهت قرار گیری ماوس (mousePosition) نسبت به صفحه استفاده می کنیم. به طور کلی دستور زیر یک لیزر را بر اساس آنچه در صفحه نمایش داده شده است، از مبدا به سمت محل قرارگیری ماوس تعریف و سپس در دستور بعدی (با استفاده از کلاس Physics) ارسال می کند.

;Ray ray = Camera.main.ScreenPointToRay( Input.mousePosition )
;RaycastHit hit

… } if( Physics.Raycast( ray, out hit, 100 ) )

متغیر hit نیز برای محاسبه محل برخورد لیزر (ray) با اجسام دیگر تعریف و در دستور Physics مقدار دهی می شود.

لازم به ذکر است که روش دیگر برای بدست آوردن آبجکتی که روی آن کلیک می شود، استفاده از رویدادهای ماوس است. رویدادهایی مثل OnMouseUp و OnMouseDown که به ترتیب با کلیک و رها کردن آبجکت اجرا می شوند.

منبع: UnityLearning @