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 scott-plutovr · Dec 01, 2015 at 10:26 AM · editor-scriptingmenuitemversion control

What is the correct syntax for UnityEditor.VersionControl.Provider.GetAssetByPath?

I tried the following as a test,

         if (!Provider.enabled || !Provider.isActive) { return false; }
 
         var asset = Provider.GetAssetByPath(Path.GetFullPath(Application.dataPath));

yet asset is always null.

This logic is in a function that is being called from a MenuItem so it is running in the context of the UnityEditor (not in play mode). The path returned from Path.GetFullPath(Application.dataPath) looks perfectly valid.

I am on Windows 10, using Unity 5.2.3f1. Version Control is Perforce.

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 Dave-Carlile · Dec 01, 2015 at 01:29 PM

According to the Provider.GetAssetByPath documentation:

Returns null if the path is not known by the Unity Editor.

It seems likely that only assets within the project folder and below would be "known" to the editor. You're trying to get version control information for an object that isn't in the project folder.

Comment
Add comment · Show 2 · 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 scott-plutovr · Dec 01, 2015 at 06:15 PM 0
Share

I did read that, I also read that according to the Application.dataPath documentation [1],

"Contains the path to the game data folder (Read Only).

The value depends on which platform you are running on:

Unity Editor: /Assets"

In this example, Path.GetFullPath(Application.dataPath) ends up creating a string (I added the quotation marks for readability), "D:\\src\\P4ROOT\\PlutoP4\\DemoV2\\Assets" that when passed to Provider.GetAssetByPath causes a return of null.

Application.dataPath creates "D:/src/P4ROOT/PlutoP4/DemoV2/Assets" and when passed to Provider.GetAssetByPath it also returns null.

However, just "Assets" works fine. I'm thinking the paths may need to be relative rather than fully qualified?

[1]: http://docs.unity3d.com/ScriptReference/Application-dataPath.html

avatar image Dave-Carlile scott-plutovr · Dec 01, 2015 at 06:44 PM 0
Share

$$anonymous$$y bad - I was thinking of Application.persistentDataPath. But yes, it would make sense that the paths are relative paths. That would be consistent with how Resources.Load works for example. I'm not seeing anything that specific in the documentation but your testing seems to support it.

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

How to integrate a new version control plugin into Unity? 0 Answers

Editor Script does not save changes 1 Answer

Variables modified on other scripts through a Editor Script reset on Play? 1 Answer

How do you run File->Build Settings... from code? 0 Answers

Editor Scripting Question 1 Answer


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