実行時に変数のアクセシビリティをUnity C#で変更する余地があるかどうかを知りたいですか?なぜなら、スクリプトが別の状態を使用しているときに、不要なパブリック変数を隠すためです。いくつかの動的変数を試しましたが、見つからないというエラーが出ます。 私はそれがspringDistance
ですが、trapType
の状態がspringOut
の場合にのみ使用したいと思います。 いくつかのコード:インスペクタの実行時に変数のアクセシビリティを変更する
public class SpringTrap : MonoBehaviour
{
private Transform objectToMove;
// Use this for initialization
public enum TypeOfTrap
{
springOut
}
[Tooltip("Set the type of trap here to use.")]
public TypeOfTrap trapType = TypeOfTrap.springOut;
public float springDistance;
void Start()
{
objectToMove = transform.FindChild("ObjectsToAnimate");
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.CompareTag("Player"))
{
//if the player has entered the danger zone
switch (trapType)
{
case TypeOfTrap.springOut:
break;
}
}
}
IEnumerator SpringOut(float springDistance)
{
float deltaDist = 0.0f;
while(deltaDist < springDistance)
{
objectToMove.position +=
}
}
}
あなたの質問は例がないのであまりにも漠然としているので、私は実際に暗闇の中で刺すようですが、[SerializeField](https://docs.unity3d.com/ScriptReference/SerializeField.html)属性? – TVOHM
私はしましたが、私の問題を解決しなかった、私はそれを間違った方法で使用したかもしれません。私はいくつかのコードで質問を更新します。 – agiro
現在、スクリプトに関係のないエディタ(インスペクタ)で非表示にしたいので、不必要に変更されないようにしたいのですか? –