Unity3D圣典3.3版本-中文版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
Physics.SphereCast 球体投射
# [Physics](Physics.html).SphereCast 球体投射 static function *SphereCast* (*origin* : [Vector3](../Vector3/Vector3.html), *radius* : float, *direction* : [Vector3](../Vector3/Vector3.html), *outhitInfo* : [RaycastHit](../RaycastHit/RaycastHit.html),*distance* : float = [Mathf.Infinity](../Mathf/Mathf.Infinity.html), *layerMask* : int= kDefaultRaycastLayers) : bool ### Parameters**参数** * *origin* The center of the sphere at the start of the sweep. 在扫描起点的球体中心点。 * *radius* The radius of the sphere. 球体的半径。 * *direction* The direction into which to sweep the sphere. 球体扫描的方向 * *hitInfo* If true is returned, hitInfo will contain more information about where the collider was hit (See Also: [RaycastHit](../RaycastHit/RaycastHit.html)). 如果返回 true,hitInfo 将包含碰到器碰撞的更多信息。 * *distance* The length of the sweep 扫描的长度 * *layerMask* A Layer mask that is used to selectively ignore colliders when casting a capsule. 根据 Layer mask 层的不同来忽略碰撞体。 *Returns* bool - True when the capsule sweep intersects any collider, otherwise false. 当胶囊物体投射时与碰撞体相交时,返回真。 *Description* 描述 Casts a sphere against all colliders in the scene and returns detailed information on what was hit. 投射球型物体来判断是否与场景中物体交互,返回 Raycasthit 信息。 This is useful when a Raycast does not give enough precision, because you want to find out if an object of a specific size, such as a character, will be able to move somewhere without colliding with anything on the way. Think of the sphere cast like a thick raycast. 这可以用在光线投射无法满足要求时的情况下。例如要判断角色(有空间大小尺寸)是否和一个物体发生碰撞。 参见: [Physics.SphereCastAll](Physics.SphereCastAll.html), [Physics.CapsuleCast](Physics.CapsuleCast.html), [Physics.Raycast](Physics.Raycast.html), [Rigidbody.SweepTest](../Rigidbody/Rigidbody.SweepTest.html) * [C#](#) * [JavaScript](#) ``` using UnityEngine; using System.Collections; public class example : MonoBehaviour { void Update() { RaycastHit hit; CharacterController charCtrl = GetComponent<CharacterController>(); Vector3 p1 = transform.position + charCtrl.center + Vector3.up * -charCtrl.height * 0.5F; Vector3 p2 = p1 + Vector3.up * charCtrl.height; if (Physics.CapsuleCast(p1, p2, charCtrl.radius, transform.forward, out hit, 10)) distanceToObstacle = hit.distance; } } ``` ``` function Update () { var hit : RaycastHit; var charCtrl : CharacterController = GetComponent(CharacterController); var p1 : Vector3 = transform.position + charCtrl.center + Vector3.up * (-charCtrl.height*0.5); var p2 : Vector3 = p1 + Vector3.up * charCtrl.height; // Cast character controller shape 10 meters forward, to see if it is about to hit anything //投射角色控制器形状向前10米,看它如果要撞上任何东西 if (Physics.CapsuleCast (p1, p2, charCtrl.radius, transform.forward, hit, 10)) { distanceToObstacle = hit.distance; } } ``` • static function *SphereCast* (*ray* : [Ray](../Ray/Ray.html), *radius* : float, *distance* : float = [Mathf.Infinity](../Mathf/Mathf.Infinity.html), *layerMask* : int = kDefaultRaycastLayers) : bool • static function *SphereCast* (*ray* : [Ray](../Ray/Ray.html), *radius* : float, *out hitInfo* : [RaycastHit](../RaycastHit/RaycastHit.html), *distance* : float = [Mathf.Infinity](../Mathf/Mathf.Infinity.html), *layerMask* : int = kDefaultRaycastLayers) : bool ### Parameters**参数** * *origin* The center of the sphere at the start of the sweep. 在扫描起点的球体中心点。 * *radius* The radius of the sphere. 球体的半径。 * *direction* The direction into which to sweep the sphere. 球体扫描的方向 * *hitInfo* If true is returned, hitInfo will contain more information about where the collider was hit (See Also: [RaycastHit](../RaycastHit/RaycastHit.html)). 如果返回 true,hitInfo 将包含碰到器碰撞的更多信息。 * *distance* The length of the sweep 扫描的长度 * *layerMask* A Layer mask that is used to selectively ignore colliders when casting a capsule. 根据 Layer mask 层的不同来忽略碰撞体。 *Returns* bool - True when the capsule sweep intersects any collider, otherwise false. 当胶囊物体投射时与碰撞体相交时,返回真。 *Description* 描述 Casts a sphere against all colliders in the scene and returns detailed information on what was hit. 投射球型物体来判断是否与场景中物体交互,返回 Raycasthit 信息。 This is useful when a Raycast does not give enough precision, because you want to find out if an object of a specific size, such as a character, will be able to move somewhere without colliding with anything on the way. Think of the sphere cast like a thick raycast. 这可以用在光线投射无法满足要求时的情况下。例如要判断角色(有空间大小尺寸)是否和一个物体发生碰撞。 参见: [Physics.SphereCastAll](Physics.SphereCastAll.html), [Physics.CapsuleCast](Physics.CapsuleCast.html), [Physics.Raycast](Physics.Raycast.html), [Rigidbody.SweepTest](../Rigidbody/Rigidbody.SweepTest.html)
da
2022年5月23日 14:22
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码