• 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 TobiasPott · Dec 20, 2011 at 11:30 PM · editorprefabassetpostprocessorexample

adapting replace prefab example

Hello,

I'm currently working on a custom importer and facing some problems on prefab creation. Due to this problems I'm facing back on the very beginning of prefab creation to make my import pipeline a little less complex.

I was looking on the code example provided on the EditorUtility.ReplacePrefab documentation page.

The example works in a way for me when using the menu item generated with the example. But adapting the example to a AssetPostprocessor.OnPostprocessAllAssets(..) method to create an GameObject (with some simple components like MeshRenderer and MeshFilter) and use this instead of the "Selection" stuff from the example. The scripts runs fine but the prefab is never been replaced with the GameObject.

// it's C# code, instead of the variables you might use static string values:

 // string _impAssetDirBase = "Assets/";    
 // string _impAssetName = "MyPrefabName/";
 // string _extPrefab = ".prefab";
 
 GameObject goInstance = new GameObject(_impAssetDirBase + _impAssetName);
 goInstance.AddComponent<MeshFilter>();
 goInstance.AddComponent<MeshRenderer>();

 string localPath = _impAssetDirBase + _impAssetName + _extPrefab;
 UnityEngine.Object prefab = EditorUtility.CreateEmptyPrefab(localPath);
 EditorUtility.ReplacePrefab(goInstance, prefab);
 AssetDatabase.Refresh();

 UnityEngine.Object.DestroyImmediate(goInstance);
 GameObject clone = (GameObject)EditorUtility.InstantiatePrefab(prefab);

Except of the GameObject I create at the beginning the code is the same as in the linked example inside the documentation. But it does not work =(. Are there any limitations on prefab creation or the ReplacePrefab method which I'm not aware of?

I hope anyone can give me a hint to solve this problem. Thanks in advance

Kind regards Tobias

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
0

Answer by klay · Sep 30, 2012 at 06:51 PM

It might be that "/" at the end of _impAssetName...

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

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.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



Follow this Question

Answers Answers and Comments

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Instantiate prefab in the editor 1 Answer

Set Prefab position when added to scene (Edit mode) 1 Answer

How to modify prefab permanently via script. 0 Answers

Breaking a prefab connection 7 Answers

How to Load/Unload assets in Editor? 0 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges