Unity C#   Physics.RayCast取得滑鼠點擊座標

 

  • 此篇重點語法 * * * * *

 Camera.main.ScreenPointToRay() ->這個語法是用來宣告射線的方向而起始點是從Camera投射出去,而投射的方向可以在括號中進行設定 

e.g. Ray ray1=Camera.main.ScreenPointToRay(Input.mousePosition); //宣告一個以"camera"為起始點方向為"滑鼠點擊位置"的射線。

 

此篇效果 - 滑鼠座標的取得 * * * * 

 

 

-  大概了解重點後,接下來進入完整教學   -

 

一、我們在場景中新增一個名為"BG"的Sprite物件,並且為其設定背景圖片,調整座標為X=0,Y=0,Z=0

 

二、幫BG新增一個BoxCollider元件(為了讓射線可以偵測到)

 

 

三、在場景中新增兩個Text UI,將其分別命名為Xpos(座標 X=300,Y=170),Ypos(座標 X=300,Y=100)

(這裡使用TextMeshPro UITextMeshPro使用方式:https://goo.gl/gmZYdt)

 

四、接著在場景中新增一個空物件叫做MouseDetector

 

 

五、再來我們新增一個名為MouseDetector的程式碼,並用下列程式碼做取代

 

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

// 導入TextMeshPro的功能

using TMPro;

 

public class MouseDetector : MonoBehaviour {

    // 宣告一條射線

    private Ray mouseRay1;

 

    //RaycastHit是用來儲存被射線所打到的位置

    private RaycastHit rayHit;

 

    //用來接收滑鼠點擊座標的X、Y

    public float posX, posY;

 

    //用來呈現座標的UI

    public TextMeshProUGUI X, Y;

 

    void Update()

    {

        if (Input.GetMouseButton(0))

        {

            //呼叫取得滑鼠點擊座標的函式

            GetPos();

        }

    }

    private void GetPos()

    {

        // 設定射線的行徑方向(螢幕-滑鼠點擊位置)

        mouseRay1 = Camera.main.ScreenPointToRay(Input.mousePosition);

 

        //如果射線以MouseRay1方向前進(螢幕到滑鼠點擊座標),有打到collider就會執行大括弧裡的程式碼

        if (Physics.Raycast(mouseRay1, out rayHit, 1000f))

        {

            //儲存滑鼠所點擊的座標

            posX = rayHit.point.x;

            posY = rayHit.point.y;

 

            //呈現滑鼠所點擊的座標

            X.text = posX.ToString();

            Y.text = posY.ToString();

 

        }

    }

}

 

六、接下來我們將剛新增的TextMeshProUI拖曳進MouseDetector的空欄位中

 

七、拖曳完成後,我們就可以透過TextMeshPtpGUI來監測我們滑鼠的點擊位置了(執行專案後按住滑鼠左鍵移動)

 

  • 此篇重點語法 * * * * *

 Camera.main.ScreenPointToRay() ->這個語法是用來宣告射線的方向而起始點是從Camera投射出去,而投射的方向可以在括號中進行設定 

e.g. Ray ray1=Camera.main.ScreenPointToRay(Input.mousePosition); //宣告一個以"camera"為起始點方向為"滑鼠點擊位置"的射線。

 

補充 :

TextMeshPro使用方式:https://goo.gl/gmZYdt

 

 

 

-------------------------------------------------------------------------------------------------------------------------------------

 

我們有粉絲專頁囉!!!       

如果怕有問題連絡不到我們,歡迎隨時私訊FB粉專哦!!!

https://www.facebook.com/Straying2018/

 

●     如果這篇文章有幫助到您,希望您能留言給予我們鼓勵 !  

●     對於文章有任何的建議,非常歡迎留言告訴我們哦 !!!  

●     有任何想知道的功能也歡迎告訴我們,我們會盡快寫成部落格分享給大家!

                                                                                                                                                                                                                                                     -Alex-  

arrow
arrow
    創作者介紹
    創作者 『迷途』 的頭像
    『迷途』

    迷途 - Unity 工作室

    『迷途』 發表在 痞客邦 留言(0) 人氣()