射线的应用
来源:互联网 发布:科研立项题目 软件 编辑:程序博客网 时间:2024/05/14 03:28
欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。
射线,类比的理解就是游戏中的子弹。是在3D世界里中一个点向一个方向发射的一条无终点的线。在发射的过程中,一旦与其他对象发生碰撞,就停止发射。
射线包括两个元素:ray.origin(射线起点);ray.direction(射线的方向)
创建一个射线的方法:ray(origin : vector3,direction : vector3)
定义一个光线投射碰撞:raycasthit hit;
发射射线长度为:physics.raycast(ray,out hit,100);
打印射线:debug.drawline(ray.origin,jit.point)
using UnityEngine;
using System.Collections;
public class RayTest : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update ()
{
if(Input.GetMouseButton(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//从摄像机发出到点击坐标的射线
RaycastHit hitInfo;
if(Physics.Raycast(ray,out hitInfo))
{
Debug.DrawLine(ray.origin,hitInfo.point);//划出射线,只有在scene视图中才能看到
GameObject gameObj = hitInfo.collider.gameObject;
Debug.Log("click object name is " + gameObj.name);
if(gameObj.tag == "boot")//当射线碰撞目标为boot类型的物品 ,执行拾取操作
{
Debug.Log("pick up!");
}
}
}
}
}
自动寻路
private NavMeshAgent agent;
void Start() {
agent = GetComponent<NavMeshAgent>();
}
void Update() {
RaycastHit hit;
if (Input.GetMouseButtonDown(0)) {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit)){
agent.SetDestination(hit.point);
}
}
- 射线的应用
- Unity 3D——射线的应用
- Unity基础,Line Renderer 和射线的应用
- 二维的射线跟踪
- UE4的射线拾取
- 球形射线的使用
- unity3D 射线的使用
- 射线
- 射线
- 射线
- 射线
- 射线
- 射线
- Unity射线应用(第三人称Demo制作)
- Unity射线应用(第三人称Demo制作)
- 射线检测算法在游戏中应用
- 射线和平面的交点
- 射线和圆的相交
- 【JAVASE】BoneCP 教程
- 自己动手写字符串库函数 二(C语言实现)
- 最快速的Github入门,没有之一(三)
- C#下JSON字符串的反序列化
- 最快速的Github入门,没有之一(二)
- 射线的应用
- OpenCV实现遍历文件夹下所有文件
- 最快速的Github入门,没有之一(四)
- 协程
- [leetcode 155] Min Stack
- 有趣的HTML5:离线存储
- Hadoop2搭建可手工配置的HA
- 服务器双网卡配置不同运营商IP的方案
- 服务器端文件分片合并的思考和实践