Question by
Lastered · May 31, 2021 at 02:14 PM ·
gameobjectinstantiate
Why can't I use a prefab in the GameObject slot?
Hi, I'm new to Unity and game developing entirely so I'm sorry for any misunderstandings I may cause. While working on a top down dungeon crawler project I noticed that when using my wepon.cs script I could not select a prefab as the gameObject to Instantiate. Instead, I can only select a gameObject from the hierarchy. I couldn't find anyone with the same issue or a solution to it so any help will be greatly appreciated.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class wepon : MonoBehaviour
{
public GameObject bulletPrefab;
public Transform firePoint;
[SerializeField]
private float shootReady = 1;
[SerializeField]
private float bulletsPerMag = 8;
[SerializeField]
private float bullets;
[SerializeField]
private float reloadTime = 3;
[SerializeField]
private float reloading = 0f;
[SerializeField]
private Color noAmmo = Color.white;
[SerializeField]
private Color hasAmmo = Color.white;
private Renderer rend;
void Start()
{
rend = GetComponent<Renderer>();
}
void Update()
{
if (bullets >= 1)
{
rend.material.color = hasAmmo;
}
else
{
rend.material.color = noAmmo;
}
if (Input.GetKeyDown(KeyCode.Mouse0))
{
if (shootReady == 1 && bullets >= 1)
{
bullets = bullets - 1;
Shoot();
}
}
if (bullets <= 0 && reloading == 0)
{
reloading = 1;
shootReady = 0;
Invoke("reload", reloadTime);
}
}
void Shoot()
{
Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);
}
void reload()
{
reloading = 0;
shootReady = 1;
bullets = bulletsPerMag;
}
}
Comment