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
4
Question by MrCranky · Feb 08, 2013 at 03:49 PM · prefabeditor-scriptingpropertiesoverride

Script for Revert Value to Prefab

I have an unusual issue that I'm trying to solve with an Editor script fixing tool. Basically I have many instances of an animated mesh, imported from an FBX object, across multiple scenes. For some reason, the skinned mesh renderer component of a child object of that prefab has, after it's been imported, had its Materials property baked in. As in, changes to the underlying FBX object to change the materials are not reflected in the many instances of the object. Not the other properties (like quality, light probes, etc.), just the Materials array. I've no idea why that is, I can't recreate when it happens, although I do hand off these scenes to artists to edit and it may be something they're doing. It doesn't really bother me, although it would also be nice to find out why.

Anyway, to fix this issue, I use scene filtering to get a list of the the objects with the mesh renderer component which is faulty. In the inspector, I simply right-click the Materials array and do 'Revert Value to Prefab', and it reverts to using the correct materials straight from the prefab. My problem: there are dozens of these instances, across a score of scenes. I can't bulk select the instances and do it, because the 'Revert Value to Prefab' context option doesn't appear.

I do have an editor helper script that can easily iterate over the instances in the scene, but the only way I have of reverting to the prefab values is the object-wide PrefabUtility.RevertPrefabInstance(theObject). That's not a workable solution, because there are other child objects added to the instances that I must preserve. I need a per-property revert to prefab.

So my question is: is the "Revert Value to Prefab" functionality exposed to the scripting system somehow, and if so, how?

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

1 Reply

· Add your reply
  • Sort: 
avatar image
5
Best Answer

Answer by jpease · Jul 25, 2014 at 05:54 AM

 SerializedProperty sp = new SerializedObject(theComponent).FindProperty("thePropertyName");
 sp.prefabOverride = false;
 sp.serializedObject.ApplyModifiedProperties();
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 KirillKuzyk · Mar 10, 2016 at 08:26 PM 0
Share

Thanks, this works flawlessly! But you need to call this twice to restore property to prefab (make it not bold).

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

11 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

Related Questions

Unity editor context scripts - on object selected draw text near it 1 Answer

Editor Script: Linking GameObjects to public script variables resets when playing. 1 Answer

Editing Terrain prefabs directly from a custom editor window. Updates not applying to scene instances. 0 Answers

Bullet (Prefab) Shooting. Colliders take properties of one 0 Answers

Created Prefabs and added them into a List in Editor Mode, after PlayMode, these GameObject are not in the List anymore 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