A* on WP8 and W8

Hi

I have prepared a new package. This should work in the editor as well.
http://arongranberg.com/wp-content/uploads/secretstuffdonttellanyone/PathfindingProject_Win8_WebsiteDownload.unitypackage

Before importing the package

  • Delete the Assets/Plugins folder or if you have other stuff in it as well, delete:
    • All MarkerMetro.Unity.WinLegacy.dll (there might be more than one)
    • All Pathfinding.Ionic.Zip.dll ( there might be more than one)
    • All Pathfinding.JsonFx.Json.dll (there might be more than one)
  • Delete the AstarPathfindingProject folder

After importing the package
You will have to reconfigure all your graph settings otherwise you will get the “There are no graphs in the scene” error.

Note that only Navmesh graphs and Grid graphs are supported by this package. Other graph types cannot be serialized.

Hello

I’m working on a student project with Microsoft and have been using your plugin for our pathfinding. Worked great on PC. Once we tried building it for the Surface Pro 2, a few scripts break ( Missing MarkerMetro ). After commenting some stuff out we got it to work. But since we are procedurally generating our levels we have been using the point graph system.

Do you have a ETA on when that will be supported?
We are on a tight schedule and would appreciate any support.

Thanks in advance
/Simon from FutureGames

We were able to get A* pathfinding working with the last package available in this thread.

However, it does not seem to pass WACK for a Windows 8.1 store app for the following reasons:

API System.IO.StreamReader.#ctor in MSCORLIB, PUBLICKEYTOKEN=B77A5C561934E089 is not supported for this application type. MarkerMetro.Unity.WinLegacy.dll calls this API.

The binary MarkerMetro.Unity.WinLegacy.dll is built in debug mode.

Would you have happen to have an updated version of this dll that meets the above criteria? We are trying to push to the store within the next day and this is the only issue we are having at the moment.

Thanks,
Chris

@cjones

Try to just delete that dll and all references to it. Because I don’t think I actually use any of the code in it at the moment.

@Palmen

Try to download the package from the same link again. I think I added support for point graphs in one recent update.

hmm, well i did all the steps, unity gave me 4-5 errors about missing the MarkerMetro.Unity.WinLegacy.dll file, here and there

so i skipped that step(left all markermetro files undeleted, using an older backup)…
afterwards, i still got errors regarding Jsonfix.dll stuff, altho i had all the Pathfinding.JsonFx.Json.dll files deleted.

so i went on a rampage and deleted almost every freaking file that had “jsonfx” in it :smiley:
and now it works on my WP8… FINALLY, for the first time :slight_smile:

not too sure about the Store tho, dont have anything worth submitting in the mean time :)… and i hope that my project wouldnt need any Jsonfx files ever on the long run.

I tried the new version and point graphs now work, great! But I still have the issue that using system.threading isn’t supported on windows apps. It seems like a difficult fix. Any plans on making it work for windows store apps?

I build for windows store.

Ok. Do you think you could do me a favor and test to build it for windows phone and then check if it passes the windows phone verification test?

I can confirm that the free version now works when building for Windows App Store (Tested on a Surface Pro). I guess the difference is that the free version does not use System.Threading. Thanks for the support!

Hi

@Palmen
The free version does use System.Threading. Up to one thread is supported. On W8 I have had to work around it and implement stuff using tasks instead because they have banned real threads.

When releasing for windows phone using the windows app store. Do you build for windows store or for windows phone in unity then?

Hi

Updated the package.
This version passes WACK for windows store apps.
I am not sure if it’s just my installation of unity of something, but shouldn’t windows phone use basically the same API as windows store? When I try to build the same package for windows phone, it refuses to accept any of my windows store changes and I have to revert to the original.

http://arongranberg.com/wp-content/uploads/secretstuffdonttellanyone/PathfindingProject_Win8_WebsiteDownload.unitypackage

This is the free version of the project.

It would be great if someone else could test it and confirm that it works for Windows Store. Also it would be nice if someone could test the windows phone compilation because I think something might be wrong with my setup.

Hello, sorry for taking so long to post an update.

As someone mentioned earlier, the latest package works perfectly on a Windows Store built app but not on Windows Phone. This is the error I’m getting while trying to build the project.

Error building Player: Exception: Error: method System.Reflection.Assembly System.Reflection.Assembly::GetAssembly(System.Type) doesn’t exist in target framework. It is referenced from Assembly-CSharp.dll at System.Void Pathfinding.AstarData::FindGraphTypes().

I just imported the package on a clean and new project.

Best.

Hey Aron,

I confirm the same error as Arturo’s (Unity 4.5.1, Windows Phone):
Error building Player: Exception: Error: method System.Reflection.Assembly System.Reflection.Assembly::GetAssembly(System.Type) doesn’t exist in target framework. It is referenced from Assembly-CSharp.dll at System.Void Pathfinding.AstarData::FindGraphTypes().

Would it be possible to fix it somehow soon?

Regards

Hi

Hm…
Try to open the “Optimizations” tab and enable “ASTAR_FAST_NO_EXCEPTIONS”. That should disable that section of the code and use a hard coded list instead, it is used on iPhone, it seems it might be needed on WinPhone as well.

Ok, after ticking “ASTAR_FAST_NO_EXCEPTIONS” I get this:

Error building Player: Exception: Error: method System.Type System.Type::GetInterface(System.String) doesn’t exist in target framework. It is referenced from Pathfinding.JsonFx.dll at System.Type Pathfinding.Serialization.JsonFx.JsonReader::GetGenericDictionaryType(System.Type).
Error: method System.Type System.Type::GetInterface(System.String) doesn’t exist in target framework. It is referenced from Pathfinding.JsonFx.dll at System.Void Pathfinding.Serialization.JsonFx.JsonReader::PopulateObject(System.Object&,System.Type,System.Collections.Generic.Dictionary2<System.String,System.Reflection.MemberInfo>,System.Type). Error: methodSystem.Type System.Type::GetInterface(System.String)doesn't exist in target framework. It is referenced from Pathfinding.JsonFx.dll at System.Void Pathfinding.Serialization.JsonFx.JsonWriter::Write(System.Object,System.Boolean). Error: methodSystem.Object System.Enum::ToObject(System.Type,System.UInt64)doesn't exist in target framework. It is referenced from Pathfinding.JsonFx.dll at System.Enum[] Pathfinding.Serialization.JsonFx.JsonWriter::GetFlagList(System.Type,System.Object). Error: typeSystem.ComponentModel.TypeDescriptordoesn't exist in target framework. It is referenced from Pathfinding.JsonFx.dll at System.Object Pathfinding.Serialization.JsonFx.TypeCoercionUtility::CoerceType(System.Type,System.Object). Error: methodSystem.ComponentModel.TypeConverter System.ComponentModel.TypeDescriptor::GetConverter(System.Type)doesn't exist in target framework. It is referenced from Pathfinding.JsonFx.dll at System.Object Pathfinding.Serialization.JsonFx.TypeCoercionUtility::CoerceType(System.Type,System.Object). Error: typeSystem.ComponentModel.TypeDescriptordoesn't exist in target framework. It is referenced from Pathfinding.JsonFx.dll at System.Object Pathfinding.Serialization.JsonFx.TypeCoercionUtility::CoerceType(System.Type,System.Object). Error: methodSystem.ComponentModel.TypeConverter System.ComponentModel.TypeDescriptor::GetConverter(System.Type)` doesn’t exist in target framework. It is referenced from Pathfinding.JsonFx.dll at System.Object Pathfinding.Serialization.JsonFx.TypeCoercionUtility::CoerceType(System.Type,System.Object).

Hi again

I have uploaded a new windows 8/windows phone beta here: http://arongranberg.com/astar/download if anyone could try it out that would be great.

hey aron, maybe u can contact Microsoft for a dev phone… or buy urself a Lumia 520, , pretty cheap… if ur in the US , u can find it for 60$ unlocked or something… worth the money if u ask me , can always double as a cheap GPS device too :), the offline maps are great on it :wink: