(Unity)開発時にObjectの位置がずれるのを防ぐ方法(ExecuteAlwaysの活用)

(1)原点(0,0,0)の位置に固定したい場合
  • 下記のスクリプトを位置を固定したいオブジェクトに追加
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// ★追加
[ExecuteAlways]
public class Lock : MonoBehaviour
{
    void Update()
    {
        transform.position = Vector3.zero;
    }
}

(実行結果)

  • 該当のオブジェクトをドラッグしても動かない。

  • Inspectorで「数値」を入れても「0,0,0」に戻る。


(2)Inspectorで指定した位置に固定したい場合
  • 下記のスクリプトを位置を固定したいオブジェクトに追加
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

// ★追加
[ExecuteAlways]
public class Lock : MonoBehaviour
{
    public Vector3 pos;

    void Update()
    {
        transform.position = pos;
    }
}

(実行結果)

  • Inspectorで「3,3,3」を指定

  • Transform Positionに直接数値を入れても場所の変更不可

  • Objectを直接ドラッグしても動かない