weixin_45661471 2023-02-12 00:36 采纳率: 72.7%
浏览 107
已结题

unity 的tilemap如何转化小数点的坐标

unity 中 tilemap 地图在与后端交互的时候,每一针的tilemap的坐标是float,如果将float转int再转为世界坐标,在人物行走的时候,角色会一跳一跳的,很不自然,如何将服务器上的float 的坐标精确的显示在tilemap 的地图上?

  • 写回答

15条回答 默认 最新

  • 快撑死的鱼 2023-02-12 02:40
    关注

    回答不易,求求您采纳点赞哦 感激不尽

    • Unity Tilemap可以通过将提供的浮点坐标转换为整数坐标来实现它。因为Unity系统里的坐标都是以整数格式存储的,所以需要先将服务器端提供的浮点坐标转换成整数格式。这可以通过调用Mathf.RoundToInt()函数来实现。该函数会将提供的float坐标转换为最近的整数坐标,从而提供准确的Tilemap坐标。

    • 此外,为了使角色的行走流畅,一般会使用一个叫“网格抽样”的技术来解决这个问题。它的实现方式是结合对象和目标之间的小数坐标来实现最佳路径。换句话说,如果一个对象在一个目标点的八分之一整数单位位置,这时候网格抽样会把它直接拖向目标点,从而避免角色的跳跃行为。

    • 在这里,我们可以使用Tilemap库中的GridSampler.Sample()函数来实现网格抽样,该函数会将一个介于两个整数坐标之间的浮点坐标转换成一个精确的实际坐标。

    • 总的来说,通过精确的转换浮点坐标来渲染Tilemap地图,并使用网格抽样技术使角色行走流畅,能够解决将服务器上的float 坐标精确显示在tilemap地图上的问题。

    评论

报告相同问题?

问题事件

  • 系统已结题 2月20日
  • 修改了问题 2月12日
  • 修改了问题 2月12日
  • 创建了问题 2月12日

悬赏问题

  • ¥15 Excel发现不可读取的内容
  • ¥15 UE5#if WITH_EDITOR导致打包的功能不可用
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
  • ¥15 算法题:数的划分,用记忆化DFS做WA求调
  • ¥15 chatglm-6b应用到django项目中,模型加载失败
  • ¥15 CreateBitmapFromWicBitmap内存释放问题。