我该如何创造一个基于六边形网格的移动系统,让你像在Unity中点击《辐射1》那样移动



我尝试着为自己的游戏创造一个类似于《辐射1》和《辐射2》的移动系统。这是一个六边形网格,玩家可以点击其中一个六边形,角色就会选择最短的路径到达那个六边形。有没有人知道我是怎么做到的?

我尝试过使用Unity的贴图系统,但我不知道如何制作一个系统,你点击一个六边形,玩家就会移动到那里。

你所做的是2D对吗?你可以使用这一行来获取鼠标位置并将其转换为世界位置,将其放在播放器脚本中:

Vector3 mouseWorldPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

,然后你可以用:

移动播放器
Vector2 direction = new Vector2(mouseWorldPos.position.x - Player.position.x, mouseWorldPos.position.y - transform.position.y);
direction.Normalize();
GetComponent<RigidBody2D>().MovePosition(transform.position + (direction * speed * Time.deltaTime));

这获得了mouseworldpos和玩家之间的方向,然后使用rigidbody向它移动。速度可以是任何数字,你可以把它设为一个公共变量,以便在检查器中查看和修改。

这肯定不是六边形的,也没有寻路器,但你至少可以移动。

最新更新