我刚开始学习团结和游戏开发。我有疑问
我想创建Map。这个地图将从服务器获取带有“开始”的数组,并且可能是当前地图的img 用户将从星星旅行到星星。
问题是:
1)假设我返回11颗星和img for curernt map:
1) - 如何显示用户现在的位置。在服务器上,我可以知道他从2到3星旅行,我知道用户将在那里(明星#3)在4分钟内 - 如何将“用户点”放在2-3开始之间,每秒移动用户点更接近3星?
什么是创建动态地图的最佳实践 - 我的意思是 - 当用户将在11开始时完成他的游戏 - 我想用新的动态启动返回用户新地图并且他将开始新地图旅行
对你说英语语法很抱歉。答案 0 :(得分:2)
我怎样才能把#34;用户点"在2-3开始和每秒之间移动用户 点接近3星?
使用Vector2.Lerp
来做到这一点。通过第一个位置和第二个位置,然后传递0.5(一半)到时间参数它应该在第一个和第二个位置之间返回中点。 / p>
执行此操作的辅助函数:
Vector2 getMidPoint(Vector2 userPointA, Vector2 userPointB)
{
return Vector2.Lerp(userPointA, userPointB, 0.5f);
}
我知道他从2到3星旅行,我知道用户会 那里(明星#3)在4分钟内
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));