- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种方法来创建一种新型的六边形规则图 block 来完成一些相当简单和具体的事情。我想创建一个六边形规则图 block ,该图 block 能够根据与它相邻的其他类型的六角形图 block 自动选择 Sprite 。默认的六边形规则图 block 允许您在给定图 block 的每一侧以相同类型的图 block 作为边界时指定 Sprite ,但这对于我的目的来说是不够的。
我最终想要的是创建一个海岸图 block ,它将检测哪些边与海洋图 block 接壤,并根据它选择正确的六边形 Sprite 。类似这样的东西,但能够指定海洋瓦片,而不仅仅是绿色箭头指示的相同瓦片类型:
我可以在他们的 github repo 中看到 Unity 的六边形规则图 block 的默认代码,但不知道如何去准确地覆盖它: https://github.com/Unity-Technologies/2d-extras/blob/master/Runtime/Tiles/HexagonalRuleTile/HexagonalRuleTile.cs
这是 Unity 中一个相对较新的主题,但我们将不胜感激任何帮助或指导。
最佳答案
好的,经过深入的谷歌搜索和反复试验后,我明白了这一点。我所需要的只是这个覆盖 RuleMatch 方法的继承类。希望这对其他人有用。
using System;
using UnityEngine;
using UnityEngine.Tilemaps;
[Serializable]
[CreateAssetMenu(fileName = "CoastHexagonTile", menuName = "Tiles/CoastHexagonTile")]
public class CoastHexagonTile : HexagonalRuleTile<CoastHexagonTile.Neighbor>
{
public bool isOcean;
public bool isCoast;
public class Neighbor : TilingRule.Neighbor
{
public const int IsOcean = 3;
public const int IsNotOcean = 4;
public const int IsCoast = 5;
public const int IsNotCoast = 6;
}
/// <summary>
/// Checks if there is a match given the neighbor matching rule and a Tile.
/// </summary>
/// <param name="neighbor">Neighbor matching rule.</param>
/// <param name="other">Tile to match.</param>
/// <returns>True if there is a match, False if not.</returns>
public override bool RuleMatch(int neighbor, TileBase tile)
{
var other = tile as CoastHexagonTile;
switch (neighbor)
{
case Neighbor.IsOcean:
return other && other.isOcean;
case Neighbor.IsNotOcean:
return other && !other.isOcean;
case Neighbor.IsCoast:
return other && other.isCoast;
case Neighbor.IsNotCoast:
return other && !other.isCoast;
}
return base.RuleMatch(neighbor, tile);
}
}
编辑:不幸的是,由于某种原因,似乎并非所有规则板 block 都遵守规则。我在大 map 上以编程方式设置每个图 block ,我想知道这是否是根本原因。
其他编辑:好的,我发现为了正确呈现图 block ,需要调用 Tilemap.RefreshAllTiles() 方法。我认为只有在运行时四处移动并以编程方式设置磁贴时才会出现这种情况。
关于c# - Unity 2D Tilemap 自定义六角规则瓦片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60824529/
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在制作一个游戏,世界地图将由称为 Tiles 的 block 创建。所有图 block 都保存在单个 PNG 文件中,类似于下面发布的文件: 我需要分割这个图像并将所有这些 block 分别存储在
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Android custom control to display map tiles 我是 Java 的新
我使用 raster2pgsql 将栅格文件导入到 PostGIS 中,我设置了 -t 50x50,它生成了大约 500 行。我知道这些 -t 将光栅分成小块,并且 rid 可以为它们编制索引。我看到
我正在我的移动应用(Cordova 应用)中使用 Google map 。其中我在 map 上制作一些多边形作为边界。我希望用户也可以在离线模式下查看边界/多边形。对于离线 map ,我正在使用 Le
我现在有这个代码:http://jsfiddle.net/DK67k/2/这里是 2D 瓦片 map ,当你点击瓦片时,你会得到坐标。但是要获得精确坐标,您需要单击左上图 block (图 block
我正在开发一款 Mario 游戏,需要有关如何为图 block map 创建命中检测的帮助和建议。 目前,玩家可以步行/跳跃穿过方 block 。我现在在地面上添加了一个固定检测,我希望用常规的命中检
我正在尝试以灰度显示通过 Cartopy 的 img_tiles 模块下载的图 block 。那是因为我想覆盖彩色编码的卫星数据,并且我更喜欢背景尽可能不分散注意力。 source code 中记录的
问题来了。我有大小为 1 的矩形 Canvas 。因此它的坐标系为 (0.0 ... 1.0 - x 和 0.0 ... 1.0 - y)。 我也有一些瓷砖。瓷砖也是矩形的。它们有不同的大小,瓷砖的数
由于 - (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView 在从缓存中加载图 block 时未调用,是否有办法知道何时加载了所有图 block
我阅读了 google android api 并且对 map 图 block 是什么感到困惑,因为该 api 描述了 google map 如何处理“下载 map 图 block ”。(来源)- h
我一直在尝试在我的 flutter 应用程序的卡片最左边放置一个线条指示器。我尝试了很多东西但没有用。 有一个确切的问题here ,这实际上是我一直试图解决的同一个问题。 公认解决方案的问题是它限制了
最近我正在使用 Phaser.js 开发一个游戏,我开始需要我的瓦片 map 对象,我来看看这个 video . 唯一的问题是看到这个的“ Sprite 制造对象”example ,这个方法用到了ma
我对 libgdx 瓦片 map 中单位比例的实现感到很困惑。例如,如果我将我的单位比例指定为 1/16f,并让一个 Actor 在我的逻辑世界中从 (0,0) 移动到 (0,1),那么 Sprite
我已经为此工作好几天了。我在关卡编辑器中创建了一个瓦片 map 。它可以很好地加载到我的代码中,但是当我遍历这些图 block 时,它们都没有显示为具有定义。不确定我做错了什么。 一切运行正常,但它不
所以我正在尝试构建一个由图 block 组成的基于 3D 的世界。 我已经使用平面几何形状和高度值等成功地做到了这一点。但现在我已经到了可能不得不改变一切的地步。 问题是我想要一个图 block 具有
我遵循将瓦片 map 转换为视网膜显示的指南,方法是将宽度和高度的大小更改为对象的大小和位置的两倍。但正常显示的结果与视网膜显示不同 正常显示正确但视网膜显示不正确 这是非视网膜瓦片 map 这是视网
我正在用 SFML 制作一个 2D 游戏,我正在尝试弄清楚如何与瓦片 map 中的瓦片发生碰撞。我已经编写了一些代码,但问题是我卡在了正在碰撞的方 block 中,如下图所示。我无法向任何方向移动,播
我正在创建一个 HTML5 平台游戏,使用对象进行碰撞检测并使用 2d 图 block map 来渲染关卡。这就是全部工作。 我想使用相同的二维数组动态构建对象数组,以允许玩家根据需要构建 map ,
我正在尝试使用 libgdx 为我的家人制作一个简短的圣诞节游戏,当向前穿过关卡时,屏幕边缘会闪烁,但当向后移动时,没有闪烁,这很烦人。 Here是我的意思的演示。 此外,这是我的代码: if (di
我是一名优秀的程序员,十分优秀!