Creating custom objects?

I’m looking to create a card trading game similar to Magic The Gathering.

I want to create a way to be able to easily make a card. So that in the Start() function I can simply initialise all my cards. Each card will need to have a unique ID for reference (Probably the objects name), to later be put into an array.

In my head, I know what I need to do, I’m just having an issue translating it into code as this is my first solo project.

After a bit of research I think it has to be done this way, and I just want it confirming by someone a bit more in the know.

So if I create a function…

Function Card ()
{

var name : String;
var attack : int;
var defence : int;

}

Then in Start(), I can initilise all my cards by using…
var c0001 = new Card();
c0001.name = “Red Creature”;
c0001.attack = 1;

I can then create an array called Cards, using the objects names c0001, c0002 and so on.

Have I got this right?

I believe you are on the right track, but I think what you are talking about is creating a database of cards that you can reference easily and change easily.

You could create a Serialized class and then create a MonoBehaviour with an array of that class made public. You could then simply just modify the GameObject from within Unity and add/remove cards as you need. If you wanted to get fancy, you could create an Editor class for Unity and have a decent interface for creating cards in your CardManager.

using UnityEngine;
using System.Collections;

[Serializeable]
public class Card
{
   public String name = String.Empty;
   public Int32 damage = 0;
   public Int32 defense = 0;
}

public class CardManager : MonoBehaviour
{
   public List<Card> cards = new List<Card>();

   public void Start()
   {
   }

   public void Update()
   {
   }
}

I don’t know why you think Card() should be a function.
I also don’t think you’d be creating new cards in the game, you’d have them all pre-designed.

So I would make each card a prefab, with a mesh and material for its appearance, and attach a “cardScript” on it that holds its stats.

var theDeck : GameObject[];

var myCards : List.<cardScript>();
var yourCards : List.<cardScript>();

function DealCards (howMany : int)
{

}

function CompareCards (first : cardScript, second : cardScript)
{

}

There’s a lot more to this sort of game that you’re going to run into- how you are going to save a player’s cards in a way that isn’t easily cheatable, how to draw a random card with a the right probability based on its rarity, etc.