我刚刚开始学习unity和游戏开发。我有个问题
我想创建Map。这张地图将从服务器上获得带有“star”的数组,可能当前地图用户的img将从一颗星旅行到另一颗星。
问题包括:
1)假设我为curernt map返回11个星和img:

1)-如何显示用户现在的位置。在服务器上,我可以知道他从2星到3星,我知道用户将在4分钟内到达(星#3) -我如何才能将“用户点”置于2-3星之间,并且每秒钟将用户点移动到更接近3星的位置?
创建动态地图的最佳实践是什么--我的意思是-当用户在11点开始时结束他的游戏时-我想返回到具有新的动态开始的用户新地图,他将开始新的地图旅行
谢谢你,很抱歉我的英语语法。
发布于 2016-05-13 03:17:27
我怎样才能把“用户点”放在2-3开始和每一秒移动用户点到3星之间?
使用Vector2.Lerp可以做到这一点。传入第一个位置和第二个位置,然后向时间参数传入0.5(half),它应返回第一个位置和第二个位置之间的中点。
执行此操作的帮助器函数:
Vector2 getMidPoint(Vector2 userPointA, Vector2 userPointB)
{
return Vector2.Lerp(userPointA, userPointB, 0.5f);
}我可以知道他从2星到3星旅行,我知道用户将在4分钟内到达(星#3)
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));
https://stackoverflow.com/questions/37195484
复制相似问题