首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有当前用户位置的二维地图

具有当前用户位置的二维地图
EN

Stack Overflow用户
提问于 2016-05-13 03:06:38
回答 1查看 88关注 0票数 0

我刚刚开始学习unity和游戏开发。我有个问题

我想创建Map。这张地图将从服务器上获得带有“star”的数组,可能当前地图用户的img将从一颗星旅行到另一颗星。

问题包括:

1)假设我为curernt map返回11个星和img:

1)-如何显示用户现在的位置。在服务器上,我可以知道他从2星到3星,我知道用户将在4分钟内到达(星#3) -我如何才能将“用户点”置于2-3星之间,并且每秒钟将用户点移动到更接近3星的位置?

创建动态地图的最佳实践是什么--我的意思是-当用户在11点开始时结束他的游戏时-我想返回到具有新的动态开始的用户新地图,他将开始新的地图旅行

谢谢你,很抱歉我的英语语法。

EN

回答 1

Stack Overflow用户

发布于 2016-05-13 03:17:27

我怎样才能把“用户点”放在2-3开始和每一秒移动用户点到3星之间?

使用Vector2.Lerp可以做到这一点。传入第一个位置和第二个位置,然后向时间参数传入0.5(half),它应返回第一个位置和第二个位置之间的中点

执行此操作的帮助器函数:

代码语言:javascript
复制
Vector2 getMidPoint(Vector2 userPointA, Vector2 userPointB)
{
    return Vector2.Lerp(userPointA, userPointB, 0.5f);
}

我可以知道他从2星到3星旅行,我知道用户将在4分钟内到达(星#3)

代码语言:javascript
复制
IEnumerator moveWithinTime(GameObject playerToMove, Vector2 fromPointA, Vector2 toPointB, float byTime)
{
    float counter = 0;

    while (counter < byTime)
    {
        counter += Time.deltaTime;
        playerToMove.transform.position = Vector2.Lerp(fromPointA, toPointB, counter / byTime);
        yield return null;
    }
}

并将其称为StartCoroutine(moveWithinTime(gameObject, gameObject.transform.position, new Vector2(10f, 10f), 4));

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37195484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档