zoukankan      html  css  js  c++  java
  • 关于Unity3D射线原理和应用

    射线:射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射。

    射线应用范围比较广,比如获取3D世界的物体位置(X,Y,Z坐标),获取游戏对象(子弹射击游戏的例子)等,

    下面有一个小例子:说明(将以下脚本拖拽到相机上,单击左键就会发射一条射线,倘若射线与物体相撞,请留意你的

    控制台会输出被射线碰撞的物体的名称)

    using UnityEngine;
    using System.Collections;

    public class NewBehaviourScript : MonoBehaviour {

     void Start () {
     
     }
     
     void Update () {
      if(Input.GetMouseButton(0))
      {
          Ray ray =Camera.main.ScreenPointToRay(Input.mousePosition);//定义一条从相机视角处发出的射线
          RaycastHit hit;
          if(Physics.Raycast(ray,out hit,100))
       {
              Debug.DrawLine(ray.origin,hit.point);//输出射线(注意在场景视图下可看见)
              var gameobject=hit.collider.gameObject.name;
              print(gameobject);//输出射线检测到的物体名称
          }
      }
     }
    }

  • 相关阅读:
    ESlint中console.log报错问题
    for、forEach、for in、for of用法
    如何覆盖elementUI样式
    什么是闭包(closure),为什么要用它?
    写一个通用的事件侦听器函数
    javascripts 浅拷贝和深拷贝
    箭头函数
    用 async/await 来处理异步
    DOM事件类
    arguments 详解
  • 原文地址:https://www.cnblogs.com/niguang/p/Ray.html
Copyright © 2011-2022 走看看