Unity学习笔记:枪口瞄准物体屏幕投放准星

   日期:2020-05-14     浏览:305    评论:0    
核心提示:知识点:射线确定位置及目标 屏幕坐标与世界坐标相转换控制屏幕准星位置及显隐摄像机位置投放射线 准心效果↓using UnityEngine;using System.Collections;/// /// 摄像机位置投放射线 准心效果/// public class RayUI : MonoBehaviour{ public RectTransform UI;//准星 private RaycastHitui

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

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

using UnityEngine;
using System.Collections;

/// <summary>
/// 摄像机位置投放射线 准心效果
/// </summary>
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;

/// <summary>
/// 摄像机位置投放射线 准心效果
/// </summary>
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);  
}

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服