Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Airmand1 · Jan 28, 2019 at 05:57 PM · c#listcustom class

Difficulty with acessing data in a list from a custom class

I know what the issues are with what I am trying to do but I do not now how to remedy them. I am making a simple clone card game and have a list of "cards". These cards are defined in a custom class "Deck". Whenever I try to access the list to randomly select cards I get a few errors.
I have a different list that is just a list of Game Objects with the same name that works correctly. It is commented out for now. The reason I had for the new list is that I wanted to assign value to the cards rather than only list them. The errors I'm receiving are.

(64,30): error CS0029: Cannot implicitly convert type Deck' to UnityEngine.GameObject'

(67,20): error CS1502: The best overloaded method match for System.Collections.Generic.List.Remove(Deck)' has some invalid arguments** **(67,27): error CS1503: Argument #1' cannot convert UnityEngine.GameObject' expression to type Deck'

Deck Class

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 [System.Serializable]
 public class Deck : MonoBehaviour
 
 {
     public GameObject theCard;
     public int cardValue;
     public string cardName;
 
     public Deck (GameObject theCard, int cardValue, string cardName)
     {
         this.theCard = theCard;
         this.cardValue = cardValue;
         this.cardName = cardName;
     }
 }

GamePlay Script

 public class GamePlay : MonoBehaviour {
 
     public  GameObject cur_Card;
     private int cardIndex;
 
     public Button deckButton;
 
     private int total_Cards;
 
     public GameObject game_Master;
     private CardDeck deckScript;
     private Deck dScript;
 
     // Use this for initialization
     void Start () 
     {
         deckButton.onClick.AddListener(DealCards);
 
         deckScript = GetComponent<CardDeck>();
 
         total_Cards = deckScript.cards.Count;
 
         Debug.Log("Total Cards = " + total_Cards);
 
 
     }

    ///////////////////THIS IS WHERE THE ERRORS ARE LOCATED/////////////////

     //Button for dealing cards
     private void DealCards()
     {
         if(cur_Card.active)
         {
             cur_Card.SetActive(false);
         }
 
         print("Deal a Card!");
         cardIndex = Random.Range (0, total_Cards);
         cur_Card = deckScript.cards[cardIndex];
         Debug.Log("Current Card: " + cur_Card.name);
         cur_Card.SetActive(true);
         deckScript.cards.Remove(cur_Card);
         total_Cards = deckScript.cards.Count;
     
     }
 }


Script that initializes the List

 public class CardDeck : MonoBehaviour 
 {
     //public List<GameObject> cards = new List<GameObject>();
     public List<Deck> cards = new List<Deck>();
 
 }

Comment
Add comment · Show 6
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image DCordoba · Jan 28, 2019 at 06:19 PM 1
Share

first error: inside class GamePlay check the function DealCards() check the last lines, two line above the last you have

      deckScript.cards.Remove(cur_Card);

you are trying to remove from a list of Deck a cur_Card but cur_Card isnt Deck class is a GameObject if you are sure to cur_Card have a Deck script attached do this

      deckScript.cards.Remove(cur_Card.GetComponent<Deck>());

otherwise put a if condition

      Deck scur_Card = cur_Card.GetComponent<Deck>();
      if(scur_Card != null)
          deckScript.cards.Remove(scur_Card);
avatar image DCordoba · Jan 28, 2019 at 06:27 PM 1
Share

second error: on the same function, above the Debug.Log,you are trying to set a item from a Deck list, to is Deck type to a GameObject type variable, just change

      cur_Card = deckScript.cards[cardIndex];

by

      cur_Card = deckScript.cards[cardIndex].gameObject;
avatar image Airmand1 DCordoba · Jan 28, 2019 at 06:37 PM 0
Share

That did remove the errors. However, for some reason it changed how my list shows up in the inspector. I can no longer add game objects or assign values to them per the class Deck.

avatar image Airmand1 DCordoba · Jan 28, 2019 at 06:54 PM 0
Share

To be clear, the way it was when the errors were present, I was able to drag and drop GameObjects from the Hierarchy into the inspector adding to the list cards in CardDeck. It appears that once I make this change cur_Card = deckScript.cards[cardIndex].gameObject; I can no longer drag and drop.

avatar image DCordoba Airmand1 · Jan 28, 2019 at 07:07 PM 1
Share

make sure to each of the cards you are trying to drag & drop, have a least a Deck script attached

Show more comments

1 Reply

· Add your reply
  • Sort: 
avatar image
1

Answer by Vicarian · Jan 28, 2019 at 06:05 PM

Change the declaration of public GameObject cur_Card; in GamePlay.cs to public Deck cur_Card;

Comment
Add comment · Show 4 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Airmand1 · Jan 28, 2019 at 06:51 PM 0
Share

That brought on new issues of "Deck" not containing definitions for Active and SetActive.

avatar image Vicarian Airmand1 · Jan 28, 2019 at 06:53 PM 0
Share

You need to be aware of type. SetActive and similar methods are members of GameObject, so to set them, you need to dereference your list of Deck objects, then access the reference's gameObject property, such as

 List<Deck> deckList = new List<Deck>();

 // deckList[0] = dereference
 // deckList[0].gameObject = access gameObject property of deckList[0] reference
 deckList[0].gameObject.SetActive(true);
avatar image Airmand1 Vicarian · Jan 28, 2019 at 07:07 PM 0
Share

This did fix the errors. However, it caused the same issue that I was referring to in the comments above from DCordoba.
That did remove the errors. However, for some reason it changed how my list shows up in the inspector. I can no longer add game objects or assign values to them per the class Deck. To be clear, the way it was when the errors were present, I was able to drag and drop GameObjects from the Hierarchy into the inspector adding to the list cards in CardDeck. It appears that once I make these changes I can no longer drag and drop.

Show more comments

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

584 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

How to remove an item from a list of custom variables 1 Answer

A node in a childnode? 1 Answer

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

List.Add (new CustomClass()) results in empty entry 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges