Assets/Utage/Scripts/GameLib/iTween/iTweenData.cs の 175行目ParseParametersを
以下のように修正すると、シナリオインポート時にエラーが出るようになると思いますので、チェックがしやすくなると思います。
void ParseParameters(string type, string arg)
{
try
{
this.type = (iTweenType)System.Enum.Parse(typeof(iTweenType), type);
if (this.type == iTweenType.Stop)
{
return;
}
else
{
char[] separator = { ' ', '=' };
string[] args = arg.Split(separator, System.StringSplitOptions.RemoveEmptyEntries);
if (args.Length % 2 != 0 || args.Length <= 0)
{
AddErrorMsg(arg + "内が、「パラメーター名=値」 の形式で書かれていません。");
}
else
{
for (int i = 0; i < args.Length / 2; ++i)
{
string name = args[i * 2];
//以下修正箇所
//
HashObjects.Add(name, ParseValue(this.type, name, args[i * 2 + 1], ref isDynamic));
var obj = ParseValue(this.type, name, args[i * 2 + 1], ref isDynamic);
if (obj == null)
{
//nullの場合は解析失敗
AddErrorMsg($"{name}={args[i * 2 + 1]} はTweenとして解析できません。");
}
HashObjects.Add(name, obj);
}
}
}
}
catch (System.Exception e)
{
AddErrorMsg(arg + "内が、「パラメーター名=値」 の形式で書かれていません。");
AddErrorMsg(e.Message);
}
}
ソースコードが古いので、修正パッケージを作るのではなく、直接ソースコードの修正箇所をお伝えします。
HashObjects.Add(name, ParseValue(this.type, name, args[i * 2 + 1], ref isDynamic));
の部分が問題で、ここで解析が失敗している場合に、実行時エラーがでてしまいます。
nullチェックをして、エラーメッセージが出るように修正してみてください。
2024年6月25日火曜日 11:36:20 UTC+9 マッドネスラボ: