【发布时间】:2019-02-09 01:58:42
【问题描述】:
我正在尝试制作一个简单的游戏,其中玩家绕着一个球体奔跑,并且必须避开与球体表面上的物体的碰撞。为了让游戏稍微复杂一点,我试图随着时间的推移缩小球体。
我遇到的主要问题是我无法保持球体表面上附着的障碍物(障碍物在表面上产生并旋转,以便障碍物的顶部从球体的中心)同时缩小它。
这是我的星球缩小代码的样子:
void Update()
{
transform.localScale *= 1f - shrinkSpeed * Time.deltaTime;
}
这是我试图以与球体收缩过程相同的速度向内移动障碍物的代码(此代码也在更新函数中):
foreach (GameObject obstacle in GameObject.FindGameObjectsWithTag("Obstacle"))
{
Vector3 shrinkDirection = obstacle.transform.position - myTransform.position;
obstacle.transform.Translate(-shrinkDirection * (1f - shrinkSpeed * Time.deltaTime));
}
障碍物刚刚飞走,我也尝试了几种方法,例如使用障碍物的 localPosition,但没有任何效果。即使在缩小球体的同时,如何使障碍物附着在球体的表面上?注意:障碍物不是球体的孩子。
【问题讨论】:
-
障碍物是球体的子对象还是独立的游戏对象?
-
@derHugo 它们是独立的游戏对象。文章末尾是这么写的
-
哦,好吧,我明白了……障碍本身不应该缩小吧?