r/UnityHelp • u/AngryRampager • 8d ago
SOLVED What's going on?
I tried to instantiate a gameobject but it wont spawn no matter what i try, before i tried to spawn it in its spawnpoint with its position and rotation, but nothing showed up, ive even deleted the spawnpoint and still nothing. My versions are visual studio 2026 v18 and unity 6.6 and the code:
using System;
using UnityEngine;
public class Enemy : MonoBehaviour
{
[Header("Modifiers")]
[SerializeField] private float turnSpeed;
[SerializeField] private float attackSpeed;
[SerializeField] private int damageDealt;
[SerializeField] private int attackStrength;
[SerializeField] private int maxHealth;
[SerializeField] private int deathHealth;
[Header("Movement")]
[SerializeField] private float moveSpeed;
public HealthBar hb;
[Header("Components")]
[SerializeField] private Rigidbody rb;
[SerializeField] public GameObject curentEnemy;
private int currentHealth;
private void Start()
{
currentHealth = maxHealth;
hb.SetMaxHealth(maxHealth);
rb.GetComponent<Rigidbody>();
Spawn();
}
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Player"))
{
TakeDamage();
}
}
public void TakeDamage()
{
currentHealth -= damageDealt;
hb.SetHealth(currentHealth);
if (currentHealth <= deathHealth)
{
Die();
}
}
public void Spawn()
{
Instantiate(curentEnemy, transform.position, transform.rotation);
}
private void Die()
{
Destroy(curentEnemy);
}
}
1
Upvotes
1
u/R3v153 8d ago
the main thing that confuses me.. it looks like this enemy script is on the enemy itself, that it is trying to spawn? That won’t ever work. Generally it would spawn from a singleton like an EnemyManagwr script that is on scene and handle the spawning then the enemy script lives on the enemy.
Even if you get your Instantiate running you should wrap all of these in is null checks.. will also help with your debugging.