I just switched from UnityScript to C#. I have some custom classes I instantiate within the script attached to a GameObject. When I was using US, I used to be able to see those and all their instance members in the Inspector. Now I cannot - is this an inherent limitation of using C# or can I somehow make those appear again in the Inspector?
They need to be Serializable and public. See the following snippet:
using UnityEngine;
using System;
[Serializable]
public class Pair
{
public int x;
public int y;
}
Only classes that inherit from MonoBehaviour can be attached to GaneObjects. That’s a limitation of Unity, not of a specific language. In UnityScript you can omit the class construct and Unity will inherit your class automatically form MonoBehaviour. In C# you have to do that yourself. If you talk about custom data classes and you have a vatiable on a MonoBehaviour that is holding a class instance, to see it in the inspector your have to add the attribute System.Serializable.
In Unityscript all classes are implicitly serializable.