1.創(chuàng)建一個(gè)準(zhǔn)星放在屏幕中間
外部找個(gè)PNG透明圖,拖到Unity文件夾,右上角改成精靈sprite2d
2.添加到UI畫布
?
3.寫腳本
首先,我們需要引入一些 "工具",就像我們?cè)谕嬗螒驎r(shí)要先下載游戲客戶端一樣。這里的 "工具" 就是一些命名空間,讓我們可以方便地使用 System 和 UnityEngine 類。 ??
接下來(lái),我們創(chuàng)建了一個(gè)名為 RayToScreenMid 的 "小玩具"。這個(gè)小玩具有一個(gè)重要的 "成員"(在程序中,我們稱之為變量),那就是 MianCamera。MianCamera 就是我們的 "攝像頭",用來(lái)觀察游戲世界。我們?cè)谕婢叩?"啟動(dòng)" 階段(Start 方法)計(jì)算了一下屏幕的 "中心位置",并把結(jié)果存放在 ScreenMidPos 變量里。 ??
當(dāng)我們 "玩"(Update 方法)這個(gè)小玩具時(shí),如果鼠標(biāo)左鍵被按下,RayShot 方法就會(huì)被調(diào)用。RayShot 方法就像我們?cè)谕嬗螒驎r(shí)按下的 "射擊" 鍵,它會(huì)從 MianCamera(攝像頭)出發(fā),向屏幕中間發(fā)射一條 "射線"(Ray)。 ??
然后,我們使用 Physics.Raycast 方法來(lái)檢查這條射線是否與游戲中的其他物體 "相撞" 了。如果相撞,我們會(huì)檢查這個(gè)物體是不是 "地形" 或者 "角色",如果不是,我們就會(huì) "消滅"(Destroy)這個(gè)物體。 ??
此外,我們還會(huì)在游戲中畫出一條從 MianCamera(攝像頭)到屏幕中間位置的紅色射線。這樣,我們就可以清楚地看到這條射線,就像我們?cè)谕嬗螒驎r(shí)看到的 "血條" 一樣。 ??
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RayToScreenMid : MonoBehaviour
{
// 從視角攝像機(jī)向屏幕中間發(fā)射射線
Camera MianCamera; // 這是一個(gè)攝像機(jī)對(duì)象
Vector3 ScreenMidPos; // 這是屏幕中央的點(diǎn)的坐標(biāo)
private void Start()
{
ScreenMidPos = new Vector3(Screen.width / 2, Screen.height / 2, 0); // 初始化屏幕中央的點(diǎn)的坐標(biāo)
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
RayShot(); // 如果鼠標(biāo)左鍵按下,則發(fā)射一條射線
}
}
private void RayShot()
{
//從攝像機(jī)出發(fā)向屏幕中間發(fā)射射線!
Ray OneShotRay = Camera.main.ScreenPointToRay(ScreenMidPos); // 以屏幕中央點(diǎn)為原點(diǎn),發(fā)射射線
RaycastHit OnEnemy;
if (Physics.Raycast(OneShotRay,out OnEnemy)) // 如果射線碰到了物體
{
Debug.Log("射線發(fā)射成功");
if (OnEnemy.transform.name!= "Terrain"&& OnEnemy.transform.name != "Role") // 如果碰到的不是地形和角色
{
Destroy(OnEnemy.transform.gameObject); // 銷毀碰撞到的物體
Debug.Log("銷毀對(duì)方");
if (ScreenMidPos != null)
{
Debug.DrawLine(Camera.main.transform.position, ScreenMidPos, Color.red, 10000f); // 畫一條從攝像機(jī)出發(fā),到屏幕中央點(diǎn)的射線
}
}
}
}//end class
這個(gè)腳本掛載到哪里都可以,為了符合面向?qū)ο?,?qǐng)掛在攝像機(jī)或者主角身上
這個(gè)腳本是從攝像機(jī)往電腦屏幕中間發(fā)射射線!前面的UI僅僅只是一個(gè)標(biāo)識(shí)!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-714005.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-714005.html
到了這里,關(guān)于Unity實(shí)現(xiàn)攝像機(jī)向屏幕中間發(fā)射射線射擊物體的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!