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
間違って使用していることはわかっています。誰でも問題を解決する方法を知っていますか?
ありがとう