Unity Manual之Physics.Raycast射线投射
来源:互联网 发布:python hmac sha1 编辑:程序博客网 时间:2024/04/27 17:27
Unity Manual之Physics.Raycast射线投射
1、C# ⇒ public static bool Raycast(Vector3 origin, Vector3 direction, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);
当光线投射与任何碰撞器交叉时为真,否则为假。
在场景中投下可与所有碰撞器碰撞的一条光线。
using UnityEngine;using System.Collections; public class ExampleClass : MonoBehaviour { void Update() { Vector3 fwd = transform.TransformDirection(Vector3.forward); if (Physics.Raycast(transform.position, fwd, 10)) print("There is something in front of the object!"); }}
注意:如果射线从碰撞体的内部或者背面打,Raycast不检测碰撞。如果你用脚本或动画移动碰撞器,需要至少一个在FixedUpdate执行,因为物理库能更新它的数据结构,因此一条射线在它的新位置之前打到碰撞器。
2、C# ⇒ public static bool Raycast(Vector3 origin, Vector3 direction, out RaycastHit hitInfo, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);
using UnityEngine;using System.Collections; public class ExampleClass : MonoBehaviour { void Update() { RaycastHit hit; if (Physics.Raycast(transform.position, -Vector3.up, out hit)) float distanceToGround = hit.distance; }}
using UnityEngine;using System.Collections; public class ExampleClass : MonoBehaviour { void Update() { RaycastHit hit; if (Physics.Raycast(transform.position, -Vector3.up, out hit, 100.0F)) float distanceToGround = hit.distance; }}
3、C# ⇒ public static bool Raycast(Ray ray, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);
using UnityEngine;using System.Collections; public class ExampleClass : MonoBehaviour { void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, 100)) print("Hit something"); }}
4、C# ⇒ public static bool Raycast(Ray ray, out RaycastHit hitInfo, float maxDistance = Mathf.Infinity, int layerMask = DefaultRaycastLayers);
using UnityEngine;using System.Collections; public class ExampleClass : MonoBehaviour { void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, 100)) Debug.DrawLine(ray.origin, hit.point); }}
==================================================================================
结束。
0 0
- Unity Manual之Physics.Raycast射线投射
- Unity--光线投射碰撞Physics.Raycast和Physics.RaycastAll
- Unity Physics.Raycast 之 layerMask
- 射线Physics.Raycast
- Unity Raycast 光线投射
- Unity3D Physics.Raycast 射线检测
- Unity-Physics.Raycast
- Unity 使用物理射线(Physics.Raycast),实现扇形区域碰撞检测三种方法
- Unity 使用物理射线(Physics.Raycast),实现扇形区域碰撞检测三种方法
- Unity3D的射线检测Physics.Raycast
- unity3d Physics.Raycast和Ray(射线)
- Unity Physics.Raycast 深入理解
- Unity Physics.Raycast的参数layermask不起作用
- unity Physics.Raycast 函数 LayerMask用法测试
- Physics.Raycast和Ray(射线)的理解
- 【转】对Physics.Raycast和Ray(射线)的理解
- Unity截屏,Raycast射线,绕某条边旋转
- Unity5.3.4 设置Raycast投射的射线不碰撞触发器Trigger
- openwrt下编译mt7628的uboot
- sizeof为什么不能计算被动态分配的数组
- 黑马程序员————java基础————面向对象
- 八种排序算法总结(Java实现)
- HDU 5409 CRB and Graph(桥边+乱搞)
- Unity Manual之Physics.Raycast射线投射
- C++ bitset头文件中的内容
- 地图和定位
- 关于ROS学习的一些反思
- BestCoder Round #54 (div.2) HDOJ 5429 Geometric Progression(模拟)
- iOS多线程--多线程简单概览
- 算法题:数组中只出现一次的两个数字
- [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒
- Qt on Android: Hello World!