- 【ゲームエンジン】Unity初心者質問スレBuild1
943 :名前は開発中のものです。[]:2019/03/01(金) 00:04:34.90 ID:i9oiQn3T - ...取り乱しました。>>941 様
まずUIなどを階層に収めた"オブジェクトA"を作りました。 これをAlpaを使って表示/非表示にするテストを行いたく、AlphaScript(拾い物コピペ)を "オブジェクトA"にアタッチしました。 さて、作っているアプリを動かすメインスクリプトをアタッチした"オブジェクトMain" があります。ここから"オブジェクトA"のAlphaScriptにアクセスし、"オブジェクトA"の子であるUI なども一緒に透過されるかテストしてみたいのです。しかし困った事に >>926 >>928 GameObject.FindObjectOfType< AlphaScript >().SetCanvasGroupEnable( null, false ); このソースの"null"の部分、"null"ではエラーが起こってしまう、でも自分は "null”以外にスクリプトエディタに怒られない文字列を知らない。 "null"の意味は知ってるが、じゃあ代わりに第一引数にどんなワードを入れたら良いのか 解らない。教えていただけませんか?と、ずっと言っております。 自分はunity初心者で、教本も"Unity5の教科書"を一通りやった程度で、 C#の本については購入検討中です。高いし。 なので、経験者の皆様には言っている事がまるでおかしいかのかもしれませんが、 解る方おられましたらどうか宜しくお願い致します
|
- 【ゲームエンジン】Unity初心者質問スレBuild1
945 :名前は開発中のものです。[]:2019/03/01(金) 00:14:26.79 ID:i9oiQn3T - 自分は単純に"オブジェクトA"の"AlphaScript"に「false」を伝えたいのですが、
GameObject.FindObjectOfType< AlphaScript >().SetCanvasGroupEnable( null, false ); ではスクリプト自体がnullになってしまう。でもその代わりを知らない。 そもそもCanvasGroup canvasGroup,自体はいじる必要が無い。 この後の bool enable をfalseにしたいだけなのに、 Ascript.SetCanvasGroupEnable(ここ,false); ここに何か入れなきゃならないようです。falseだけにしたら SetCanvasGroupEnableがアカンって怒られるし...この場合、どういった記入を したら良いのでしょう?
|
- 【ゲームエンジン】Unity初心者質問スレBuild1
948 :名前は開発中のものです。[]:2019/03/01(金) 00:40:56.10 ID:i9oiQn3T - >>946 様
有難うございます。オブジェクトMainに MainGameObject.FindObjectOfType<CanvasGroup>().alpha = 0;と書いた所 Gameシーン上で透過されるのを確認しました。 しかし、勿論これは良いのですが、AlphaScriptはなんの働きもしてませんよね? 後々いじるのに便利そうなので、使ってみたいのです。となると、単純な疑問が 浮かんできます A public void SetCanvasGroupEnable(CanvasGroup canvasGroup, bool enable) このスクリプトAに対し B FindObjectOfType<AlphaScript>().SetCanvasGroupEnable(num,false);FindObjectOfType<AlphaScript>().SetCanvasGroupEnable(「ここ」,false); Bの「ここ」は、何と書いたらVSに怒られず通るのでしょうか。
|
- 【ゲームエンジン】Unity初心者質問スレBuild1
949 :名前は開発中のものです。[]:2019/03/01(金) 00:43:39.75 ID:i9oiQn3T - >>948 の訂正 すみません、ミスしたので訂正させて下さい
>>946 様 有難うございます。オブジェクトMainに MainGameObject.FindObjectOfType<CanvasGroup>().alpha = 0;と書いた所 Gameシーン上で透過されるのを確認しました。 しかし、勿論これは良いのですが、AlphaScriptはなんの働きもしてませんよね? 後々いじるのに便利そうなので、使ってみたいのです。となると、単純な疑問が 浮かんできます A public void SetCanvasGroupEnable(CanvasGroup canvasGroup, bool enable) このスクリプトAに対し B FindObjectOfType<AlphaScript>().SetCanvasGroupEnable(「ここ」,false); Bの「ここ」は、何と書いたらVSに怒られず通るのでしょうか。
|
- 【ゲームエンジン】Unity初心者質問スレBuild1
952 :名前は開発中のものです。[]:2019/03/01(金) 01:53:36.21 ID:i9oiQn3T - >>950 様
最後の行 my_script.SetCanvasGroupEnable(hoge); がVSに認識されませんでした が、自分のスクリプトに入れただけなのでミスがあるかもしれません。 後日新しいスクリプトファイルで勉強させて頂きます。有難うございました! >>951 様 SetCanvasGroupEnable(CanvasGroup, false); ではVSに怒られてしまいました。しかしそちらで動いているのならば、 こっちがおかしいのだと思います。わざわざ遅い時間まで有難うございました! >>こんな型宣言して使ったことなかったから調べるだけでも精一杯 この言葉がありがたかったです。それにより「なぜそんな二度手間をする?」 の意味がわかった気もします。 そして>>941 様 有難うございました
|
- 【ゲームエンジン】Unity初心者質問スレBuild1
953 :名前は開発中のものです。[]:2019/03/01(金) 07:07:08.86 ID:i9oiQn3T - >>950様
新規csファイルで確認しましたが、VSは通してくれたものの、Unityはnullエラーを 返してきましたので報告させていただきます。以下は自分の解釈を付けたものです //A_アクセスされる側のcs.目的は自身のアルファ値を0か1にする事だけに絞ってます public class NewBehaviourScript : MonoBehaviour { private CanvasGroup canvasGroup; void Start () { canvasGroup = GetComponent<CanvasGroup>(); } public void SetCanvasGroupEnable(bool enable)//変数"enable"をbool値(省略ではtrue)で作成 //>>950さんは(「ここ」,false);が解らないなら最初から設定すんなって事を言ってるのだと解釈。 { if (enable)//enable==turueであれば //以下の処理 { canvasGroup.alpha = 1; } else//そうでなければ //以下の処理 { canvasGroup.alpha = 0; } } } ----------------
|
- 【ゲームエンジン】Unity初心者質問スレBuild1
954 :名前は開発中のものです。[]:2019/03/01(金) 07:09:12.88 ID:i9oiQn3T - ----------------
//B_アクセスする側のcs public class NewBehaviourScript1 : MonoBehaviour { public bool hoge = false;//bool値 hoge にfalseを代入 private NewBehaviourScript my_script;//my_scriptにNewBehaviourScript.csの"形"を代入。宣言?でいいのかな void Start () { my_script = GetComponent<NewBehaviourScript>();//my_scriptにNewBehaviourScriptクラスをを代入 //以下↓のようにmy_script.SetCanvasGroupEnable();と言うようにアクセスする事が出来る } void Update () { my_script.SetCanvasGroupEnable(hoge);//hoge==false のはず...しかしここでnullエラーを返される } } と言った結果でした。 とりあえずC#の教本は買おうと思います
|