[過去ログ] 【3Dゲームエンジン】Unity質問スレッド31 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
410(4): 2017/09/20(水)22:43 ID:x6n8KR83(5/6) AAS
ダメだ全然わかんねえええあえ
基本の基本から聞いていいすか?
?
>>309の一行目
Texture2D texture = Resources.Load("image path") as Texture2D;
これは
textureに指定したパスのリソース(projectタブのフォルダに入れてあるなんやかや)を読み込んで入れる。スプライトとして。
でいいんですよね?
そもそもこの冒頭のTexture2D textureはなんですの?下でも出てくるけど
Texture2Dをtextureと呼ぶ みたいに読んでたけど(変数の宣言みたいな)違う?
?
Image img = GameObject.Find("Canvas/Panel/***").GetComponent<Image>();
これも上と同様にImageをimgと呼ぶから入って、
Canvas/Panel/にある***というゲームオブジェクト?
(弄ろうとしてるのはpanel だから実際***パスは入れてないけど)
を探し、
そのオブジェクトのコンポーネントであるImage←(デフォのスクリプトコンポーネントでしょ?)をimgに格納?する?
?
img.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero);
?のimgに格納されてるコンポーネントのspriteに以下の処理を代入する?
?のtextureに読み込んでる画像を入れる。座標は0
とりあえずunity触りはじめて3日程度だからボタン押したら背景が切り替わる
って感じでサンプルコード探して試してたんだけど最初からこんなに躓くと思わなんだ
413(1): 2017/09/20(水)23:37 ID:OogVTLLt(1) AAS
>>410
言ってることは大体そう
多分image pathファイルをResourcesフォルダに入れていないか名前が間違ってるんじゃないの?
Resources.Loadはファイルが見つからんときnullを返すからtextureが空っぽのまま下まで行って
3行目でtextureやその幅を引っ張り出すときにNullReferenceExceptionが出てる
414(1): 2017/09/20(水)23:43 ID:IUSnNb2O(3/3) AAS
>>410
さすがにちょっとC#の基礎を覚えた方がいいかもしれない…と前置きしといてざっくり解説
?は色々間違ってる。ちょっと正しく書くと…
1. Texture2Dという型の変数textureを宣言し(左辺)
2. リソースフォルダ以下から指定したリソースをTexture2D型として読み込み(右辺)
3. 宣言した変数に入れる(代入演算子=)
という事をしている
この際注意しなければならないのは、Resources.Loadはプロジェクト内に作成したResourcesという名前のフォルダの中からしか読み込めず
引数に指定するのもResourcesフォルダからの相対パスとなるということと、拡張子はつけないことだ
プロジェクト(正確にはプロジェクトディレクトリのAssetsフォルダ)から見て
Resources/Hoge/Fuga.pngというパスのファイルがあった場合、
Resources.Load<Texture2D>("Hoge/Fuga");とすると読み込める
書き込みを見る限り、この辺理解せずにAssetsフォルダからの相対パスで指定してるとエスパーできる
?は?同様変数宣言の認識がやや怪しいが、概ね正しい。
ただしGameObject.Find()も、GetComponent<T>()も、探した結果見つからなかったらnullを返す事に注意しないと今回同様のエラーを頻発して苦労するだろう
?はかなり間違ってる
1. ?のimgに格納されてるコンポーネントのspriteに以下の処理を代入する(左辺+代入演算子)
2. ?のtextureに読み込んでるTexture2Dから、指定した矩形(Rect)の範囲を切り出し、回転軸を左下隅(Vector2.zero)に指定してSpriteを生成する
って感じだ
スプライトとテクスチャはどちらも画像を元にしたオブジェクトだが、用途が違うため違う型として扱われる
Imageのsprite変数はSprite型として宣言されているためわざわざtextureからSprite型のオブジェクトを生成して代入しているという点に注意
415(1): 2017/09/21(木)00:05 ID:L7Ez3IFe(1) AAS
>>410
クラスや型、と、インスタンスや変数名の識別がまず出来てない
コピペだけで動かそうとせずにちゃんとプログラミング言語の概念を最低限学ばないと
C#は良い言語だから腰を据えて入門書を読むなりしたほうがいいですわよ
435(2): 2017/09/21(木)20:52 ID:wxJXWbMz(3/4) AAS
>>410です。
昨晩質問した件はResoucesフォルダを作ってそこから使うことで解決できました。
エスパーの皆さんありがとうございました。
>>431
とりあえずスクリプトをコピペしてみたらエラー出てダメでした。
public使う理由とかもよくわからんかったです。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.059s