Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

144
Views
Reaparece la IA después de destruir

Soy nuevo y tengo dificultades para reaparecer mi IA (en este momento solo es un cubo que sigue a mi jugador) después de que lo destruyan. Creo que es porque la secuencia de comandos se encuentra en el objeto que se destruye. pero que tengo que hacer para reaparecer?

(aunque estoy seguro de que mi código de reaparición no es bueno: \ (Es un proyecto de Android móvil))

 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class EnemyTesting : MonoBehaviour { [SerializeField] public GameObject player; public GameObject enemy; private Rigidbody body; Vector3 accelerationDir; // Use this for initialization void Start() { body = GetComponent<Rigidbody>(); } private void Update() { accelerationDir = Input.acceleration; if (accelerationDir.sqrMagnitude>=5) { EnemyDead(); } } void EnemyDead() { Destroy(enemy); Invoke("Respawn", 5); } void Respawn() { enemy = (GameObject)Instantiate(enemy); enemy.transform.position = transform.position; } // Update is called once per frame void FixedUpdate() { Vector3 toTarget = player.transform.position - transform.position; float speed = 1.5f; transform.Translate(toTarget * speed * Time.deltaTime); } }

¡Muchas gracias!

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Supongo que su GameObject enemy está dentro de la escena que contiene su instancia EnemyTesting MonoBehaviour (corríjame si me equivoco).

Si este es el caso, no puede crear una instancia de un gameObject que se destruye.

Como señaló @derHugo, no debe usar Destroy and Instatiate para su caso de uso . Sería mejor dejar inactivo el GameObject enemy , moverlo a la posición que desees y (re)establecerlo activo. Parecerá que el enemigo reapareció.

Si desea profundizar en el tema más adelante, mire el patrón de optimización del juego de agrupación de objetos .


De lo contrario, si aún desea usar Instanciar para reaparecer, crearía un prefabricado de su GameObject enemy . El GameObject enemy al que se hace referencia en el campo EnemyTesting (en la vista Inspector), sería su prefabricado de la jerarquía del proyecto en lugar de un GameObject dentro de la escena.

De esta forma, podrías instanciar un GameObject enemy tantas veces como quieras (¡y usarlo en otras escenas!). No olvides mantener una referencia al GameObject enemy instanciado para que puedas saber cuál quieres destruir. Se vería así:

 enemy = Instantiate(enemyPrefab, transform.position, transform.rotation);

Puede reemplazar la transform con la transformación de su elección, por ejemplo, la transformación de un enemyRespawnPoint de RespawnPoint enemigo vacío en su Escena.

¿Ves algún error en la consola?

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!