以下の内容はhttps://hacchi-man.hatenablog.com/entry/2022/04/07/220000より取得しました。


【Unity】Component の Transform や GameObject にアクセスさせない

Component が public で Transform と GameObject のフィールドを持っているため、参照があれば好き勝手に変更できる そのため、外部から操作できなくするコンポーネントを作成してみた

フィールドを削除することは無理なので、参照されても null を返し warning を表示するようにしてある

using System;
using UnityEngine;

public class SealMonoBehaviour : MonoBehaviour
{
    [Obsolete]
    public new Transform transform => null;
    [Obsolete]
    public new GameObject gameObject => null;
}

しかしながら、キャストすれば問題無くアクセスできてしまう

    [SerializeField]
    private SealMonoBehaviour _sealMonoBehaviour;
    
    private void Awake()
    {
        (_sealMonoBehaviour as MonoBehaviour).transform.position = Vector3.zero; // エラーにならない
        _sealMonoBehaviour.transform.position = Vector3.zero; // エラーになる
    }



以上の内容はhttps://hacchi-man.hatenablog.com/entry/2022/04/07/220000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14