[過去ログ] 【3Dゲームエンジン】Unity質問スレッド31 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
400(1): 2017/09/20(水)16:39 ID:yiJ9HCsf(1/2) AAS
M+フォント等の日本語フォント同梱しないで、日本語のゲーム作るのは無謀でしょうか
あんまり容量大きくしたくない
401(2): 2017/09/20(水)17:03 ID:IUSnNb2O(1/3) AAS
>>399
十中八九GameObject.Findがnullを返してる。***という名前のオブジェクトが存在するのか?
>>400
システムフォントを使うことは可能だし実際それでリリースしてる
ただしシステムに日本語フォントが入っていない場合当然文字化けるので多言語対応して、最低限英語版リソースもぶっ込んでおくべき
それでも日本語フォント同梱するよりは軽いはずだ
402(1): 2017/09/20(水)18:02 ID:x6n8KR83(3/6) AAS
>>401
そのオブジェクトやスプライトのパス****は合ってると思う何回も見直した
仮にそれが間違ってた場合は二行目に注意来るんじゃないんですか?わからんけど
この文よりオブジェクトとかの方に問題ありそうな気もするんですがわからんです
403(1): 2017/09/20(水)18:51 ID:Zi6RRNcu(1) AAS
>>399
そのpanelはゲーム中に動的にインスタンス化されるもの?
そうでないなら、静的に解決できるものは静的に解決した方がいいよ
Findを使う代わりにpublicフィールドかSerializeFieldでゲームオブジェクトを静的に参照した方がいいよ
404: 2017/09/20(水)19:42 ID:yiJ9HCsf(2/2) AAS
>401
システムフォントもありなんですね、ありがとうございます
405(1): 2017/09/20(水)19:48 ID:53gjRVkv(1) AAS
>>399
Sprite sprite = Resources.Load<Sprite>("名前");
GetCommponent<Image>.sprite = sprite;
で自分の場合は変えられたよ。
406(1): 2017/09/20(水)20:00 ID:IUSnNb2O(2/3) AAS
>>402
すまん、スマホで見てて行が折り返してたんで勘違いした
改めて3行目見るとnullである可能性があるのはimgかtextureのいずれかだろう
textureならパスが間違ってるとか、Resourcesからの相対パスになってないとか、読み込み時の失敗だろう
imgならFindしたGameObjectにImageコンポーネントがアタッチされてないとかの可能性が濃厚
どっちがnullか特定するには、3行目にブレークポイント入れてデバッグ実行して、止まったらimg,textureのそれぞれにカーソル当てればいい
デバッガが使えないなら、3行目にDebug.Log(〜);とかしとけばいいがデバッガ使えないのは不便過ぎるから使える様になっておくことを推奨しとく
407: 2017/09/20(水)20:08 ID:x6n8KR83(4/6) AAS
>>403
>>405
>>406
レスありがとうございます。
初心者すぎてどこがどうだという返事すらまともにできないのですが、
これから皆さんがくれたレスを見ながら検索しつつ試してみようと思います。
一応でも感謝の意だけは伝えようと思いレスしました。
またしょーもない質問するかもしれませんが宜しくお願いします。
408(1): 2017/09/20(水)20:42 ID:SV5ZilHg(1) AAS
UnityによるARゲーム開発 ―作りながら学ぶオーグメンテッドリアリティ入門
外部リンク:www.amazon.co.jp
これ読んだやつおる?
409: 名無し@キムチ 2017/09/20(水)20:54 ID:+uMwl9Ux(1) AAS
>>408
実験的なものが好きな人間にはいいだろうな。
当方は興味ない。
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日程度だからボタン押したら背景が切り替わる
って感じでサンプルコード探して試してたんだけど最初からこんなに躓くと思わなんだ
411: 2017/09/20(水)22:54 ID:x6n8KR83(6/6) AAS
あ、>>309じゃなくて
>>399でした
412: 2017/09/20(水)22:57 ID:Z6HUDHZY(1) AAS
アフィカス市ね
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#は良い言語だから腰を据えて入門書を読むなりしたほうがいいですわよ
416(1): 2017/09/21(木)01:04 ID:wxJXWbMz(1/4) AAS
>>413
いきなり確信っぽいこと言われて驚きました
確かにResoucesフォルダには入れてなくて、
2Dシューティングチュートリアルの真似まま、Materialフォルダを作ってそこにBackgroundフォルダを作り、そこに画像を入れてました
まだ確認してませんが、もしかするとそれかもしれません
Resources.Loadはプロジェクトタブ?にあるファイル全体に検索をかけるものだと思ってました。
>>414
その通りです。知識まったくなく、これから入れていこうという段階です。
Texture2Dという型があるのですね…。変数の型というのはintやstringとかのイメージで、Texture2Dというような型があるとは想像もできなくてこれが変数であるという確信が持てませんでした。
Resource.Loadに関しては>>413さんにも指摘していただいて、それも今知りました。ありがとうございます
エスパーその通りです。
?難しいですね。なんというか直感的にわからないです
単語の意味を覚えないとダメですね。
ちょっとレスを何回か読んでちゃんと理解して頭に入れます
今何も言えないです。すみません理解が遅くてちゃんとレスできなくて。
>>415
そうですね。これから徐々にそういった知識を入れていこうと思っています。
レス遅くなって申し訳ないです。
皆様ありがとうございました。とりあえず今日は寝て、また明日レス見ながら色々試してみます。
417: 2017/09/21(木)06:22 ID:s8GogDjV(1) AAS
コーディング無しでブループリント使えるUE4行ったほうが幸せになりそう
418: 2017/09/21(木)07:29 ID:OhQghky2(1) AAS
AとBという全く同じオブジェクトを生成してプレイヤーと敵としてどちらもHP10、当たり判定で「接触したらHPを-1」という最低限の処理をしてみたんだけど、
Aはプレイヤーとして操作して動かし敵Bは動かないことくらいしか違いないはずなのに、操作して単純に接触するということを何度やっても毎回プレイヤーが圧勝してしまうのはなんでなんだぜ?
処理される順序の違いとか同時だと何かが処理できなかったりとかしますか?
武器で殴るとか弾を当てるとかいう一方的な当たり判定ではなく、双方に対して公平に処理する場合は普通はどんな感じでやるんでしょうか?
419: 2017/09/21(木)07:59 ID:Ei0o9L2F(1/3) AAS
ログ出してみたら解決すんじゃない?
debag.log(ゲームオブジェの名前+"にダメージ")
みたいに
420(3): 2017/09/21(木)10:16 ID:BkQgrtlh(1) AAS
初歩中の初歩だとは思うんですが
調べるとstaticで宣言すればシーン跨いでも変数が保持されると出てくるんですが
スクリプトがオブジェクトに紐づいてるので保持されてもアクセスできないように思えます
別のシーンでも適当なオブジェクトに紐づけたら良いんでしょうか?
それはそれで変数が別物扱いされそうですが…
421(1): 2017/09/21(木)11:27 ID:vct7J7zt(1) AAS
>>420
基本的に(型名).(変数名)
staticのリファレンス確認しなよ
422: 2017/09/21(木)11:29 ID:w2odxgQJ(1) AAS
ちょっとUnity触わんの早いんじゃね
C#一通り覚えてからやれば
423: 2017/09/21(木)13:37 ID:TN9tezrS(1/2) AAS
>>420
アセットを購入すれば簡単にできますよ
424(1): 2017/09/21(木)14:02 ID:isiGpJBc(1/3) AAS
>>420
static変数はオブジェクトではなく型ひ紐付くため入れた値自体はシーンが変わっても保持される
ただし、static変数に入れたものがシーン内に配置されたGameObjectのインスタンスや、それにアタッチされたコンポーネントであった場合この限りではない
これは、シーンが破棄される際に当該オブジェクトのdestroy処理が走り、destroyされたGameObjectやコンポーネントはnullと比較された際にnullであるかの様に振る舞うという仕様のため
シーンを跨いでGameObjectやコンポーネントを生存させたい場合は、UnityEngine.Object.DontDestroyOnLoadを使う
425(1): 2017/09/21(木)14:59 ID:FeXNVo5K(1) AAS
2画面使う対戦型のゲームを作ってるのですが
ボタン2つを同時にselect状態にとか出来ますか?
426: 2017/09/21(木)15:35 ID:Ei0o9L2F(2/3) AAS
>>425
if文使ったらなんでも出来る
427: 2017/09/21(木)16:50 ID:6io8/Hvm(1) AAS
イノキみたいだなw
428(2): 2017/09/21(木)17:13 ID:wxJXWbMz(2/4) AAS
ブンキですかー!?
429: 2017/09/21(木)17:24 ID:Ei0o9L2F(3/3) AAS
>>428
好き
上下前次1-新書関写板覧索設栞歴
あと 573 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.022s