unity 实时画面投屏到手机_Unity学习笔记:枪口瞄准物体屏幕投放准星

本文介绍了如何在Unity中实现从摄像机或枪口位置发射射线,实现实时画面投屏到手机的效果,并通过射线追踪确定目标,控制屏幕上的准星位置和显隐。通过ScreenPointToRay方法获取鼠标位置的射线,结合Physics.Raycast进行碰撞检测,从而在屏幕上显示准星。同时展示了第一人称视角下,从枪口位置发射射线并更新准星位置的方法。
摘要由CSDN通过智能技术生成

知识点:射线确定位置及目标 屏幕坐标与世界坐标相转换控制屏幕准星位置及显隐

摄像机位置投放射线 准心效果↓

using UnityEngine;

using System.Collections;

///

/// 摄像机位置投放射线 准心效果

///

public class RayUI : MonoBehaviour

{

public RectTransform UI;//准星

private RaycastHit hit;

private Ray ray;

public LayerMask layer;//遮罩层

private void Update()

{

//返回一条射线从摄像机通过一个屏幕点(鼠标落于屏幕的点)

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

if (Physics.Raycast(ray, out hit, 50, layer.value))

{

UI.gameObject.SetActive(true);

UI.position = Input.mousePosition;

}

else

UI.gameObject.SetActive(false);

}

}

第一人称枪口 投放准星效果(与上面的区别是射线从枪口出发)↓

using UnityEngine;

using System.Collections;

///

/// 摄像机位置投放射线 准心效果

///

public class RayUI : MonoBehaviour

{

public RectTransform UI;//准星

public Transform gunPos;//枪口位置

private RaycastHit hit;

public LayerMask layer;//遮罩层

private void Update()

{

// 物理投放射线(起始位置,方向)

if(Physics.Raycast(gunPos.psoition,gunPos.forward,out hit,10,layer.value))

{

Vector3 gunUI=Camera.main.WordToScreenPoint(hit.point);

UI.gameObject.SetActice(true);

UI.position=gunUI;

}

else

UI.gameObject.SetActive(false);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值