• Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by MartinTV · Dec 02, 2018 at 01:22 AM · 2d2d-gameplaygizmos

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.

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

189 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

I Can't Jump, And If I Remove if(isGrounded) I Can Do More Then 10 Jumps IN The Air 1 Answer

Is using velocity.y + someNumber a bad idea? 1 Answer

How do you make a collision which doesn't stop your sprite but make the object disappear? 3 Answers

What is the best way to draw a 2D sine wave? 3 Answers

How do you make a ground slam 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges