作为新手,我一直在谷歌上疯狂搜索,希望这里有人能给我一个答案。 我有一个物体(刚体 2D),当它接触到其他刚体时会触发游戏结束屏幕,但如果该物体刚从屏幕上掉下来,游戏就会在没有我的游戏对象的情况下继续进行。 我应该使用哪个代码来使事件“掉出屏幕”触发游戏结束屏幕?
谷歌搜索时没有发现任何有用的东西:(
我可以提供两种处理此功能的方法。您可以在循环更新中将对象的坐标与 Max-Min 值匹配,或者您可以在屏幕边界之外添加游戏结束触发区域。例如:
bool isGameOver;
float xMaxValue = 10; // X value (or -X) of Your right/left screen borders
float yMaxValue = 15; // Y value of Your top screen border
float yMinValue = -5;// Y value of Your bottom screen border
private void Update() {
Vector3 playerPos = transform.position;
If (playerPos.x < -xMaxValue || playerPos.x > xMaxValue ||
playerPos.y < yMinValue || playerPos.y > yMaxValue ) {
isGameOver = true;
}
或边界区域的脚本(检查他们的 collaider 组件“是触发器”复选框):
void OnTriggerEnter2D(Collider2D col) {
// PlayerScriptName - name of script on Your player GameObject
// Or You can compare tags, or use other approaches to check
// is triggered object a player
if (col.gameObject.TryGetComponent<PlayerScriptName>
(out PlayerScriptName playerScript)) {
// In this case field isGameOver must have
// public access level (in PlayerScriptName class):
playerScript.isGameOver = true;
}
}