質問内容
UnityにあるアセットでDOTweenという拡張メソッドがあるのですが,これを「VS Code」で使用すると,DOTweenの一部のメソッドがエラーになります。
このエラーはUnity内ではエラーとは表示されず,問題なく動作します。
また,以前通常の「Visual Studio 2019」を使用していた時もエラーとは表示されませんでした。
発生している問題
以下のようなタイミングでエラーが発生します。
問題の発生個所
C#
1private Image backGround; 2 3private float endAlpha = 0; 4private float transitionTime = 3.0f; 5 6void Test() 7{ 8 // Imageのアルファ値を「transitionTime」の時間を使って, 9 // 徐々に「endAlpha 」の値まで遷移させるという処理 10 backGround.DOFade(endAlpha, transitionTime); // ここでエラー 11}
エラー内容
'Image' に 'DOFade' の定義が含まれておらず、 最も適している拡張メソッド オーバーロード 'ShortcutExtensions.DOFade(Material, float, float)' には 'Material' 型のレシーバーが必要です [Assembly-CSharp]
上記のエラーにあるShortcutExtensions
というエラー部分をDOTweenの公式ドキュメントで調べたところ,
以下のような内容が書かれていました。
原文
Methods that extend known Unity objects and allow to directly create and control tweens from their instances
日本語訳(DeepL)
既知のUnityオブジェクトを拡張し、そのインスタンスからトゥイーンを直接作成・制御できるようにするメソッド。
これに書かれてある通り,
エラーの発生タイミングはUnityのImage
やSpriteRenderer
,Audio Source
といったコンポーネントを
使用した時にエラーが発生します。
解決はできるが使いたくない方法
① VS Codeではなく,元々使っていたVS 2019の方を使用する
VS Codeの拡張性に惚れてしまったので出来れば使いたくないです(本当に最終手段)
② Materialを適用する
DOFade(Material, float, float)' には'Material' 型のレシーバーが必要です
と書かれていたので,一応Materialを適用しました。
C#
1private Material material; 2private Image backGround; 3 4private float endAlpha = 0; 5private float transitionTime = 3.0f; 6 7void Test() 8{ 9 // エラーになったやつ 10 backGround.DOFade(material, endAlpha, transitionTime); 11 12 // 成功したやつ 13 material.DOFade(endAlpha, transitionTime); 14}
ただこれだといちいちマテリアルを適用してめんどくさい上に,
Audio Source
では使用できませんでした。
ではどうしたいか
元々と同じ,
backGround.DOFade(endAlpha, transitionTime);
の構文でエラーなくVS CodeでDOTweenを使用したいです。
長々と書いておきながら質問自体は凄くシンプルなのですが,
どうかよろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。