【发布时间】:2016-05-05 23:17:38
【问题描述】:
我正在尝试创建一个游戏,您可以在其中爬上墙壁,障碍物会朝您而来:
我使用以下代码使障碍物移动工作:
public class ObstacleSpawn : MonoBehaviour {
public PlayerScript pScript;
public ObstacleScript oScript;
public GameObject player;
public GameObject obstacle;
public float randomSpawnMin;
public float randomSpawnMax;
// Use this for initialization
void Start () {
InvokeRepeating ("Spawn", 2F, Random.Range (randomSpawnMin, randomSpawnMax));
}
// Update is called once per frame
void Update () {
}
void Spawn() {
if (pScript.isRight == true && pScript.inAir == false) {
obstacle.transform.localScale = new Vector3 (-1, 1, 1);
Instantiate (obstacle, player.transform.position + new Vector3 (0.05F, (4F + pScript.playerDimensionY + oScript.obstacleDimensionY) * Time.deltaTime, 0), Quaternion.identity);
} else if (pScript.isRight == false && pScript.inAir == false) {
obstacle.transform.localScale = new Vector3 (1, 1, 1);
Instantiate (obstacle, player.transform.position + new Vector3 (-0.05F, (4F + pScript.playerDimensionY + oScript.obstacleDimensionY) * Time.deltaTime, 0), Quaternion.identity);
}
}
}
可以看出,我使用 Instantiate 来决定我的障碍物在哪里产生。目前它设置为在玩家位置 + 我的 Vector3 处生成。对于我的 Y 轴,我决定放入 4F + playerDimensionY 和 barrierDimensionY,它们是我的精灵大小的一半,所以距离是从障碍物底部到玩家顶部,而不是精灵原点。
这可以正常工作,但我创建这个游戏的目的是为了进行反应测试。我需要障碍物来产生固定的秒数。 1 秒后,0.5 秒后等。
我如何实现这一目标?我尝试测量长度与它向下移动的速度相比,但没有成功。它目前移动了 4 个 Unity 单位。
亲切的问候
【问题讨论】:
标签: c#