【unity学习笔记-如何给动态的人物添加碰撞体】

这篇具有很好参考价值的文章主要介绍了【unity学习笔记-如何给动态的人物添加碰撞体】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前景提要

如题,项目中想实现和人物进行简单的互动,比如点击他的手臂的时候他会播放手臂的动作,点击脚的时候播放预设的和脚有关的动画

之前我的实现方式是十分暴力的在人物模型中对应的部位添加一个子物体,给子物体添加正方体/圆体这种规则的碰撞体,然后因为他是在骨骼下的,所以人物在动的时候这个碰撞体也会跟着一起动,比绑在静态的mesh上灵活很多,不至于点击不相关的部位的时候也被静态的mesh检测到然后播放不相符的动画

但是这么有很大的局限性,第一就是不精准,因为是规则的碰撞体,所以检测的范围就大了很多,第二就是有的时候不同部位之间的碰撞体会出现交叉的情况,也会影响,最后就是这个实现方法太nc了,当时是真的想不到其他的办法

不过现在隔了1年多,在重新回来看的时候,发现了一个比较简单高效而且检测质量最高的办法
这是在网上随便找的模型

【unity学习笔记-如何给动态的人物添加碰撞体】

解决方法

在骨骼的子节点添加一个空对象,然后给他挂载mesh collider组件,把这个骨骼对应的mesh找到,然后拖到mesh collider的mesh上,然后微调一下距离(我这里使用的时候碰撞体会比模型向前多了很多,向后拉一下,和肉眼上看到的一致即可)

步骤

步骤1

给你需要的骨骼节点添加一个子节点
【unity学习笔记-如何给动态的人物添加碰撞体】

步骤2

给子节点添加mesh collider组件
【unity学习笔记-如何给动态的人物添加碰撞体】

步骤3

把骨骼对应的mesh找到,然后拖到步骤2创建的组件中的mesh
【unity学习笔记-如何给动态的人物添加碰撞体】

步骤4

然后运行的时候你会发现这个碰撞体比模型前了很多
【unity学习笔记-如何给动态的人物添加碰撞体】

移动一下这个子节点到覆盖到骨骼对应的mesh的位置即可
编译器:能调,运行的时候也能调,不过相对麻烦一点
Game场景:如下图,一个小方法,在你微调的时候暂停一下Game场景,然后慢慢调,调完记得复制一下这个子节点的位置,停止Game场景后复制到这个子节点上
【unity学习笔记-如何给动态的人物添加碰撞体】

步骤5

mesh collider组件上有一个canves的toggle,可以勾选上,勾选上后面片的数量明显少了很多,无疑能降低一点性能

其他的部位只要照猫画虎就可以啦~
不得不说,这个方法光是看着就舒服不知道多少倍,

顺便奉上检测3d物体的方法

两个需要注意的
第一是你的主相机的layer要选上main camera
第二是主相机上要有PhysicsRaycaster组件
缺一不可~

		PointerEventData pointerEventData = new PointerEventData(EventSystem.current);
        pointerEventData.position = Input.mousePosition;
        PhysicsRaycaster pr = Camera.main.GetComponent<PhysicsRaycaster>();
        List<RaycastResult> results = new List<RaycastResult>();
        pr.Raycast(pointerEventData, results);

这个results就是检测到的结果,输出一下即可

2d的物体检测只要把上面的PhysicsRaycaster组件改成GraphicRaycaster即可文章来源地址https://www.toymoban.com/news/detail-402665.html

