Rigidbody SweepTest测试
2024-10-12 04:30:41
和Physics的投射差不多,SweepTest可以直接投射当前碰撞
但是比较遗憾的是它对MeshCollider的支持不是很好,需要勾选Convex
投射和Physics一样,只要加了碰撞器,不管勾没勾选Trigger都会被投射到
另外如果想移动刚体位置进行SweepTest的话,可以调用.position提前改变位置
比如我的游戏中角色会瞬移到某个坐标,这时候判断是否超过墙壁,这是我测试用的代码,可以做到角色碰撞的修正:
using UnityEngine; public class SweepTest : MonoBehaviour
{
public Rigidbody rigidbodyComponent; void OnEnable()
{
RaycastHit raycastHit;
if (rigidbodyComponent.SweepTest(transform.forward, out raycastHit, ))
{
Debug.Log("Contact");
var raycastPoint = raycastHit.point; var closesPoint = rigidbodyComponent.ClosestPointOnBounds(raycastPoint); rigidbodyComponent.transform.position += raycastPoint - closesPoint;
}
else
{
Debug.Log("Failure");
}
}
}
测试一下(脚本执行前后):
最新文章
- NSURLSession &; NSCache
- c++怎么将一个类,拆分出接口类,和实现类
- Grub命令行
- solr4.5分组查询、统计功能介绍
- python开发与实战content
- Ubuntu9.04更新源
- 使用c#给outlook添加任务、发送邮件
- Bzoj3473
- 201521123122 Java 第二周学习总结
- MySQL自定义函数用法详解-复合结构自定义变量/流程控制
- raspberrypi 3代B 配置摄像头
- 常用YUV转RGB代码
- C++标准库之string返回值研究
- 软件测试基础Ⅲ(osi7层协议,测试模型,LoadRunner组件,软件质量模型)
- Haproxy 重定向跳转设置 - 运维小结
- PAT甲题题解1098. Insertion or Heap Sort (25)-(插入排序和堆排序)
- HttpClient 教程 (四)
- Qt Customize QVariant
- 20155233 2016-2017-2 《Java程序设计》第1周学习总结
- 【转帖】Service Discovery: 6 questions to 4 experts