gameObject超出屏幕边缘

时间:2019-05-25 09:56:21

标签: c# unity3d random 2d

我有我2D游戏角色的这段代码。在随机的屏幕位置重生角色时,效果很好,但是问题是此代码可与我的游戏角色中心一起使用,我的意思是它会生成中心位置到随机范围,并且在屏幕的边缘,我的鉴赏家快了一半屏幕外...我需要在任何Android设备上都可以使用此代码,但我不知道该如何解决。任何人一个简单的解决方案?

对不起,我的初学者英语。

dp(sum, i - 1)

1 个答案:

答案 0 :(得分:0)

由于2D角色是一个精灵,因此它必须具有一个精灵渲染器组件。您可以使用以下方式来获得优势:

Bounds bounds = transform.GetComponent<SpriteRenderer>().bounds;

,您可以编辑代码,例如:

float generateX()
{
    float x = Random.Range(Camera.main.ScreenToWorldPoint(new Vector2(0, 0)).x, Camera.main.ScreenToWorldPoint(new Vector2(Screen.width, 0)).x);
    //add/remove extents to x value to keep sprite in bounds of screen
    if(x < 0) 
        x += bounds.max.x;
    else 
        x -= bounds.max.x;
    return x;
}