Search Unity

Scene Explorer - Remote scene editing

Discussion in 'Made With Unity' started by tgraupmann, Apr 21, 2013.

  1. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    It's about time for a showcase thread.

    Scene Explorer 1,1 is available in the Asset Store: https://www.assetstore.unity3d.com/#/content/7984

    Scene Explorer started as a tool to optimize performance by measuring frames per second on Unity target devices. It's since evolved to be able to remotely activate/deactive scene gameObjects, browse components, and edit fields/properties on components.

    Future plans:
    - Add faster editing performance on reflected fields/properties so you can send a ton of realtime changes
    - Show remote FPS on the host per game Object
    - Improve the host tree view to show ALL items in the scene in a performant way
    - Add remote material/shader editing
    - Other goodies
    - Includes a PDF readme with pictures!

    The evolution of the tool:

    [video=youtube;T54VBN8VXqI]https://www.youtube.com/watch?v=T54VBN8VXqI&list=PL4mjXeDqRBMS5dFZvqV8NDkO z5ZXXTRiq&index=6

    [video=youtube;OcpSdug8pDs]https://www.youtube.com/watch?v=OcpSdug8pDs&list=PL4mjXeDqRBMS5dFZvqV8NDkO z5ZXXTRiq&index=5

    [video=youtube;_XDtcpFFW54]https://www.youtube.com/watch?v=_XDtcpFFW54&list=PL4mjXeDqRBMS5dFZvqV8NDkO z5ZXXTRiq&index=4

    [video=youtube;aSL4ey-IPnU]https://www.youtube.com/watch?v=aSL4ey-IPnU&list=PL4mjXeDqRBMS5dFZvqV8NDkOz5ZXXTRiq&index =3

    [video=youtube;_nlZ2EU6Nuw]https://www.youtube.com/watch?v=_nlZ2EU6Nuw&list=PL4mjXeDqRBMS5dFZvqV8NDkO z5ZXXTRiq&index=2
     
    Last edited: Apr 22, 2013
  2. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    (continued)

    [video=youtube;avWaGslk87w]https://www.youtube.com/watch?v=avWaGslk87w&list=PL4mjXeDqRBMS5dFZvqV8NDkO z5ZXXTRiq&index=1
     
  3. kaz2057

    kaz2057

    Joined:
    Jan 18, 2011
    Posts:
    326
    Good stuff! I follow this. Thanks for sharee
     
  4. sefou

    sefou

    Joined:
    Aug 30, 2011
    Posts:
    287
    email send.
    Thanks .

    sefou
     
  5. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    sent. This key is good to evaluate until the April 26th.

    8b9e561eb5a145a599f0746810758659
     
    Last edited: Apr 23, 2013
  6. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Does this work when game is deployed to iOS?
    If you can add the ability to change shaders that would be huge to be able to quickly measure that sort of impact on performance.
     
  7. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Scene explorer should work on any target platform, including iOS. I tested it on my iPad and it worked fine. I plan on adding the shader manipulation next. The todo futures are: 1) add treeview support for unlimited items 2) add shader manipulation 3) add sending smaller deltas for changes.

    Some other useful info:

    Ignore the client tab option for now.

    Yes you enter the IP address in the SceneExplorerClient of your desktop. The OUYA will auto connect to that IP. There are some things that you have to troubleshoot.


    Turn off any virus scanners.


    Turn off the firewall so that the OUYA can connect to your OUYA over port 80, or whatever port you used.


    In some cases other things are already running on port 80 like Skype, so you have to go into the advanced options to disable Skype from using Port 80.


    Your OUYA also has to be on the same network as your desktop. You can do an adb shell and make sure the OUYA can ping your desktop IP address.


    Also make sure the OUYA Panel is tall enough to see all of the panel. I know it's barebones right now, I plan on making it more collapsible in the future.


    Try that for now.
     
  8. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    I should add that you should be able to hit your desktop with a browser to verify the OUYA can talk to it.

    http://IP:PORT

    So it would be like

    http://127.0.0.1:80

    but with your own IP address. If your browser doesn't get a response, it means either anti-virus, the firewall, or another app is preventing your host from running.

    Follow these steps if you have Skype blocking your host.

     
  9. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Hi, I just purchased this and I can't get it to work. I couldn't get port 80 to work (probably because of Skype) so I changed it to port 81 in both the Windows -> Scene Explorer dialog and the SceneExplorerClient in my opening scene. Then I built to my iPad2. Next, I clicked "Create Host" on my PC (not the Mac that built it, if that matters), and it changed to "state: connected". Now I started the game on the iPad. Unfortunately, the "request scene" button never became enabled. How do I get it to work? Do I have to use port 80 or is that not the problem?

    I think this is a very very useful plugin if I can get it to work. Oh, I also changed "localhost" to the IP Address of my PC and turned off my anti-virus program.
     
    Last edited: Aug 5, 2013
  10. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Excellent. Try browsing your HOST:IP from your device or even from your desktop.

    I.e.

    http://localhost:80

    or

    http://machinename:80

    or

    http://10.0.1.5:80

    or whatever port you used. Just keep in mind that the target device needs to use an IP address because it probably doesn't have a host setting to translate the machine name to an IP.

    And then hitting your desktop from a browser should at least let you know the firewall isn't blocking it.

    And make sure you make the Scene Explorer panel tall enough to see all the clients. I know that it needs a little bit of polish on the UI side.
     
  11. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    I can hit http://localhost:81 from my browser. It tries to download a json file. the Scene Explorer window is 1000 pixels tall and mostly blank. The request scene button is still disabled. What else to try?

    Going to "my IP":81 from the iPad says "They Love Games Network. Welcome : This is a custom response - 24220". It says that even when the host is closed. Very strange.
     
    Last edited: Aug 5, 2013
  12. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    That is a bit strange that it's downloading a JSON file. You should see a response like this:

    =====

    They Love Games Network Welcome : This Is A Custom Response - 369184

    ====

    If you get anything else hitting your server, some other service is returning responses and not the scene explorer.
     
  13. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Awesome, I changed something (not sure what haha) and got it working. Thank you!
     
  14. DziDAI

    DziDAI

    Joined:
    Dec 6, 2012
    Posts:
    68
    Hmm, very strange!

    I bought this package, open demo scene and have a trouble, even when I click on button Create Host In Console I see ExampleCommandHandlerCommon: Unknown SceneExplorer.SceneExplorerCommandHandlerClient ReceiveCommand: SlaveStatusIdle[/]

    How get to work Scene Explorer??

    P.S.: In browser I see "They Love Games Network Welcome : This Is A Custom Response - 2308"
     
  15. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828


    Interesting. The host registers a set of commands, and any command that is not recognized will be logged. It's possible that the communication blob was so large it couldn't decode. Are you using the example scene? How many game objects are in your scene? What version of Unity are you using?

    Thanks
     
  16. DziDAI

    DziDAI

    Joined:
    Dec 6, 2012
    Posts:
    68
    Hi,
    Yes I'am launch an example scene!
    Unity version 4.2.0f4
     
  17. DziDAI

    DziDAI

    Joined:
    Dec 6, 2012
    Posts:
    68
    Hello, Is any solution to get it work on 4.2.0f4?
     
  18. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    In the meantime, you can install Unity 3.5.7 side by side.

    http://unity3d.com/unity/download/archive

    I.e. I usually install with the version number in the path like this:

    C:\Program Files (x86)\Unity-3.5.7\Editor
    C:\Program Files (x86)\Unity-4.0\Editor
    C:\Program Files (x86)\Unity-4.1\Editor
    C:\Program Files (x86)\Unity-4.1.5\Editor
    C:\Program Files (x86)\Unity-4.2\Editor
     
  19. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
  20. DziDAI

    DziDAI

    Joined:
    Dec 6, 2012
    Posts:
    68
    Hello,

    Evalution version for unity3d 4.x has the same problem, (In Console: ExampleCommandHandlerCommon: Unknown SceneExplorer.SceneExplorerCommandHandlerClient ReceiveCommand: SlaveStatusIdle)
     
  21. GenericGame

    GenericGame

    Joined:
    Nov 26, 2012
    Posts:
    206
    I don't get this product. I'm totally confused. Can't I just have a dev console where I can access the game objects in a more simple manner? What are the advantages of using this. I'm dumbfounded by this, please explain as I'm fairly ignorant.
     
  22. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    I'm thinking the only way a system like this plugin can actually work is because it has a web server and client connection. Once you get it working it's smooth sailing.
     
  23. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    I've posted a new Scene Explorer Eval exported with Unity 4.2.
    http://tagenigma.com/ouya/OuyaSDK-1.0.0/

    I'll make a video, it's working as expected. In this build I just removed the client tab from the panel because it wasn't used.

    I think for the folks that saw the disconnects, that could have been a player setting. "Run in background" needs to be checked or when you switch from the Unity app it goes to sleep (a.k.a disconnects) without that checked on your host.

    Edit->Project Settings->Player

    Settings for PC/Mac:

    Under Resolution and Presentation:

    - "Run In Background*" - make sure this is checked.
     
  24. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Here's a video of Scene Explorer running in Unity 4.2:

     
  25. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    And here's how you use the evaluation keys so you can try Scene Explorer.

     
  26. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    I could really use this asset to optimise my scenes.

    However, 3 hours and counting and getting no where.

    I am currently stuck with the evaluation copy (As the asset store version is not compatable with 4.2)

    The open Scene Explorer window is now showing blank. I am getting an endless loop of errors in the inspector whenever I open the Scene Explorer.

    I believe this error manifested when I attempted to enter the license key for the eval version, but missed the last character on my cut'n'paste.

    Error appearing in the console is:

    NullReferenceException: Object reference not set to an instance of an object
    SceneExplorerPanel.OnGUINetworking ()
    SceneExplorerPanel.OnGUI ()
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Applications/buildAgent/work/c514da0c8183631c/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
     
  27. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    To fix my previous problem with the Scene Explorer, I had to do a compete restore of my project. Fortunately, I only lost time...

    I finally got a remote device to connect temporarily.

    Unfortunately it disconnects after a few seconds. I did very briefly get to see my remote scene objects before the disconnection so this gave me some hope, but ended up just costing me more time trying again and again. I tested on two different Android devices, both have the same problem.

    A previous post suggested having the "run in background activated" which I do have set, but does not fix problem.

    The software works very well if I run everything locally on my PC.

    Heads up on the scene explorer, unless you have this sized > 800 in height, you won't get to see the remote device that is connected. The window doesn't scroll or resize, so it is easy to completely miss this information.

    Has anyone successfully run this software on 4.2? I love the concept of this software, but I can't afford to waste more time.
     
  28. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    I've been able to run successfully in 4.2. I had to make sure run in background was on for the host.

    I turned off the firewall and virus checker. I also posted the eval keys.

    The keys are valid for the next couple weeks:

    http://tagenigma.com/ouya/OuyaSDK-1.0.0/

    It also depends on how large your scene might be. The software hasn't been optimized so when you request the scene, it's sending the whole thing.

    So when you test try the example scenes first.
     
  29. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    Hi TGraupmann. My scene only has about 30 objects in it. I had tried turning off virus checker and firewall. Didn't help. I tested seeing if service is accessible through the browser and this responded promptly.

    The comms path is definitely unimpeded because I can get the host to see objects in the scene. It just drops out soon after.

    As per previous post, i am using your latest version from download site with temporary key.

    The software just seems temperamental. i.e. There is some condition it is not handling and unfortunately it gives no clue to the user what is going wrong.

    All your code is wrapped up in DLL's and so I have no capacity to trouble shoot myself.

    I would welcome any suggestions on how to fix problem.
     
    Last edited: Sep 14, 2013
  30. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Can your remote device ping your desktop using the IP address?

    If it's Android you should be able to do a:

    adb shell ping 127.0.0.1

    but use the IP address of your desktop.
     
  31. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489

    Hi Tpgraupmann, I had already done a ping test. But I re-ran this, using -t option for 20 minutes and had no dropped packets. I did it both from android device pinging host pc and from pc pinging android. I ran test using small packets and large packets. All 100% successful.

    As you suggested earlier, I ran your test scene. This has the same issues. I can see it momentarily in the scene explorer host. Then it disappears on the scene search tree.

    I am sure your software works and I would it find it very valuable in isolating performance bottlenecks. I expect my problem is environmental, but I don't know what I need to do to fix it, because the software does not tell me what is failing.

    Scene explorer is missing basic diagnostics. Expose errors to the user. eg: "No response from client, connection terminated". Something to give the user a clue as to what is going wrong.
     
  32. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    I have some diagnostics build in. From a browser if you ping your server by IP. http://IP:PORT You should see a response. And then open your Android device and browse the IP:pORT. If you don't see a response then the network or something is blocking it.
     
  33. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    I didn't explicitly state in my previous post that the browser test was done from the Android device. But this was one of the first trouble shooting steps I did.

    I refreshed several times and it responds promptly with:

    They Love Games Network
    Welcome : This Is A Custom Response - 62400

    To the best of my ability I can confirm that there is no network reason that is causing this problem. (Note: without trying to sound difficult, I have 25 years IT experience working with computer networks and software, I believe I have done a reasonably thorough test of the network)

    The only option left to me to trouble shoot is to stick on a packet sniffer and see what is happening at this level. However, this will take a few hours to setup and I am loathe to trouble shoot the issue at this level when I feel it is a reasonable request that your software which you are selling!! should have give some basic diagnostic feedback to the user when things go wrong.

    Also, please note that I did a clean test with a project that just has your package, nothing else. And I still get the same problem.

    I understand that Scene Explorer works for you and others. And that the problem is most likely an environmental issue with my setup. However, I cannot fix the problem unless your software gives me some diagnostic error message to point me in the right direction.
     
    Last edited: Sep 15, 2013
  34. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Okay sounds like it's not a network issue. The inside (secret implementation) is just your garden variety httplistener so it can be debugged in the browser. I have big plans otherwise it would be full source. When I start adding realtime mesh editing you'll see some sparks.

    I'm thinking I need to do more testing in 4.2. I released this in Unity 3.5.7. So if you want to see it work, you'll need to try that version. I'll see if I can bang out a 4.2 fix and test tomorrow.
     
  35. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    Thx tgraupmann. I appreciate you looking into this.
     
  36. TechnicalArtist

    TechnicalArtist

    Joined:
    Jul 9, 2012
    Posts:
    736
    Hi,

    Useful asset,Looking forward to new features and updates. Good Luck :)

    Dev
     
  37. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Man I ended up debugging another thing yesterday for 4 hours. The answer ended up being changing a long parameter to an int. So lame, it ate all my time. The other issue works.... now.

    I didn't get a chance to look into your issue. I'll take a look as soon as I can.
     
  38. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Still digging....
     
  39. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    I reproduced the issue. I was slammed this week living in C++ and Java land. I'll see if I can fix this weekend. Thanks for waiting...
     
  40. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    A little snag. The Android debugger in Unity 4.2.1 doesn't seem to want to attach in MonoDevelop.

    This is something I never had a problem with in Unity 3.X...

    hmmmmm?????

    Apparently to debug Android now you have to have wireless adb enabled.

    http://answers.unity3d.com/questions/456471/monodevelop-debugging-of-android-player-how-to-att.html

    Still trying to get it to connect. The profiler auto connects. The unity instance on the Android device isn't displaying for me.... (like it usually does)

    Still talking about the Untiy debugger...

    Disabled firewall. Tried connecting the debugger with UnityVS and MD, where both can't detect the Unity instance. Even using wireless adb....
     
    Last edited: Sep 21, 2013
  41. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    I can debug on Mac. Back in business...
     
  42. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Interesting it appears on 4.2.1 that WWW can't handle an empty WWW response body. I'll post a new update...
     
  43. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Okay I've tested the new eval and uploaded. Please give this build a try and if it works, I'll publish the update to the asset store.

    The Unity 3.X and 4.X version of Scene Explorer can be found here:
    http://tagenigma.com/ouya/OuyaSDK-1.0.0/

    You'll find the evaluation key there is good for the next week.
     
  44. Zaddo67

    Zaddo67

    Joined:
    Aug 14, 2012
    Posts:
    489
    Downloaded your latest build and worked beautifully :)

    Please post when this is available from Asset store.

    Thankyou.
     
  45. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Awesome. Glad to hear.
     
  46. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Hi Tim

    I gotten it to connect fine, and but on subsequent connect it will fail. I get this error in the host log

    ExampleCommandHandlerCommon: Unknown SceneExplorer.SceneExplorerCommandHandlerClient ReceiveCommand: SlaveStatusIdle

    I also want to add although I'm connected (on mobile), there is no remote inspector. Treeview enable/disable works. Using demo scene.
     
    Last edited: Apr 8, 2014
  47. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    Sounds like it didn't register the commands. Try closing the host and reopen the panel. Which version of Unity are you using?

    And try making the panel tall so you can see everything.
     
  48. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548
    Ok, I'm back to give this another try. See attached. The remote inspector did not work on sample scene, connected via mobile.

    Also, when I close host, I cannot connect again. I need to restart unity3d to be able to connect.

    Some feedback, it is strange to hardcode the host ip in the client, perhaps you should restructure so that it is the host (unity edfitor) which connects to the client ip.
     

    Attached Files:

  49. tgraupmann

    tgraupmann

    Joined:
    Sep 14, 2007
    Posts:
    828
    The reason for hardcoding the IP address on the client is because the client machines can't lookup the name entry. Also
    unless your client device is rooted, you likely can't edit the hosts file to add IP entries.

    Running a server on a client device is usually restricted.

    Using WWW for the client to connect is typically supported on all platforms without fighting with security policies.

    I'll see about upgrading to the latest Unity 4.5.2.

    I am waiting on the Unity 4.6 release and then I plan on recreating the UI.
     
  50. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,548