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 /
  • Help Room /
avatar image
0
Question by MartinsWar · Feb 19, 2019 at 04:54 AM · c#scripting problemrendererskinnedmeshrenderer

accessing materials from skinned mesh renderer

I am trying to swap shaders on objects at runtime when they are clicked on. after they are clicked off i want the shader to be returned to the standard shader and the original material to be reapplied. I have been able to get this to work with a normal mesh shader but only if i set the material in the inspector. I am trying to assign the material that is on the object at startup to be reapplied. I have not been able to do this in any capacity and have not been able to extract an array of materials from an object with children using a SkinnedMeshRenderer. I would really appreciate any help, i have been working on this for many hours with no luck.

This is the important code:

     MeshRenderer newRenderer;
     SkinnedMeshRenderer[] skinRenderer;
 
     public Material[] mat;          // array for materials currently on object and children for MeshRenderer
     public Material[] sMat;         // array for materials currently on object and children for skinnedMeshRenderer
     Renderer[] childMats;           // Materials on parent and all applicable children
 
 
     Shader shader;      // standard shader
     Shader outline;     // Shader I want to swap with
 
 void Start()
     {
         newRenderer = this.GetComponent<MeshRenderer>();
         newRenderer = this.GetComponent<MeshRenderer>();
 
         skinRenderer = this.GetComponentsInChildren<SkinnedMeshRenderer>();
 
 
         if (newRenderer != null)
         {
             childMats = this.GetComponentsInChildren<Renderer>();
             foreach (Renderer rend1 in childMats)
             {
                 Material[] mat = rend1.materials;
             }
         }
 
         if (skinRenderer != null)
         {
             childMats = this.GetComponentsInChildren<SkinnedMeshRenderer>();
             foreach (SkinnedMeshRenderer rend1 in childMats)
             {
                 Material[] sMat = rend1.materials;
             }
         }
     }


These next sections of code are called when an object is clicked on (OnFocus) and when it is clicked off of (OnDeFocused):

   public void OnFocused (Transform playerTransform)
     {
         isFocus = true;
         player = playerTransform;
         hasInteracted = false;
         if (newRenderer != null)
         {
             newRenderer.material.shader = Shader.Find("Outlined/UltimateOutline");
         }
 
         if (skinRenderer != null)
         {
             skinRenderer.materials.shader = Shader.Find("Outlined/UltimateOutline");
         }
     }
 
     public void OnDeFocused ()
     {
         isFocus = false;
         player = null;
         hasInteracted = false;
         if (newRenderer != null)
         {
             newRenderer.material = new Material(Shader.Find("Standard"));
             gameObject.GetComponent<Renderer>().materials = mat;
             Debug.Log("DeFocus");
         }
 
         if (skinRenderer != null)
         {
             skinRenderer.materials = new Material(Shader.Find("Standard"));
             gameObject.GetComponent<Renderer>().materials = mat;
             Debug.Log("DeFocus");
         }
 
     }

The error I am getting is in the two functions, "OnFocused" and "OnDeFocused" specifically when trying to swap shaderes here:

         if (skinRenderer != null)
         {
             skinRenderer.materials.shader = Shader.Find("Outlined/UltimateOutline");
         }
 
 
         if (skinRenderer != null)
         {
             skinRenderer.materials = new Material(Shader.Find("Standard"));
             gameObject.GetComponent<Renderer>().materials = mat;
             Debug.Log("DeFocus");
         }

The error is " 'UnityEngine.SkinnedMeshRenderer[]' does not contain a definition for 'materials' and no extension method 'materials' of type 'UnityEngine.SkinnedMeshRenderer[]' could be found. Are you missing an assembly reference?"

I found that there is SkinnedMeshRenderer.materials in the api but cant get it to work. I also cant seem to get the inspector to extract the current materials on the objects.

I hope someone can help me with this, thanks.

Comment
Add comment · Show 2
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
avatar image TreyH · Feb 19, 2019 at 12:40 PM 1
Share

You wouldn't change shaders -- you'd change materials.

Shaders have fields for properties that are populated when you create a material from them. You can access and change a Skinned$$anonymous$$eshRenderer's materials whenever and however you want.

$$anonymous$$ake a second set of materials using the other shader and swap them out that way.

avatar image MartinsWar TreyH · Feb 20, 2019 at 01:21 AM 0
Share

Great thanks so much! I haven't worked with shaders or materials much, fixed the code no problem knowing this.

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

676 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 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 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 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

Script able to target two cameras? 0 Answers

PLEAASEE I NEED HELP!!! How to turn Mesh Renderer of cubes on and off by pushing buttons? 1 Answer

Weapon Sway Script messes up weapon rotation 1 Answer

The roll a ball script isn't working :(((( 2 Answers

2D smooth rotation (Quaterion slerp solution?) 0 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