UIやオブジェクトをTweenさせる時に、外部のアセットを使うと簡単に実装ができます。 DOTweenというAssetがあるのですが、最近はこちらを使って実装をしています。 このDOTweenには「 Safe mode」がとても便利?なので、今回ブログに書いていきたいと思います。
Safe mode
「Safe mode」とは何なのか。
DOTweenのHPを見てみると、以下のように書かれています。
Safe mode
Activate the optional safe mode and let DOTween take care of unexpected occurrences, like a tween's target being destroyed while playing.
大体の意味は「Tweenが走っている時に対象のオブジェクトがDestroyされた場合、安全に処理ができる」のような感じです。
HOTween
HOTweenというAssetをご存知でしょうか? これはDOTweenの前のバージョンがこう呼ばれていました(います)。 同じTweenを実装できるAssetなのですが使っている場合に、良くNullのエラーが出ていました。 [c] // Unityで良く見かけるエラーですね。 Null Reference Exception ......... [/c]
色々と対策を施すのですが、エラーが出てくるのです。
Safe Modeとは
これが、DOTweenではどうなったか。 HOTweenだとNullが出るところを、DOTweenで置き換えてみるとどうなるのでしょうか? [c] DOTWEEN :: An error inside a tween callback was silently taken care of > Object reference not set to an instance of an object [/c]
上記の文言が表示されます。 これはエラーではなくWarningで表示されます。 これが「Safe Mode」です。
コードを見てみる
DOTweenはオープンソースなので、GitHubにコードが公開されています。 これを参考に該当の箇所を見てます。 dotween/Tween.cs · GitHub
例外で処理を行っているのがわかります。
最後に
「Safe Mode」があるからといって根本的な解決策にはならないので、該当箇所はWarningが出ないように修正をするべきです。 ただ、こういったもしもの機能があると実際にアプリで使う場合安心ですね。 Assetを選ぶ際には、こういった安全面がどうなっているのかも調べる必要があります。
![]() | Unity5ゲーム開発レシピ ハマるゲーム制作のノウハウ BATA,まつだす 翔泳社 売り上げランキング : 19452 Amazonで詳しく見る |