- Home /
How to add "Add Component" like field in custom inspector?
I want to select a component type from inspector and would be looking for adding something selecting your component. Ideally it would also have the support for base classes unlike this field. I just want to know a type that would be selected in inspector. I do not need an instance of an object.
I am aware it could be done using string and checking if the component exists or just defining a list of custom enums but I am hoping for a more clean method.
If you won't find the answer, You can always check it out in source code. (it's somewhere. I don't remember where)
Answer by AaronXRDev · Nov 09, 2018 at 03:53 PM
Are you looking for a way to add your own components to that menu? To do that, you can add them like this:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[AddComponentMenu("Aaron Assets/Destroyable")]
public class Destroyable : MonoBehaviour
{
void OnCollisionEnter(Collision col)
{
if (col.gameObject.tag == "projectile")
{
Destroy(gameObject);
}
}
}
You can adjust the paths as they appear in the Add Component menu any way you want using slashes. Each of the following could be used in a different class to add the related context menu items:
[AddComponent$$anonymous$$enu("$$anonymous$$onster Pack/Abilities/Fire Breath")]
[AddComponent$$anonymous$$enu("$$anonymous$$onster Pack/Abilities/Ice Shield")]
[AddComponent$$anonymous$$enu("$$anonymous$$onster Pack/Abilities/Fire Breath")]
[AddComponent$$anonymous$$enu("$$anonymous$$onster Pack/Personas/Aggressive")]
[AddComponent$$anonymous$$enu("$$anonymous$$onster Pack/Personas/Passive")]
Your answer
Follow this Question
Related Questions
How to make a custom type's contents modifiable in an array by inspector? 1 Answer
Making a character's idle animation loop. (model and animation created in blender) 0 Answers
Unity has stopped dynamically displaying changes via the inspector while in the game view. 1 Answer
Customizing Inspector variables. 2 Answers
Using [SerializeField] vs public 2 Answers