ScreenPointToRay?? apa lagi itu

Helo, helo….

Pada hari ini saya masih membahas tentang Component dari Camera, dan tepatnya hari ini saya membahas ScreenPointToRay.

Dalam dokumentasi Unity, ScreenPointToRay berfungsi untuk mengembalikan nilai “Ray”, dari posisi Camera ke posisi Screen yang di tunjuk. Sedikit membingunkan memang, tapi kita akan melakukan percobaan untuk mengetahui apa kegunaan fungsi tersebut.

1
2
3
4
5
6
7
8
9
10
11
12
13
using UnityEngine;
using System.Collections;

public class screnRay : MonoBehaviour {

void Start() {
}

void Update() {
Ray ray = this.GetComponent<Camera>().ScreenPointToRay(Input.mousePosition);
Debug.DrawRay(ray.origin, ray.direction * 100, Color.yellow);
}
}

screenToR2

screenToR

Dari script diatas kalian bisa melihat pada saat saya menggerakan mouse posisi sinar(Ray) dari tersebut akan menggikuti kemana mouse saya berada.

Oke…. lalu apa kegunaanya?? Untuk lebih mudahnya kita buat contoh kasus. Misalnya kamu disuruh untuk mengetahui pada saat melakukan klik mouse dan ingin mengetahui bahwa ada berapa object yang tersentuh dari sentuhan mouse saya maka kita bisa menggunakan fungsi ini.

Dan saatnya membuat code dari kasus tersebut :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using UnityEngine;
using System.Collections;

public class screnRay : MonoBehaviour {
//private Camera camera;

void Start() {
//camera = GetComponent<Camera>();
}

void Update() {
Ray ray = this.GetComponent<Camera>().ScreenPointToRay(Input.mousePosition);
if(Input.GetMouseButton (0)){
RaycastHit[] rayhits = Physics.RaycastAll(ray.origin, ray.direction, 500);
Debug.DrawRay(ray.origin, ray.direction * 100, Color.yellow);
if(rayhits.Length >0){
Debug.Log (rayhits.Length);
}
}
}
}

chekCollideRay

Okey sekian tutorial hari ini dari saya, dan sampai jumpa lagi di next tutorial. Kalian juga bisa dowload unitypackage saya di drive google saya

Cheers 😀

refrensi : http://docs.unity3d.com/ScriptReference/Camera.ScreenPointToRay.html