- Home /
How to remove a specific instance of a prefab from List?
Lets say the player picks up a clip. After the ammo runs out from that clip, What could I used to remove that clip from his inventory "List"? Here is the testing script I am using to find the appropriate command.
and the List script as well.
using UnityEngine;
using System.Collections;
public class PlayerScript : MonoBehaviour {
// Update is called once per frame
void Update () {
//Using Input to test this function
if (Input.GetKeyDown(KeyCode.Space))
{
Inventory invy = gameObject.GetComponent<Inventory>();
invy.items.Remove();
}
}
}
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Inventory : MonoBehaviour {
//public GameObject[] items;
public List<GameObject> items;
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
}
void OnGUI()
{
GameObject sphere = GameObject.FindWithTag("Sphere");
if (sphere != null && items.Contains(sphere))
{
GUI.Label(new Rect(100, 100, 100, 100), "You have a (or this many) sphere(s)");
}
}
}
Answer by SkaredCreations · Mar 22, 2014 at 06:57 PM
You have the reference to the clip gameobject, I suppose, so you will use invy.items.Remove(yourClipGameObject) By the way you should cache the Inventory script into a variable inside a Start function of PlayerScript instead of use GetComponent each time, for performance reason.
If I have lets say 3 clips, how would that know which one to delete or wouldn't it delete all of them since they are initially the same object(Since clips are a prefab)
because in your code you will refer to it as this.gameObject for example using the line written by SkaredCreations above:
invy.items.Remove(this.yourClipGameObject);
Your answer
Follow this Question
Related Questions
A node in a childnode? 1 Answer
Find specific prefab in a list 2 Answers
Changing the Variables of An Instanced Script 2 Answers
How to refer to a collision between clones of the same prefab? C# 1 Answer
Unknown remaining objects after removing and destroying from list and parent game objects 0 Answers