En este momento estás viendo ¿Cómo puedo destruir un clon de un Prefab en Unity 3D?

 – Unity

¿Cómo puedo destruir un clon de un Prefab en Unity 3D? – Unity

¿Cómo puedo destruir un clon de un Prefab en Unity 3D?

– UnityAssets3Free

buenas , soy jorge y en esta ocasion os traigo
esta unity pregunta

Estoy tratando de hacer que un proyectil (en mi caso, una rebanada de pizza) se destruya tan pronto como recorra una cierta distancia. No tengo errores en mi código y no sé qué estoy haciendo mal, ayúdenme, soy bastante nuevo en la codificación en Unity. (Tengo un comentario escrito donde necesito ayuda)

Aquí está mi guión:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour

    private float horizontalInput;
    private float speed = 12.0f;
    private float leftBoundary = -10.0f;
    private float rightBoundary = 10.0f;

    public GameObject pizzaPrefab;
    private GameObject pizza;

    // Start is called before the first frame update
    void Start()
    
        
    

    // Update is called once per frame
    void Update()
    
        horizontalInput = Input.GetAxis("Horizontal");

        transform.Translate(Vector3.right * Time.deltaTime * speed * horizontalInput);

        if (transform.position.x < leftBoundary)
        
            transform.position = new Vector3(leftBoundary, transform.position.y, transform.position.z);
        

        if (transform.position.x > rightBoundary)
        
            transform.position = new Vector3(rightBoundary, transform.position.y, transform.position.z);
        

        // This is the part i need help on!!!
        if (Input.GetKeyDown(KeyCode.Space))
        
            pizza = Instantiate(pizzaPrefab, transform.position, pizzaPrefab.transform.rotation) as GameObject;

            if (pizza.transform.position.z > 35)
            
                Destroy(pizza);
            
        
    

1 respuesta 1

Su verificación para destruir «pizza» está EN LA BARRA ESPACIADORA, lo que significa que solo intentará destruir «pizza». if (y > 30 AND spacebar pressed)

Mueva su control de destrucción de «pizza» a FUERA de la barra espaciadora.

(Preferiblemente, el objeto Pizza debería tener su propio MonoBehaviour verificando su posición en lugar de depender del objeto que lo disparó, pero no estoy de acuerdo).

//beginning of Update()

if (Input.GetKeyDown(KeyCode.Space))

    pizza = Instantiate(pizzaPrefab, transform.position, pizzaPrefab.transform.rotation) as GameObject;


if (pizza.transform.position.z > 35)

    Destroy(pizza);


//end of Update()

nota: si aun no se resuelve tu pregunta por favor dejar un comentario y pronto lo podremos de nuevo , muchas gracias

sin mas,espero que te halla servido

Deja una respuesta