Unity3Dでゲームを開発しております。
HintButtonをクリックすることで、ゲームオブジェクトにアタッチされたOutline Effectコンポーネント(スクリプト)のオン/オフを切り替えたいです。
この際、シーンごとにOutline Effectをアタッチするゲームオブジェクトは異なるので、ボタンのインスペクター上からゲームオブジェクトを指定できるようにしたいです。
以下のスクリプトを書きましたが、errorCS0246, errorCS0103が表示され、うまく起動しません。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class HintButton : MonoBehaviour 7{ 8 public GameObject gameObject; 9 10 // Start is called before the first frame update 11 void Start() 12 { 13 bool outlineEffect= gameObject.GetComponent<OutlineEffect > (); 14 } 15 16 // Update is called once per frame 17 void Update() 18 { 19 20 } 21 22 void OnClick() 23 { 24 if (outlineEffect.enabled = false) 25 { 26 outlineEffect.enabled = true; 27 } 28 29 if (outlineEffect.enabled = true) 30 { 31 outlineEffect.enabled = false; 32 } 33 } 34} 35
添付の画像の通り、Outline Effectはオブジェクトの輪郭表示をするスクリプトで、オブジェクトのコンポーネントとしてクリック/unclickできるので、スクリプトからアクセスできればenableでオンオフは切り替えられると思っております。
ご教示よろしくお願い申し上げます。
12/23追記
ご指導ありがとうございます!
scriptをご教示通りに、下記に変更しました。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class HintButton : MonoBehaviour 7{ 8 public GameObject targetObject; 9 10 private OutlineEffect outlineEffect; 11 12 // Start is called before the first frame update 13 void Start() 14 { 15 outlineEffect = targetObject.GetComponent<OutlineEffect>(); 16 } 17 18 // Update is called once per frame 19 void Update() 20 { 21 22 } 23 24 public void OnClick() 25 { 26 outlineEffect.enabled = !outlineEffect.enabled; 27 } 28} 29
どうやらOutlineEffectというnamespaceがうまく認識されていない??
ようなのですが、何か問題がありますでしょうか。。
ちなみにOutline effectは
https://baba-s.hatenablog.com/entry/2019/05/10/082000
こちらのrickomaxさんのgithubからスクリプト、シェーダーをダウンロードし、unityのプロジェクトウィンドウにドラッグ&ドロップして取得しました。
HintButtonの押下で輪郭表示のオンオフを切り替えたいという魂胆です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/23 02:30
2020/12/23 03:23
2020/12/23 03:37