【Unity】【Python】全てのSceneのGI設定を無効化する

Pythonを使ってすべてのSceneのGI設定を無効化します。

Python 3.7.2

ファイルのGI設定をOFFにするソースコード

まず、引数のファイルのGI設定をOFFにするソースコードを書きます。

#coding:utf-8
import argparse

# 与えられたファイルパスのGI設定を無効にする
def replace(file_path):
    file_encoding = "utf-8"
    with open(file_path,"r",encoding = file_encoding) as file:
        filedata = file.read()
        
    filedata = filedata.replace("m_EnableBakedLightmaps: 1","m_EnableBakedLightmaps: 0")
    filedata = filedata.replace("m_EnableRealtimeLightmaps: 1","m_EnableRealtimeLightmaps: 0")

    with open(file_path,"w",encoding = file_encoding) as file:
        file.write(filedata)
        
# パーサーを作る
parser = argparse.ArgumentParser(prog = 'example.py', usage = '置換の例', add_help = True)

# 引数を追加
parser.add_argument('file_path', type = str, help = '置換するファイルのパス')

# 引数を解析する
args = parser.parse_args()

# 置換関数を実行
replace(args.file_path)

フォルダパス以下のすべてのSceneのGI設定を無効にする

次に引数のフォルダパス以下の全てのSceneのGI設定を無効にするソースコードを書きます。

#coding:utf-8
import argparse
import glob

# 与えられたファイルパスのGI設定を無効にする
def replace(file_path):
    file_encoding = "utf-8"
    with open(file_path,"r",encoding = file_encoding) as file:
        filedata = file.read()
        
    filedata = filedata.replace("m_EnableBakedLightmaps: 1", "m_EnableBakedLightmaps: 0")
    filedata = filedata.replace("m_EnableRealtimeLightmaps: 1", "m_EnableRealtimeLightmaps: 0")

    with open(file_path, "w", encoding = file_encoding) as file:
        file.write(filedata)
        
# パーサーを作る
parser = argparse.ArgumentParser(prog = 'example.py', usage = '置換の例', add_help = True)

# 引数を追加
parser.add_argument('target_folder_path', type = str, help = '対象フォルダパス')

# 引数を解析する
args = parser.parse_args()

# 再帰的にシーンファイルを検索
file_list = glob.glob(args.target_folder_path + '**/*.unity', recursive = True)
for file_path in file_list:
    print(file_path)
    # 置換
    replace(file_path)

あとはこれにUnityプロジェクトのパスを渡して実行すればOKです。

参考サイト

maku77.github.io