到了这里,关于【unity学习笔记-如何给动态的人物添加碰撞体】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity开发】给LineRenderer添加碰撞体(使用MeshCollider)

    在这里选择使用MeshCollider组件给Line添加碰撞体。 首先创建Line的Mesh 通过查阅Unity官方文档我们可以得知,使用BakeMesh函数可以获取到Line的Mesh。 创建MeshCollider组件并添加Mesh信息

    2024年02月15日
    浏览(48)
  • Unity | 渡鸦避难所-2 | 搭建场景并添加碰撞器

    上期中在导入一系列的商店资源包后,Assets 目录已经变的混乱不堪 开发过程中,随着资源不断更新,遵循一定的项目结构和设计规范是非常必要的。这可以增加项目的可读性、维护性、扩展性以及提高团队协作效率 这里先做下简单的目录结构调整:资源包放入 ArtRes 目录,

    2024年02月04日
    浏览(40)
  • 【Unity VR开发】结合VRTK4.0:添加碰撞忽略器

               最远的旅行,是从自己的身体到自己的心,是从一个人的心到另一个人的心。坚强不是面对悲伤不流一滴泪,而是擦干眼泪后微笑面对以后的生活。           模块化提供了一种允许两个或者多个对象忽略彼此碰撞的方法: Mutators.ColliisonIgnorer 。         步骤一

    2023年04月25日
    浏览(46)
  • 【2023】Unity(Unity Hub)、blender 安装 + 原神人物模型下载 + 使用Unity为模型添加动画

    目录 一、软件安装 1. Unity Hub 官网 安装 语言设置 其它设置 2. Unity 使用Unity Hub安装Unity 语言设置 3. plasticscm-cloud-windows 4. blender 官网  下载安装 语言设置 下载Cats Blender Plugin 插件 安装插件 二、原神人物模型下载、格式转换 1 .模之屋 官网 下载 2. pmx转fbx格式 三 、使用Unity为

    2024年02月08日
    浏览(92)
  • 笔记|Unity基础:碰撞体开关门、灯

    介绍:         单击大门的把手打开大门→单击灯的开关打开灯→单击房门的把手打开房门→单击房门的把手关闭房门→单击灯的开关关灯→单击大门的把手关闭大门 步骤:         ①在Hierarchy创建三个Empty(空对象),分别是Door_house, Door_room1, light_offon               

    2024年02月11日
    浏览(37)
  • 【Unity 学习笔记】规则瓦片和动态瓦片的应用

            上一篇笔记记录了瓦片调色板的应用,瓦片调色板常用于游戏场景的绘制,可以完全按照作者的想法绘制地图,自由度大。但是瓦片调色板也有其缺点,就是需要人一点一点地绘制。在这片笔记中,我将介绍两种新添加的瓦片,即规则瓦片和动态瓦片,有了这两类

    2024年02月10日
    浏览(40)
  • 技术笔记(7)Unity导入人物和场景资源,出现的材质显示问题

    Unity在导入的时候,识别到近似内容时,会用新的内容去替换同名shader的内容,而不是重新创建一个。这样就会导致第一个人物的材质显示异常,其本质是shader内容被替换了。 尝试了多次各种导入资源的方式,最终选择了一个妥协折中的方法。 在导入完第一个人物之后,就将

    2024年03月12日
    浏览(57)
  • unity,如何让人物随着鼠标滑动而转向?

    unity,如何让人物随着鼠标滑动而转向? 这段代码是一个基于Unity引擎实现玩家移动的脚本,主要作用如下: 定义并初始化变量: speed:玩家移动速度; movement:玩家的移动方向; playerAC:玩家的动画控制器; playerRigidbody:玩家的刚体组件; floorMask:用于射线检测的地板层

    2024年02月07日
    浏览(102)
  • 超详细,unity如何制作人物行走的遥杆?

    在游戏中,移动遥杆是一种常见的用户界面元素,它允许玩家通过触摸或鼠标输入来控制游戏对象的移动。移动遥杆通常由一个圆形或方形的背景和一个可以拖动的小球(称为拇指杆)组成。玩家可以通过拖动拇指杆来控制游戏对象的移动方向和速度。 以下是对GameTouch脚本每

    2024年02月05日
    浏览(39)
  • Qt学习笔记5---如何在Qt中添加资源文件

              前言: 在我们给Qt加上图片的时候,可以用本地资源添加的方式,但是此方法代码用的只能是本地资源,不好共享。那么我们可以把资源文件添加在Qt中,这样就不会出现这种问题啦! 第一步:在本地复制你想用的资源文件,点开项目的“在Explorer中显示”,粘贴

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包