I recently tried creating a script for starting another process and communicating with it. It seemed to work fine and everything compiled, but unity’s console complained giving the following error:

Assets/FTPUpload.cs(99,36): error CS1061: Type `System.Diagnostics.Process' does not contain a definition for `StandardInput' and no extension method `StandardInput' of type `System.Diagnostics.Process' could be found (are you missing a using directive or an assembly reference?)

Since I can easily locate StandardInput in the script, and it compiles fine, I’m stumped. And I would like to know if anyone else experience the same problem? Or know of a workaround / solution.

To recreate simply try this small script StandardInputTest.cs:

using UnityEngine;
using System.Collections;
using System.Diagnostics;

public class StandardInputTest : MonoBehaviour {
    void Start()
    {
        Process test = new Process();
        test.StandardInput.WriteLine();
    }
}

Thanks in advance!

  1. Visit: http://docs.unity3d.com/412/Documentation/ScriptReference/MonoCompatibility.html
  2. Wait for the page to load. It’s very very very long.
  3. Search for “Class: Process”
  4. Observe a list of all the members that are supported.
  5. Scroll down and see StandardInput has webplayer in red meaning that this member is not supported on webplayer.