error CS0120: An object reference is required to access non-static member
this line on my code
"BoardManager.SpawnChessman(mySecondCanvas11.Constants.PIECE_QUEEN,x,y);"
working ok on the manager script put when i moving it to other script and trying to accessing to it fromm other script i get this error
Assets/Scripts/mySecondCanvas11.cs(24,49): error CS0120: An object reference is required to access non-static member `BoardManager.SpawnChessman(int, int, int)'
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class mySecondCanvas11 : MonoBehaviour {
public BoardManager _SpawnChessman;
public static class Constants
{
//public const int PIECE_KING = 0;
public const int PIECE_QUEEN = 1;
public const int PIECE_ROOK = 2;
public const int PIECE_BISHOP = 3;
public const int PIECE_KNIGHT=4;
public const int PIECE_PAWN = 5;
}
public void PromotePiece (int type)
{
switch (type) {
case Constants.PIECE_QUEEN:
//BoardManager.SpawnChessman(1, x, y);
BoardManager.SpawnChessman(mySecondCanvas11.Constants.PIECE_QUEEN,x,y);
//activeChessman.Remove(selectedChessman.gameObject);
//Destroy(selectedChessman.gameObject);
break;
case Constants.PIECE_ROOK:
// code to make a rook
break;
// and so on
}
}
}
Answer by stanogg · Aug 26, 2016 at 07:28 PM
You need a reference to the BoardManager class as its not static. Add this to your class:
public BoardManager boardManager;
and then use it like that
boardManager.SpawnChessman(mySecondCanvas11.Constants.PIECE_QUEEN,x,y);
or you can use a singleton pattern if you always have only one board manager in your scene.
public class BoardManager : MonoBehaviour {
public static BoardManager instance;
void Awake(){
if(!instance){
instance = this;
}else{
Destroy(gameObject);
}
}
and access it like that :
BoardManager.instance.SpawnChessman(mySecondCanvas11.Constants.PIECE_QUEEN,x,y);
hope this helps!
Your answer
Follow this Question
Related Questions
My GameObject disappears when running this script. 0 Answers
The laser problems 0 Answers
Add 2D Skeleton to the Scene if Button was pressed 0 Answers
Integer arrays not comparing properly. 3 Answers
How to remove an item from a list of custom variables 1 Answer