Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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
3
Question by Julien-Lynge · Mar 08, 2015 at 09:12 PM · uishadermaterial

Set unity_GUIZTestMode in UI Shaders?

I'm using uGUI, and I have a few canvases in world-space, spread throughout a scene, that I want to render on top of everything else.

Rendering these canvases on top is fairly simple: download the built-in shader source code for 5.0, grab (say) the UI/Default Font shader, make a copy, and set the Queue to Overlay and the ZTest to Always.

However, when I opened up the shader, I noticed that the ZTest is set as:

 ZTest [unity_GUIZTestMode]

This seems eminently useful! It seems like if you could set this value, you could:

  • Create a material that uses the UI/Default Font

  • Apply this material to all elements on a given UI

  • Set the unity_GUIZTestMode for this sharedMaterial

That way, I'm not modifying the built-in shaders, and when the next version of Unity comes out I don't have to check all my hacked shaders and update them to match whatever changes Unity has made to the default shader.


Here's the issue:

I've never seen this particular shader setup before. I know how to do, say, material.SetFloat. But there is no 'set string' or 'set enum' or similar. I'm pretty sure this isn't a shader keyword (those are set in the #pragma statements). I've looked through the source with ILSpy and searched on Google, and I can't figure out where this value is being set.

So how the heck can you set the unity_GUIZTestMode in a material from script? Is there a way to do it? Or do I just have to make a copy of all the shaders and do it the hacky way?

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

21 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

Related Questions

UI Text - changing material instance 1 Answer

How to improve shader to render UI text correctly / DOF Cam / 0 Answers

Part of text with different material 1 Answer

How to Set Custom UI Image Material Render Order? 0 Answers

UI/Default stencil buffer for only parent? 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