- Home /
Question by
jbastien1929 · Dec 04, 2021 at 04:36 PM ·
gameobjectscriptableobjectgame development
How to make my selector print the name of the scriptableobject when the selector is over scriptableobject?
Im trying to make a character selection screen where you move the selector with the arrow keys over the player icon. The movement was easy and I was able to make the icon with a scriptableobject and they load inside a grid equally space apart. Im having a difficult time with making it so when the selector is over the icon/scriptable object it prints the icons name(to make sure it works)I used a prefab for the character icon
[System.Serializable]
[CreateAssetMenu(fileName = "New Character", menuName = "Character")]
public class Character : ScriptableObject
{
public string characterName;
public Sprite characterSprite;
}
This is the code for the icon^
public class GameCSS : MonoBehaviour
{
public List<Character> characters = new List<Character>();
public GameObject charCellPrefab;
void Start()
{
foreach (Character character in characters)
{
SpawnCharacterCell(character);
}
}
private void SpawnCharacterCell(Character character)
{
GameObject charCell = Instantiate(charCellPrefab, transform);
Image artwork = charCell.transform.Find("artwork").GetComponent<Image>();
artwork.sprite = character.characterSprite;
}
}
Code for spawning icon in the grid^
public class CursorDetection : MonoBehaviour
{
private GraphicRaycaster gr;
private PointerEventData pointerEventData = new PointerEventData(null);
// Start is called before the first frame update
void Start()
{
gr = GetComponent<GraphicRaycaster>();
}
// Update is called once per frame
void Update()
{
pointerEventData.position = Camera.main.WorldToScreenPoint(transform.position);
List<RaycastResult> results = new List<RaycastResult>();
gr.Raycast(pointerEventData, results);
//For every result returned, output the name of the GameObject on the Canvas hit by the Ray
if (results.Count > 0)
{
print(results[0].gameObject.name);
}
}
}
Code for selector detecting icon^
Comment