0

gameobject/sprite現在、完全に画面外に移動してUnityから破棄するようにスクリプトを作成しようとしています。しかし、現在のコードでは、スプライトは画面外に完全には移動しません。

これが私の現在のコードです:

void MoveObstacle()
{
    this.transform.position -= new Vector3(this.transform.position.x, speed * Time.deltaTime, this.transform.position.z);

}

void CheckIfOffscreen()
{
    Vector3 spriteSize = this.GetComponentInChildren<Renderer>().bounds.size;
    Debug.Log(spriteSize);

    Vector3 screenPos = Camera.main.WorldToScreenPoint(this.transform.position);

    if(screenPos.y < 0 - spriteSize.y/2)
    {
        this.DestroyObstacle();
    }
}

void DestroyObstacle()
{
    Destroy(gameObject);
}

このコードの問題は、スプライトが破棄される前に、スプライトが完全に画面外に移動しないことです。スプライトの半分が画面外になると消えますが、それは私が望む動作ではありません。

何かが足りないか、spriteSize間違って使用していることはわかっています。誰でも問題を解決する方法を知っていますか?

ありがとう

4

1 に答える 1