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 Zky28 · Jun 19, 2017 at 05:35 AM · material color

how to change material color direct from the material

Hi guys ,I need to change material`s color of the object that share with the same material,thx.

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

3 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Sonu-Modi · Jun 19, 2017 at 05:54 AM

Make a Public Material variable, in the inspector assign the material... and in the code... Use xyzMaterial.color = whatEverColorYouWant;

You can also try Renderer.Material.color

Comment
Add comment · Show 1 · Share
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 Zky28 · Jun 19, 2017 at 06:52 AM 0
Share

thanks your reply ,the question is ,i just want to change the material`s color of the object that already assigned. if use this code "rend = GetComponent();",it just change the individual material`s color of the object.i just want to change all the material`s color of the object that share with the same material

avatar image
0

Answer by bobisgod234 · Jun 19, 2017 at 05:54 AM

https://docs.unity3d.com/ScriptReference/Material-color.html

If you have multiple objects that use the same material, that will change all the objects materials.

Comment
Add comment · Share
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
0

Answer by ifurkend · Jun 19, 2017 at 08:39 AM

To change a material color without affecting other instance like particle system or trail renderer, you need to assign your color to the mesh vertices. Any shader which calls the "COLOR" semantic (deliver color value from each mesh vertex of object component) to multiply the resultant color like all shaders under the (Mobile/)Particles category do. Obviously it would be extravagant to use particle system for merely changing mesh color, so you need a script which changes the mesh vertex color within the same object. The following code is modified from the official API of Mesh.colors:

 using UnityEngine;
 using System.Collections;
 
 public class meshVertexColor : MonoBehaviour {
     public Color color;
     Mesh mesh;
     Vector3[] vertexArray;
     Color[] colorArray;
     
     void Start () {
         mesh = GetComponent<MeshFilter>().mesh;
         vertexArray = mesh.vertices;
         colorArray = new Color[vertexArray.Length];
         for (int i = 0; i < vertexArray.Length; i++)
             colorArray[i] = color;
         mesh.colors = colorArray;
     }
     
     void Update () {
     }
 }

If you want to update color during runtime, move the for loop and mesh.colors to Update function. Most non-particle shaders do not use COLOR semantic to multiply albedo color, you will need to customize your own shader for that purpose. For most shaders adding COLOR semantic is very straightforward even for rookie. Standard Shader is bit tricky but currently there is an official beta Standard Particle Shader (which uses COLOR semantic) for testing.

Comment
Add comment · Show 1 · Share
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 Zky28 · Jun 19, 2017 at 09:14 AM 0
Share

Thanks your reply

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

68 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

Related Questions

Changing material Color using RBG? 3 Answers

Having trouble with renderer.material 1 Answer

How to change multiple objects' material (color) with one button? 2 Answers

ExecuteInEditMode doesn't work on instantiated list of objects? 1 Answer

HDRP has no Emission effect,HDRP Setting emission has no effect 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