美文网首页Unity游戏开发学习记录
给Tilemap添加2D 碰撞器组件

给Tilemap添加2D 碰撞器组件

作者: 我阿郑 | 来源:发表于2024-03-08 11:08 被阅读0次

1、添加Tilemap Collider 2D 组件

image.png

Tilemap上所有的格子都添加上碰撞器了,但是我们只是想让一些固定的物体添加碰撞器,比如只想让河添加碰撞器。

image.png image.png
  • 找到Tiles 文件夹,选中所有除了河的Tile资源
  • 选中后修改它们的Collider Type, 从 Sprite 改为None, 这样这些瓦片就不会产生碰撞器组件了

这时我们的Tilemap中除了河之外的瓦片,就没有碰撞器组件了

image.png

下面需要对河这部分碰撞器做一个优化:

河这些碰撞器都是一个一个格子的,它是以tile瓦片为单位去添加碰撞器的,这样虽然没问题。但是从性能角度考虑不太好

  • 因为这里会使用Unity物理系统,使用物理系统就会涉及到物理计算,碰撞器越多,物理计算消耗的性能就越大。如果场景很大时,计算量就更大了,游戏的运行速度就会变慢,可能导致卡顿。

  • 还有一个问题是,如此多的小格子碰撞器,我们的Ruby与碰撞器发生碰撞时,可能卡到某个缝隙中。

为了优化上述两个问题,Unity提供一种方式可以把每个瓦片上单独的碰撞器,组织在一起变成一个大的碰撞器,我们只需要在Tilemap节点上添加一个 Composite Collider 2D 组件。

image.png

我们发现,当我们的Tilemap添加了一个 Composite Collider 2D 组件后,会自动挂上一个 Rigidbody 2D这样一个刚体组件:

image.png

不想让它们受力移动,改为Static。接着,勾选上Tilemap Collider 2D中的 Used By Composite 选项:

image.png

这时,就会变成一个整体的大的碰撞器

相关文章

  • 跟诸子学游戏 Unity3d碰撞器与触发器的区别

    要产生碰撞必须为游戏对象添加刚体(Rigidbody)和(各种类型的3D/2D)碰撞器(Collider),刚体可...

  • 跟着官网学UE4(提取干货) Blueprint 3rd Per

    给拳击动作添加物理碰撞 首先需要添加两个碰撞器给左右手 进入CharacterBP 点击AddComponent ...

  • HTC vive交互基础

    找到左手右手model:添加碰撞组件 物体添加碰撞组件和刚体 则可以进行碰撞交互 pickUp脚本挂载左手上: 输...

  • 物理系统 碰撞 触发器 3

    Rigidbody 2D组件 (刚体) 一:重力 1、玩家添加Rigidbody 2D组件: 2、禁用重力 Gra...

  • 八、物理检测:1、碰撞API

    碰撞总是不发生原因有可能 你的碰撞组件和碰撞方法不对应,比如2D碰撞组件,却用3D的碰撞方法去检测。同理的还有射线...

  • Unity3D-Collider(碰撞器)

    要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的...

  • Unity之碰撞器与触发器

    要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的...

  • 物体碰撞检测

    触碰 代码 目标A 穿过 目标B的情况 步骤1:物件添加碰撞器组件(Collider) MeshCollider ...

  • Physics Reference 2D--Collider 2

      Collider 2D组件定义了2D GameObject的形状以便来实现碰撞的目的。对撞机是看不见的,不必与...

  • 碰撞系统脚本控制

    Cocos Creator 中内置了一个简单易用的碰撞检测系统,他会根据添加的碰撞组件进行碰撞检测。当一个碰撞组件...

网友评论

    本文标题:给Tilemap添加2D 碰撞器组件

    本文链接:https://www.haomeiwen.com/subject/togszdtx.html