当对象离开屏幕 Unity2D

问题描述 投票:0回答:1

作为新手,我一直在谷歌上疯狂搜索,希望这里有人能给我一个答案。 我有一个物体(刚体 2D),当它接触到其他刚体时会触发游戏结束屏幕,但如果该物体刚从屏幕上掉下来,游戏就会在没有我的游戏对象的情况下继续进行。 我应该使用哪个代码来使事件“掉出屏幕”触发游戏结束屏幕?

谷歌搜索时没有发现任何有用的东西:(

c# unity3d
1个回答
0
投票

我可以提供两种处理此功能的方法。您可以在循环更新中将对象的坐标与 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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.