Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • 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 Potatobob · Aug 28, 2016 at 10:46 AM · c#variableinspectoreditor-scriptingfor loop

How can I create variables for each materials to show in inspector (Using Editor) ?

Hi, I have been trying to find my solution by making various searches on google first but couldn't get the answer I was looking for.

My problem is that I need a custom script that will show public variable that are added to a C# script via the editor.

To clarify: When adding the script 'CoreMats' to an object I want it to create new variables for each materials attached to this gameobject.

I do know how to get the amount of materials on the object and make the loop out of it But I still need to learn to create variables through the editor.

Right now: my Editor script create a button on the "CoreMats" script in the editor. This button calls a function in the CoreMats script that iterate through each materials attached. Like so:

 using UnityEngine;
 using System.Collections;
 using UnityEditor;
 
 [CustomEditor(typeof(CoreMats))]
 public class CoreMatsEditor: Editor 
 {
     public override void OnInspectorGUI()
     {
         DrawDefaultInspector();
         
         CoreMats myScript = (CoreMats)target;
         if(GUILayout.Button("Generate"))
         {
             myScript.CreateVariables();
         }
     }    
 }

This is the actual code I need to create new variables on.

 using UnityEngine;
 using System.Collections;
 using System;
 
 [Serializable]//I think this is required.
 
 public class CoreMats : MonoBehaviour {
 
     //Create variables in the inspector on this script if possible.
     public void CreateVariables () 
     {
         Material[] myMats = GetComponent<MeshRenderer>().materials;
         if (myMats[0] != null)//just making sure the user doesnt break anything...
         {
             for (int i = 0 ; i < myMats.Length; i++)// for each materials attached to this object
             {
                 //Here I need to create custom variables...
                 //The variables I want to create should appear in the inspector as public.
             }
         }
         else
         {
             Debug.LogError("No materials were found on '" + this.name + "' thus it created nothing");
         }
     }
 }
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.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

How to access one class instance in editor script? 1 Answer

TexturePropertySingleLine in Editor class 0 Answers

HideInInspector with inherited variables 1 Answer

Execute method from unknown script set as variable in inspector 1 Answer

Reorderable list of UnityEvents 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges