我尝试着为自己的游戏创造一个类似于《辐射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
向它移动。速度可以是任何数字,你可以把它设为一个公共变量,以便在检查器中查看和修改。
这肯定不是六边形的,也没有寻路器,但你至少可以移动。