unity3d-射线

简介: unity3d-射线

射线


struct in UnityEngine

1、描述


射线表示形式。

射线是从 origin 开始并按照某个 direction 行进的无限长的线。

2、变量


direction 射线的方向。

origin 射线的原点。

2.1、构造函数


Ray 沿着 direction 创建从 origin 开始的射线。

2.2、使用


  • 代码
声名RaycastHit、Ray;//RaycastHithit;
Rayray;
Ray((起点)(方向))//ray=newRay(Vector3.up,Vector3.forward);
如果有监测到就返回true否者返回false;//if (Physics.Raycast(ray, outhit)){
打印碰到的信息//Debug.DrawRay(ray.origin, ray.direction*20, Color.red);
Debug.DrawLine(ray.origin,ray.direction*20,Color.yellow);
Debug.Log(hit.collider.gameObject);
Debug.Log(hit.collider.tag);
Debug.Log(hit.point);
Debug.Log(hit.collider.transform.position);
Debug.Log(hit.collider.name);
}

3、小案例


  • 案例说明
  • 通过鼠标点击实现发射球去打东西
//声名RaycastHithit;
Rayray;
publicGameObjectattack;
publicfloatspeed=5;
//监测判断if (Input.GetMouseButtonDown(0))
{
ray=Camera.main.ScreenPointToRay(Input.mousePosition);
if(Physics.Raycast(ray,outhit))
{
画线测试//Debug.DrawLine(transform.position, hit.point, Color.red);
创建小球GameObjecta=Instantiate(attack, transform.position, Quaternion.identity);
a.GetComponent<Rigidbody>().velocity= (hit.point-transform.position) *speed;
}
}


相关文章
|
图形学
浅谈Unity之贝塞尔曲线
贝塞尔曲线的创建
|
图形学
浅谈Unity之ShaderGraph-等高线和高程渐变设色
ShaderGraph实现等高线和高程渐变设色
|
算法框架/工具 图形学
Unity 四元数
Unity 四元数
187 0
|
图形学
Unity 坐标系
Unity 坐标系
Unity 坐标系
|
数据可视化 图形学
Unity射线编程详解
Unity射线编程详解
106 0
|
图形学 开发者
Unity3D刚体
Unity3D刚体
167 0
|
图形学
Unity3D旋转
Unity3D旋转
135 0
|
数据可视化 图形学
Unity 之 贝塞尔曲线介绍和实际使用
Unity 中对贝塞尔曲线的实战应用,制作可视化操作曲线工具,文末附工具源码链接~
868 0
Unity 之 贝塞尔曲线介绍和实际使用
|
图形学
Unity 3D中的射线与碰撞检测
创建一条射线Ray需要指明射线的起点(origin)和射线的方向(direction)。这两个参数也是Ray的成员变量。注意,射线的方向在设置时如果未单位化,Unity 3D会自动进行单位归一化处理。
4441 0
Unity-移动旋转
move CharacterController:Rigidbody:AddForce,MovePositionTranslate:不检测碰撞rotate Rotation:Rigidbody:MoveRotation示例 王者荣耀式: using System.
1109 0