You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed.
I have an issue with MonoBehavior with these 2 script. I'm trying to make a grid and it work, but I also get this error " You are trying to create a MonoBehaviour using the 'new' keyword. This is not allowed. MonoBehaviours can only be added using AddComponent(). Alternatively, your script can inherit from ScriptableObject or no base class at all UnityEngine.MonoBehaviour:.ctor() Node:.ctor(Boolean, Vector3) (at Assets/Script/Node.cs:10) Grid:CreateGrid() (at Assets/Script/Grid.cs:37) Grid:Start() (at Assets/Script/Grid.cs:19)" I don't really understand this, how can I solve this ? Here's the 2 scripts that i'm using to make the grid.
public class Node : MonoBehaviour {
     public bool walkable;
     public Vector3 worldPosition;
 
     public Node(bool _walkable, Vector3 _worldPos)
     {
         walkable = _walkable;
         worldPosition = _worldPos;
     }
 }
 public class Grid : MonoBehaviour {
 
     public Vector2 gridWorldSize;
     public float nodeRadius;
     public Node[,] grid;
     public LayerMask unwalkableMask;
     float nodeDiameter;
     int gridSizeX, gridSizeY;
     void Start()
     {
         nodeDiameter = nodeRadius * 2;
         gridSizeX = Mathf.RoundToInt(gridWorldSize.x / nodeDiameter);
         gridSizeY = Mathf.RoundToInt(gridWorldSize.y / nodeDiameter);
         //grid = new Node[gridSizeX, gridSizeY];
         CreateGrid();
 
     }
     void Update()
     {
         //CreateGrid();
     }
     public void CreateGrid()
     {
         grid = new Node[gridSizeX, gridSizeY];
 
         Vector3 worldBottomeLeft = transform.position - Vector3.right * gridWorldSize.x / 2 - Vector3.forward * gridWorldSize.y / 2;
         for(int x = 0; x < gridSizeX; x++)
         {
             for (int y = 0; y < gridSizeY; y++)
             {
                 Vector3 worldPOint = worldBottomeLeft + Vector3.right * (x * nodeDiameter + nodeRadius)+ Vector3.forward * (y * nodeDiameter+ nodeRadius);
                 bool walkable = !(Physics.CheckSphere(worldPOint, nodeRadius, unwalkableMask));
                 grid[x, y] = new Node(walkable, worldPOint);
             }
         }
     }
 
     private void OnDrawGizmos()
     {
         Gizmos.DrawWireCube(transform.position, new Vector3(gridWorldSize.x, 1, gridWorldSize.y));
         if(grid != null)
         {
             foreach(Node n in grid)
             {
                 Gizmos.color = (n.walkable) ? Color.white : Color.red;
                 Gizmos.DrawCube(n.worldPosition, Vector3.one * (nodeDiameter - .1f));
             }
         }
     }
 }
NV$$anonymous$$ I've solve it. The problem was because I have the Node class set as a $$anonymous$$onoBehavior. removing that part solve it.
Your answer
 
 
             Follow this Question
Related Questions
Using arrays of vector3s to avoid new 1 Answer
Help with arrays of arrays please 2 Answers
Very slow performance when variable has serialize tag 3 Answers
Adding components via parameter 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                