Unity3D圣典3.3版本-中文版
文集大纲加载中……
本文档使用 MrDoc 发布
-
+
首页
Physics.CapsuleCast 胶囊投射
# [Physics](Physics.html).CapsuleCast 胶囊投射 static function *CapsuleCast* (*point1* : [Vector3](../Vector3/Vector3.html), *point2* : [Vector3](../Vector3/Vector3.html), *radius* : float, *direction* : [Vector3](../Vector3/Vector3.html), *distance* : float = [Mathf.Infinity](../Mathf/Mathf.Infinity.html), *layerMask* : int = kDefaultRaycastLayers) : bool static function *CapsuleCast* (*point1* : [Vector3](../Vector3/Vector3.html), *point2* : [Vector3](../Vector3/Vector3.html), *radius* : float, *direction* : [Vector3](../Vector3/Vector3.html), *out hitInfo* : [RaycastHit](../RaycastHit/RaycastHit.html), *distance* : float = [Mathf.Infinity](../Mathf/Mathf.Infinity.html), *layerMask* : int = kDefaultRaycastLayers) : bool ### Parameters**参数** * *point1* The start of the capsule. 胶囊的起点 * *point2* The end of the capsule. 胶囊的结束点 * *radius* The radius of the capsule. 胶囊的半径 * *direction* The direction into which to sweep the capsule. 胶囊扫描的方向 * *hitInfo* If true is returned, hitInfo will contain more information about where the collider was hit (See Also: RaycastHit). 如果交互到碰撞体,返回碰撞体的信息。 * *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 capsule against all colliders in the scene and returns detailed information on what was hit. 对场景中的碰撞体进行胶囊的投射,如果相交,返回碰撞体的 raycasthit 信息。 The capsule is defined by the two spheres with radius around point1 and point2, which form the two ends of the capsule. Hits are returned for the first collider which would collide against this capsule if the capsule was moved along direction. 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. 胶囊的描述:point1 ,point2 为上下两个结束点,radius 为半径。对胶囊做投射时,如果和碰撞体碰撞,raycasthit 结构返回碰撞信息。这可以用在光线投射无法满足要求时的情况下。例如要判断角色(有空间大小尺寸)是否和一个物体发生碰撞。 参见:[Physics.SphereCast](Physics.SphereCast.html), [Physics.CapsuleCastAll](Physics.CapsuleCastAll.html), [Physics.Raycast](Physics.Raycast.html), [Rigidbody.SweepTest](Rigidbody.SweepTest.html) * [C#](#) * [JavaScript](#) ``` using UnityEngine; using System.Collections; public class example : MonoBehaviour { void Update() { RaycastHit hit; CharacterController charContr = GetComponent<CharacterController>(); Vector3 p1 = transform.position + charContr.center + Vector3.up * -charContr.height * 0.5F; Vector3 p2 = p1 + Vector3.up * charContr.height; if (Physics.CapsuleCast(p1, p2, charContr.radius, transform.forward, out hit, 10)) distanceToObstacle = hit.distance; } } ``` ``` function Update () { var hit : RaycastHit; var charContr : CharacterController = GetComponent(CharacterController); var p1 : Vector3 = transform.position + charContr.center + Vector3.up * (-charContr.height*0.5); var p2 : Vector3 = p1 + Vector3.up * charContr.height; // Cast character controller shape 10 meters forward, to see if it is about to hit anything //向前投射角色物体10米,是否与其他物体碰撞 if (Physics.CapsuleCast (p1, p2, charContr.radius, transform.forward, hit, 10)) { distanceToObstacle = hit.distance; } } ```
da
2022年5月23日 14:16
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码