GameObject CreateACardAtPosition(CardAsset cardAsset, Vector3 position, Vector3 eulerAngles) { GameObject card; if (cardAsset.IsCreatureCard) { card = GameObject.Instantiate(GlobalSettings.Instance.CreatureCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject; } else { if (cardAsset.Targets == TargetingOptions.NoTarget) { card = GameObject.Instantiate(GlobalSettings.Instance.NoTargetSpellCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject; } else { card = GameObject.Instantiate(GlobalSettings.Instance.TargetedSpellCardPrefab, position, Quaternion.Euler(eulerAngles)) as GameObject; // pass targeting options to DraggingActions DragSpellOnTarget dragSpell = card.GetComponentInChildren <DragSpellOnTarget>(); dragSpell.Targets = cardAsset.Targets; } } // apply the look of the card based on the info from CardAsset OneCardManager manager = card.GetComponentInChildren <OneCardManager>(); manager.cardAsset = cardAsset; manager.LoadFromCardAsset(); return(card); }