- Home /
Draw Gizmos for Non-Monobehaviour objects in an Array
Hey y'all,
I want to draw a series of gizmos, mainly wire cubes, for an object that doesn't derive from MonoBehaviour.
Furthermore, the object gets implemented in arrays and I would only like to draw the gizmos for that object when it is expanded in the array that is being shown in the Inspector. So collapsing the other elements will stop drawing them and reduce the clutter on screen.
I have had a look at the DrawGizmo attribute and when I try to implement it I keep getting an error that reads:
"Assertion failed on expression: 'type != NULL'"
I have no idea if this is the right direction or not, I can't get it to work in the first place so I can't see if it will function as I needed. Here is the code I am using for that (this is just a test script I made to use it in isolation).
This is the Editor script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
public class CubeDrawer : MonoBehaviour
{
[DrawGizmo(GizmoType.Selected | GizmoType.Active)]
static void DrawTheCubes (CubeToDraw cube, GizmoType gType)
{
Gizmos.color = cube.color;
Gizmos.DrawWireCube(cube.centre, cube.size);
}
}
And here is the non-mono class I want to draw. Note that there is a monobehaviour script there aswell, that is just so I can declare a single instance and array of the class I am trying to draw:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestDrawingScript : MonoBehaviour
{
public CubeToDraw cubeOne;
public CubeToDraw[] cubeArray = new CubeToDraw[3];
}
[System.Serializable]
public class CubeToDraw
{
public Color color;
public Vector3 centre = Vector3.zero, size = Vector3.one;
}
This is for a 2D fighting game just FYI and if anyone here has a better way of implementing hit/hurt boxes that would be swell, but what I am trying to do is create an attack class that stores things like the attack's length and chain window as well as an array of boxes so I can adjust the area the attack hits and fit it to the sprite as needed.
Thanks in advance.
Your answer
Follow this Question
Related Questions
What is wrong about this script / why cant the player walk up and down? 1 Answer
How could I disable a click on a sprite when player is moving? 1 Answer
Would a game like ZombieVille USA 2 be considered 2D or 2.5D? 0 Answers
how to make a 2d character three-dimensional? 1 Answer
I Can't Jump, And If I Remove if(isGrounded) I Can Do More Then 10 Jumps IN The Air 1 Answer