What Remote Inspector is
This asset has the Remote Hierarchy and the Remote Inspector windows for a game running on a mobile device or a PC. You can edit the fields and properties without rebuilding your game! The Pro version allows you to edit material properties and shader keywords.
And, the source code is included! 📦📦📦
The following video shows the basic features.
Basically, you can view the hierarchy and the components of your game running on a remote device. You can edit the fields and properties of them – both private and public ones.
Remote Inspector supports incremental search in the Remote Hierarchy and the Remote Inspector windows.
The following video shows the features of the Pro version.
The pro version allows you to view and edit material properties.
And the incremental search enables you to find material properties.
You can enable or disable shader keywords. As you know, enabling or disabling shader keywords makes Unity select an appropriate shader variant. If you built your APK/IPA or AssetBundles without a specific shader keyword enabled, the corresponding shader variant will not be included in your binary. Therefore enabling that shader keyword makes no effect in such a case.
Who needs this
In a large project, building an APK or an IPA takes many minutes to hours. So just adding a line of a log to your game (to print a variable’s value) can take most of your work time away. But if you build your game with this asset, you can do the following things without rebuilding your game or implementing a custom tool.
- Debugging – View the scene hierarchy and change game objects’ fields and properties without writing any code. Even private fields and properties.
- Performance Tuning – Turn on/off game objects and components to find what drops your game’s FPS down.
- Balancing – Tweak level data during playtests to make your game fun.
Just drop a prefab ‘RemoteInspectorServer’ in your first scene. The prefab has a small web server in it. And it communicates with the Unity Editor parts through the network.
If your PC and your mobile device are in the same network, just type the IP address of your mobile device and the port, and click the Refresh button in the Remote Hierarchy window. The default port is 8080. Or you can change the default port in the RemoteInspectorServer prefab.
Or, if your Android device is connected to your PC through a USB cable, you can make use of ADB’s port forwarding feature. The following command adds a port forwarding setting. If it is succeeded, type ‘localhost:8080’ and click the Refresh button in the Remote Hierarchy window. See Unity document’s ADB profiling section for details.
adb forward tcp:8080 tcp:8080
If you are using IL2CPP, you can not see some components in the Remote Inspector window. It is because IL2CPP strips unused classes by static checking. To prevent it, you need to set up a link.xml file in your Unity project. See Bytecode Stripping page for details.
Remote Inspector has an example link.xml file that preserves all UnityEngine core classes in the Example directory,
Example.link.xml. You need to rename it to
Remote Inspector shows components in a raw form. It’s different from Unity’s built-in inspector which makes use of custom editors. This may confuse you with unknown field and property names. But in some cases, this may help you with the ability to view and change raw values not exposed to Unity’s built-in inspector.
- Type or variable names not to serialize
- Add class types or variable names to SerializationConfig.IsSerializable()
Net Error:Cannot connect to the destination host
First, make sure your game is running with Remote Inspector enabled.Next, you need to check if you can connect to your mobile device from your PC. Type
http://[IP Address]:[Port] in the address bar of your web browser on the PC. Replace the
[IP Address] and
[Port] with the values you typed in the Remote Hierarchy window. If everything is OK, you can see the message
Welcome to Remote Inspector!.
If you are trying to connect your device through WIFI, make sure that your PC and your device are in the same network.
Or, you are trying to connect your Android device through USB/ADB, make sure of your ADB forwarding settings. type below in the command line.
adb forward --list
It will show you the current forward settings like below.
1515fa33f65c3282 tcp:8080 tcp:8080