顯示射線
1、必須添加組件LineRenderer
2、在代碼里面獲取LineRenderer組件,不然報錯
3、對于射線的起點與終點位置需要明確,要不然射線顯示的位置會出現(xiàn)很大問題.例如在射擊類游戲,起始位置都應該在槍口的位置,只需要在槍口給一個空物體去過度一下,把射線的起始位置放在空物體上就可以了。對于方向問題,根據(jù)自己的需求判定,一般情況是在世界坐標的z軸方向也就是forward前方位置。文章來源:http://www.zghlxwxcb.cn/news/detail-532242.html
4、注:一定要明確空物體的三維坐標,以及空物體自身會因為某些動畫改變空物體的方位,不然射線的位置可能會有很大的偏差,導致射線偏移。文章來源地址http://www.zghlxwxcb.cn/news/detail-532242.html
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEditor;
using UnityEngine;
public class Players : MonoBehaviour
{
private LineRenderer line;//線的定義
public Transform buttle; //射線的起點位置(空物體的位置)
void Start()
{
line = GetComponent<LineRenderer>();//添加組件
}
void Update()
{
Fire();
}
void Fire()//玩家開火
{
if (Input.GetButtonDown(0))
{
//射線的定義 Ray(射線的開始位置,射線的方向)
Ray ray = new Ray(buttle.position, transform.forward);
RaycastHit hit;//被擊中位置的點位定義
line.SetPosition(0, buttle.position);//線的開始位置
bool b = Physics.Raycast(ray, out hit);//判定射線是否擊中目標
if (b==true)
{
line.SetPosition(1, hit.point);//線的最終位置,hit.point被擊中的位置
line.enabled = true; //射線的顯示
//line.enabled = false;//射線的消失
if (hit.collider.CompareTag("Enemy"))//被擊中的目標Tag值
{
Destroy(hit.collider.gameObject,0.1f);//銷毀被擊中的對象
}
}
}
}
}
到了這里,關于Unity射線(Ray)與LineRenderer插件,射線的線條的顯示與消失的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!