質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

4588閲覧

【Unity】DOTweenをVS Codeで使用するとエラーが表示される

UbiquitousD

総合スコア76

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2021/09/17 18:26

質問内容

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のImageSpriteRendererAudio 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を使用したいです。

長々と書いておきながら質問自体は凄くシンプルなのですが,
どうかよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

UnityのPackageManagerに「Visual Studio Code Editor」という項目があり,
それを最新のものにアップデートしてあげたらエラーが発生しなくなりました。

投稿2021/09/25 00:35

編集2021/09/25 00:35
UbiquitousD

総合スコア76

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

VSCode が自動生成するファイルをいったん全て消して再生成してみてはどうか、とのことです。

VSCode が拡張メソッドのシンボルを認識しないようですね。

VS Codeの拡張性に惚れてしまったので出来れば使いたくない

拡張性が高いということはその自由さにより問題が起きることがままあり、それを解決するためにはユーザーのスキルを要求するという事です。頑張ってください。

投稿2021/09/18 01:44

bboydaisuke

総合スコア5308

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

UbiquitousD

2021/09/18 01:57

解決できました。ありがとうございます。 まさかGitHubの方にissueが載っているとは…… 知識も検索もまだまだスキル不足なようなので,これからも精進していきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問