[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
943: 名前は開発中のものです。 [] 2019/03/01(金) 00:04:34.90 ID:i9oiQn3T(1/7) AAS
...取り乱しました。>>941941(2): 名前は開発中のものです。 [sage] 2019/02/28(木) 23:40:55.48 ID:zu1kHZY3(1/2) AAS
落ち着け。
回答者の言葉尻を捉えて腹立てるんじゃない。教えてほしいから聞いてるんだろ、華麗にスルーしなさい。どこもこんな人達はいっぱいいるよ。
あと、分かってるなら答えがわかるはず、と分かってるけどnullは分からない、は完全にすれ違ってるの。
どう違ってるか改めて真摯に聞いてみなさい。
まずは自分がどう考えているかでも辻褄が合ってないところ、そういう説明がないと明確に答えられないし、面白がってヤジが群がるぞ。
様
まずUIなどを階層に収めた"オブジェクトA"を作りました。
これをAlpaを使って表示/非表示にするテストを行いたく、AlphaScript(拾い物コピペ)を
"オブジェクトA"にアタッチしました。
さて、作っているアプリを動かすメインスクリプトをアタッチした"オブジェクトMain"
があります。ここから"オブジェクトA"のAlphaScriptにアクセスし、"オブジェクトA"の子であるUI
なども一緒に透過されるかテストしてみたいのです。しかし困った事に
>>926926(5): 名前は開発中のものです。 [] 2019/02/28(木) 17:11:47.11 ID:XocCTLVr(1/2) AAS
GameObject.FindObjectOfType< AlphaScript >().SetCanvasGroupEnable( null, false );
>>928928(1): 名前は開発中のものです。 [] 2019/02/28(木) 17:55:06.33 ID:OXsNW9EN(4/10) AAS
通ったけど(VSでは)実行するとNullReferenceExceptionエラーになります
>>926 SetCanvasGroupEnable(null, false); なので、
>>923 (CanvasGroup canvasGroup, bool enable) のcanvasGroupが
nullになってしまってるからですよね?
GameObject.FindObjectOfType< AlphaScript >().SetCanvasGroupEnable( null, false );
このソースの"null"の部分、"null"ではエラーが起こってしまう、でも自分は
"null”以外にスクリプトエディタに怒られない文字列を知らない。
"null"の意味は知ってるが、じゃあ代わりに第一引数にどんなワードを入れたら良いのか
解らない。教えていただけませんか?と、ずっと言っております。
自分はunity初心者で、教本も"Unity5の教科書"を一通りやった程度で、
C#の本については購入検討中です。高いし。
なので、経験者の皆様には言っている事がまるでおかしいかのかもしれませんが、
解る方おられましたらどうか宜しくお願い致します
945: 名前は開発中のものです。 [] 2019/03/01(金) 00:14:26.79 ID:i9oiQn3T(2/7) AAS
自分は単純に"オブジェクトA"の"AlphaScript"に「false」を伝えたいのですが、
GameObject.FindObjectOfType< AlphaScript >().SetCanvasGroupEnable( null, false );
ではスクリプト自体がnullになってしまう。でもその代わりを知らない。
そもそもCanvasGroup canvasGroup,自体はいじる必要が無い。
この後の bool enable をfalseにしたいだけなのに、
Ascript.SetCanvasGroupEnable(ここ,false);
ここに何か入れなきゃならないようです。falseだけにしたら
SetCanvasGroupEnableがアカンって怒られるし...この場合、どういった記入を
したら良いのでしょう?
948(1): 名前は開発中のものです。 [] 2019/03/01(金) 00:40:56.10 ID:i9oiQn3T(3/7) AAS
>>946946(2): 名前は開発中のものです。 [] 2019/03/01(金) 00:16:51.48 ID:G4Yjf+DM(1) AAS
canvasGroupはGameObject.FindObjectOfType< CanvasGroup >()で取ってこれないのか
様
有難うございます。オブジェクト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に怒られず通るのでしょうか。
949(1): 名前は開発中のものです。 [] 2019/03/01(金) 00:43:39.75 ID:i9oiQn3T(4/7) AAS
>>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に怒られず通るのでしょうか。
952: 名前は開発中のものです。 [] 2019/03/01(金) 01:53:36.21 ID:i9oiQn3T(5/7) AAS
>>950 様
最後の行 my_script.SetCanvasGroupEnable(hoge); がVSに認識されませんでした
が、自分のスクリプトに入れただけなのでミスがあるかもしれません。
後日新しいスクリプトファイルで勉強させて頂きます。有難うございました!
>>951951(1): 名前は開発中のものです。 [sage] 2019/03/01(金) 01:20:38.12 ID:moEN5l8p(1) AAS
>>949
「ここ」には、CanvasG roup型を入れる。
いやー参った。こんな型宣言して使ったことなかったから調べるだけでも精一杯w
まぁ知らなくても3Dのシューティング作れたしw
とりあえず動いたので多分あってるんじゃないかなぁ、間違ってたらすまん。
様
SetCanvasGroupEnable(CanvasGroup, false);
ではVSに怒られてしまいました。しかしそちらで動いているのならば、
こっちがおかしいのだと思います。わざわざ遅い時間まで有難うございました!
>>こんな型宣言して使ったことなかったから調べるだけでも精一杯
この言葉がありがたかったです。それにより「なぜそんな二度手間をする?」
の意味がわかった気もします。
そして>>941 様
有難うございました
953(1): 名前は開発中のものです。 [] 2019/03/01(金) 07:07:08.86 ID:i9oiQn3T(6/7) AAS
>>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;
}
}
}
----------------
954(1): 名前は開発中のものです。 [] 2019/03/01(金) 07:09:12.88 ID:i9oiQn3T(7/7) AAS
----------------
//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#の教本は買おうと思います
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.028s