【ゲームエンジン】Unity初心者質問スレBuild4

■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
垢版 |
2020/03/29(日) 19:35:12.24ID:mirhKW7D
ゲームエンジンUnityを楽しむ初心者による初心者の為のスレ
その為「アセットを購入しましょう」「チュートリアルやれ」「ググレカス」等禁止
初心者が親身になって初心者に教える。
又ググレの場合、何のキーワードでググるのか書いてね

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
 http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
※前スレ
【ゲームエンジン】Unity初心者質問スレBuild3
https://itest.5ch.net/mevius/test/read.cgi/gamedev/1578720539
2020/04/27(月) 19:31:18.81ID:S31Ss8MO
画面をドラッグしたらそれに合わせて
画面中心に置いてあるキューブのオブジェクトが回転するようにしたのですが、
例外的に画面のUI部分をドラッグしても何も起きないようにしたいです。

試しに画面内にボタンを配置してみますと、
ボタン部分をドラッグしてもキューブは回転しませんでした。

ですが、ボタンではなくスクロールビューを配置しますと、
スクロールビュー内で中身をスクロールさせる際に
キューブも回転してしまいます。

これは何が原因なのでしょうか?

スクロールビュー内でスクロールさせても、
キューブは回転しないようにしたいのですが。。。
290名前は開発中のものです。
垢版 |
2020/04/27(月) 22:29:11.94ID:BsJwJx+j
ローグライクゲームで使われるようなテキストボックスの作り方を教えてください

具体的にはテキストボックスは4行目まで表示可能で
5行以上のテキストは初めに上4行が表示され、時間経過で下4行まで
スライドするようなものです

文字のフォントサイズとスライドの幅の関係がわからず
行数が増えてしまうと文字が見切れてしまうのですが
どうしたらよいでしょうか
2020/04/28(火) 08:42:29.47ID:UBexnHTQ
アセットストアで探すのはダメか?
2020/04/28(火) 08:57:56.02ID:NcdKxY7p
ありよ
293くまじょ
垢版 |
2020/04/28(火) 10:45:18.76ID:9EVv0REZ
UIのTextではなくて
GameObjectの子要素として文字や数字を表示したいときどうするのでしょうか
294帝王
垢版 |
2020/04/28(火) 19:39:00.29ID:+kIsn7nO
TextMeshProとかでできるんじゃないのーー?
(適当)
2020/04/28(火) 20:05:51.71ID:g/IoFmi8
UGUIのイメージをドラッグして移動させたいのですが、
canvasの設定をscreenspace overlayからcameraに変更するとドラッグ中に描画されなくなってしまいます。
パーティクルを前面に表示させるためにcanvasの設定を変えました。

考えられる原因はありますか?
2020/04/29(水) 02:19:06.55ID:QIimNiIX
なぁ
初心者じゃないよな?
2020/04/29(水) 02:25:33.41ID:0hW05Uib
上級者ばかりやんけ
298295
垢版 |
2020/04/29(水) 05:03:31.36ID:AYSL0fpT
>>296
自分の事でしょうか?
練習でトランプを作っていて、初心者なので全てUIで作ってしまいました。
アセットセールで初めて買ったパーティクルをエフェクトとして表示したかったのですが、UIが最前面に来るので表示できませんでした。

自分で調べてcanvasの設定を変えることでパーティクルは表示されたのですが、カードをドラッグすると消えてしまう様になりました。

2Dのゲームを作る時のカードの絵?オブジェクト?というのはどうやって表示させるのが正しいのでしょうか?
いつもcanvasを1つ作って全てその中にUIで作ってしまっています。。
2020/04/29(水) 05:22:31.24ID:sJVhQ7Za
エディタ拡張を使ってゲームオブジェクトの変数をいじってみたのですが、実行してみると、
↓のような感じで、inspector上で直接打ち込んだ数字に戻ってしまいます
https://i.imgur.com/REjqphY.png

どうにか保持する方法はないでしょうか?
300くまじょ
垢版 |
2020/04/29(水) 06:37:53.69ID:2WIq4ayc
>>299
俺と似たような現象だな
解決策は知らない
2020/04/29(水) 07:31:32.43ID:C9mEi4oT
>>298
自分も初心者だけど(しかも始めたばかり)

教本のサンプルスクリプトを改変しながら一本作ったところ
2Dの画像はUIから作る他にヒエラルキーに直接ドラッグ&ドロップする方法があってこの方法で作ったゲームオブジェクトはUIから作ったimageとは仕様が違うということがわかった

全く同じスクリプトを関連づけても動作しなかったり
等倍のはずなのに画像の表示サイズが微妙に大きかったり
UIキャンバスに入れると表示されなくなったり

別の教本では2Dオブジェクト→spriteで同じような用途の画像オブジェクトを作ってたからヒエラルキーにドラックドロップするとspriteになるのかも
Collider2Dで他のオブジェクトとの衝突判定を付けたい2D画像はそうやって配置するというところまでは理解できたけどそれ以上はさっぱりわからない
どれが正しいかじゃなくて用途によって使い分けるみたいだけどね
302301
垢版 |
2020/04/29(水) 07:40:32.28ID:C9mEi4oT
投稿してから思い出したけど

同じ著者の別の教本のアプリではUIから作った2D画像にCollider2Dで衝突判定付けてたなぁ
実際に作ってみたけど問題なく動いたし
違うものだということは把握したけど違いがよくわからない
2020/04/29(水) 08:25:51.33ID:IMZ53Uaz
>>295
ドラッグ中のオブジェクトの座標見るとどっか遠いところに行ってるんじゃないの
2020/04/29(水) 08:30:41.83ID:AYSL0fpT
>>301
トランスフォームの違いが一番のポイントかと思いますが、仰る通りそれによってサイズや座標違ったりするのが初心者には辛いですね。

シーン画面だとスケール1のスプライトがキャンバスに対して点みたいなサイズになったりしてわけがわかりません。。

初心者がUnityを覚えるには興味が無くても3Dからやった方が良いですね。
自分みたいにカメラや座標の概念が無いまま画像を表示するにはUIからイメージを作りましょう〜みたいな入門を見てしまったら終わりです。

最初にさせてもらった質問についてはいくつか解決案が見つかったのでもう少し頑張ってみます。
2020/04/29(水) 08:38:49.37ID:AYSL0fpT
>>303
予想ですがドラッグしてる位置の座標がoverlayの時はrecttransformだったのに対して、ワールド座標になったために遥か彼方に飛んでいってしまったんだと思います。

これをどうにかすれば良いと言う事はなんとなくわかったので調べてやってみます。
無理そうならoverlayのまま意図した動作になる様に仕様を変更する方向でも考えてみます。
306301
垢版 |
2020/04/29(水) 10:10:44.87ID:eQSMcd5l
3Dから初めて挫折した垢付きみたいなガイジもおるからなぁ
座標の概念はパース定規使ったことがあれば2Dから入ってもすぐ慣れるやろ
あかんかどうかはその人次第やな
垢付きは何をやっても駄目やけどな

UIオブジェクトを複製したらUIキャンバスの外に出て座標めちゃくちゃ
座標いじらずにUIキャンバスに戻したら座標は元に戻るもののスケールが微妙におかしい
なんやその0.99なんちゃらかんちゃらっていうのは
1でええやろ1で
Unityあるあるやで〜
2020/04/29(水) 10:58:11.39ID:Ge+X1sPh
>>298
動かしたりエフェクト出したりするならスプライトでやったほうが多少処理が軽いけど、
canvsはcanvasでレイアウトが楽とかメリットもあるので好きなやり方でいいと思う。

試しに別のやり方で実装してみたりするといろいろ発見があるかと。
308くまじょ
垢版 |
2020/04/29(水) 11:00:28.02ID:2WIq4ayc
>>300
今は家にいないからunity弄れない

ググってみたところ
Undo.RecordObjectとか使えばいいのかなあ
俺の場合は拡張とかわかんないので違う方法[ExecuteinEditMode]だけど
2020/04/29(水) 11:41:46.95ID:gkpKVPrd
visual studio2019でunityのGameobjectとかスニペット使えないんだけど
どうやったら使えますか?
310くまじょ
垢版 |
2020/04/29(水) 12:06:13.32ID:JSWzrUs2
>>293
納得いくものではないが自己解決
プレハブにキャンバス置いてUIのテキスト置いた

そのキャラクタを大量にシーンに置いたから
キャンバスの枠が表示されてうざいのでキャンバスのサイズ0にした

unityだけでなく別のツールでも思ったのだが
UIにできて非UIではできないこと
非UIにできてUIではできないこと
というの不便だなあ
311くまじょ
垢版 |
2020/04/29(水) 12:07:05.31ID:JSWzrUs2
>>308
俺の場合は解決した
まだ十分な確認はしていないがたぶんok
2020/04/29(水) 13:00:17.87ID:7X6Qdfy+
>>310
それぞれの役割があるからしっかり理解して使いこなすしかない
間違って使うから後で困る
マニュアルみて速攻理解する天才エスパーでも無い限り、何度も失敗して理解するしかないかも
313くまじょ
垢版 |
2020/04/29(水) 13:47:14.76ID:JSWzrUs2
キャンバス以外にも文字書きたいんだよおおお
2020/04/29(水) 16:06:48.36ID:RT7RiZcP
>>313
板に文字書いたビットマップ貼ったのじゃだめですか?
315弟子
垢版 |
2020/04/29(水) 16:24:45.75ID:j5yLLvLF
https://docs.unity3d.com/ja/current/ScriptReference/GUI.Label.html
316くまじょ
垢版 |
2020/04/29(水) 20:06:28.79ID:JSWzrUs2
文字の件はプレハブにキャンバス持たせて表示はできたんだけど

たとえばダメージ受けると数字がこぼれ落ちる演出などはどうするんだろう
自キャラ見方キャラ敵キャラに付けたキャンバスにテキストなのだろうか

今回はそういう用途ではない
317くまじょ
垢版 |
2020/04/29(水) 20:09:14.30ID:JSWzrUs2
>>316
俺が今やってるのは2Dなのでカメラの方を向く必要ないからキャンバスである必要ないけど
3Dだとキャンバスの方が楽なのかな
座標とかオーダーとかどうなるのか知らんけど
2020/04/29(水) 21:23:38.47ID:Ge+X1sPh
他の人も書いてるけど
TextMeshProじゃだめなの?

ヒエラルキー右クリ→
3Dオブジェクト→Text-TextMeshPro
319くまじょ
垢版 |
2020/04/29(水) 21:36:38.87ID:JSWzrUs2
俺には使い方わからなかったがそれで可能ならそれが正解なのかな
記憶の片隅に置いておくよ
2020/04/29(水) 21:55:28.30ID:GicUwo7y
プログラム未経験です。
1年を目途にゲーム制作し、1作目でまずは100万の利益を狙いたいと思いますが
何から始めたらいいでしょうか。
2020/04/29(水) 22:03:00.75ID:RT7RiZcP
>>320
初心者向けの本でも買ってチュートリアルやるとかから始めたほうがいいんじゃないですか。
2020/04/29(水) 23:21:03.48ID:IMZ53Uaz
釣りはよそでどうぞ
2020/04/30(木) 00:32:39.07ID:hTGJdOAW
テストプレイ中(UNITYで再生中)に
VisualStudioでコード編集するとテストプレイが一時停止になってしまいます。
前は動作させたままコード編集できたような気がします。(気のせいでしょうか?)
2020/04/30(木) 03:18:23.92ID:uP6BsH0v
はい、気のせいです。
スクロールはできるが、記入した時点でフォーカスがVSになってunityは止まる
2020/04/30(木) 03:33:51.89ID:yZzY0I2t
>>308
Undo.RecordObjectは上手く使えなかったのですが、
それの関連で出てきたプロパティ操作とやらを使ったらできました!
ありがとうございました
326名前は開発中のものです。
垢版 |
2020/04/30(木) 05:33:09.73ID:rTPsa1+b
ユニットをクリックすると移動できる範囲の色を変えるという実装を作ろうとしています。

UIのオブジェクトでマップを作った場合、
マップのタイルにUIのImageをアタッチしてこれを半透明にし、後はON/OFFにすることで表現できるようです。

ところがいまヒエラルキーに画像をドラッグ&ドロップで作り出したオブジェクトをベースにマップを作っているので
このやり方ができません。
半透明のマスクのようなものを上から適用したいのですがやる方法があるでしょうか?
すべてを諦めてマップをUIで実装しなすことも考えています。
327名前は開発中のものです。
垢版 |
2020/04/30(木) 05:55:20.90ID:rTPsa1+b
>>326
自己解決しました。

元のオブジェクトの下に子オブジェクトを追加して、
この子オブジェクトをON/OFFすればできました。
2020/04/30(木) 06:48:03.52ID:XHyCB/e1
UnityでFE風のSRPGを作ってる人のブログを前に見たな
自分が見たときはちょうど行動可能範囲に色をつけたところで終わってた
2020/04/30(木) 11:41:17.32ID:V6Pk2JwW
http://s.kota2.net/1588213392.png

ボタンを押すと5の星だけが表示されるスクリプトなのですが、
親になっている星のオブジェクトをpublicで参照するやり方ではなくて
Findでヒエラルキーから探してくるやり方に変更したら動かなくなりました。


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Button5star : MonoBehaviour//ボタンにアタッチ
{
//public Transform STARParent; //publicで参照するのをやめる
Transform STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい

public void button5star()
{
for (int i = 0; i < STARParent.childCount; ++i) // for文
{
STARParent.GetChild(i).gameObject.SetActive(false);//STARParentの子を一旦全部消す
STARParent.transform.Find("star (5)").gameObject.SetActive(true);
}
}
}

-----------------------------
starParentは空のオブジェクトで子のstarは画像のspriteです。
Findで探している部分が間違っているのでしょうか?
2020/04/30(木) 12:26:29.47ID:uP6BsH0v
どう動かなくなるのか…
331329
垢版 |
2020/04/30(木) 12:40:54.07ID:V6Pk2JwW
>>330
ボタンを押しても何も反応しなくなりました。
publicで外部から親を参照していた時はうまく動いていたのですが、
Findで探すようにしたらボタンが反応しなくなった感じです。
2020/04/30(木) 12:44:12.91ID:fCNBU+9B
>>329
というかこれエラー出てない?
Findはメンバー変数の宣言時には使えない。
こうすればいけるはず。

Transform STARParent; // = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい

void Start()
{
STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
}
2020/04/30(木) 12:44:37.30ID:yZzY0I2t
簡略化してるのかと思ってたけど
もしかしてStart()とかの関数の外でGetComponentしてる?
334329
垢版 |
2020/04/30(木) 13:01:25.70ID:V6Pk2JwW
>>332 333
どうもありがとうございました。
スタート関数の中でGetComponentを書かなくてはいけなかったのが分かっていませんでした。

publicで親を参照していた時はなぜかエラーが出ていなくてボタンも動いていました。
2020/04/30(木) 17:20:43.40ID:sYkR1Hoa
僕もガチ初心者の頃にメソッドの外でGetComponentしようとしたことがありまひた(^^
誰もが通る道なのでふね(^^

ボッキング!(^^
2020/04/30(木) 17:46:57.14ID:Svx3VR2I
昨日screenspace.cameraでのUGUIのドラッグについて質問した者ですが、やっと画面に表示される様になったもののクリックした位置のかなり左にオブジェクトがワープしてしまう様になりました。

もうお手上げです\(^o^)/
2020/04/30(木) 20:54:04.01ID:dWqwrf+A
原因が同じかどうかはともかく

自分もドラッグで位置を変更できるようにしたオブジェクトがわけのわからない挙動になったことがあるわ
既存のSceneを大量にコピーして増やしたうちの一つだけがそうなったから頭を抱えた
結局原因はヒエラルキーに登録したスクリプトのGameObjectにmissingがあることだった
そんなことでも挙動がおかしくなるんだな
2020/04/30(木) 20:54:38.25ID:uP6BsH0v
クリックした時の座標データを表示して、見る。
2020/04/30(木) 21:02:57.29ID:OfoKVMka
質問時にエラーが出てる時は必ず言って欲しいわ
2020/04/30(木) 21:28:21.64ID:Svx3VR2I
ワープ現象は手札置き場パネルのホリゾンタルレイアウトがカードオブジェクトのアンカー?を左上にセットしていたのが原因っぽいです。
ドラッグ開始時に一度コンポーネントをオフにし、アンカーをスクリプトから中心に移動する事で解決しました。

screenspaceの問題についてはRectTransformUtilityを使って座標を変換する事で解決しました。

同じ現象で困る人が後から救われる様に書き残しておきます。
ありがとうございました!

>>339
エラーが出れば自分でも調べられるから楽なんですけどね・・・。
2020/04/30(木) 21:28:31.81ID:dWqwrf+A
そういえば自分の時はコンソールに何かエラーメッセージが出てたな
342名前は開発中のものです。
垢版 |
2020/04/30(木) 21:34:42.74ID:rTPsa1+b
ここで質問していろいろ弄ってわかったことのメモを置いておきます。

【uGUIのImage】と【SpriteRenderer】について
Unityで画像オブジェクトを表示する方法として、uGUIのImageとSpriteRendererの2つがあるようです。
どちらを使っても似たようなことをできるようですが、やり方が多少異なります。

@uGUIのImageを使う場合
uGUIのオブジェクトはヒエラルキーのCanvas以下に置く必要があり、座標系はピクセル(例:-375〜375)。
画像はUI→Imageをオブジェクトにアタッチして設定(あるいは最初からUI→Imageでオブジェクト作成)。
クリックしたときの動作はUI→Buttonをアタッチして設定。

ASpriteRendererを使う場合
画像を直接シーンに、あるいはヒエラルキーに置くとできるのがこのオブジェクト。
座標系は物理距離(例:-2.5〜2.5。他の人のレスによるとメートルを表しているとか)。
またこのオブジェクトをCanvas以下に移動させると座標系がピクセル(例:-375〜375)に変更。
クリックしたときの動作はオブジェクトにColliderをアタッチして、
Rayを飛ばしてColliderに当たったかどうかを判定(というコードを書く)。
(やったことはないですがRayの代わりにEventTriggerを使った方法もあるようです)

実行時には@とAは重なって表示されます。
まだよくわかっていませんが、@の座標系は動作時の環境(スマホの画面サイズ等)に依存するようで、
@とAはずれるかもしれず、その辺りのケアも必要になるかもしれません。
2020/05/01(金) 00:44:39.66ID:YDQCTUGy
UGUIではUIを作りましょうって事なんだろうけど、レイヤーを指定して最前面以外に描画できるだけで初心者にはありがたいのになぁ。
2020/05/01(金) 20:23:56.53ID:HXkpQ0jK
おすすめのアセット教えてください(´・ω・`)
2020/05/01(金) 20:37:55.42ID:KuaWU/nQ
何が欲しいねん2Dキャラ欲しいのにSE集いらないやろ
2020/05/01(金) 22:22:08.05ID:YDQCTUGy
>>344
セール終わったばっかりじゃん!
初参戦でdotweenとeasysaveとSE集3個買いました。
2020/05/02(土) 00:55:55.47ID:d/s8ZDya
宴を買ったけど今すぐ使いたいのはダイヤローグシステムの方だった
次のセールでも半額になっていますように
2020/05/02(土) 01:17:02.21ID:z//Ej8ZX
>>344
このブログでも見たら?
http://www.asset-sale.net/

都市ジェネレーターくっそ楽しそう
349名前は開発中のものです。
垢版 |
2020/05/02(土) 04:48:49.83ID:qMjLJQ/3
>>346
DOTweenは無料のようですが
DOTween Proを買ったのでしょうか?
セールが終わったばかりとは残念なことです。
350名前は開発中のものです。
垢版 |
2020/05/02(土) 04:58:59.91ID:qMjLJQ/3
>>344
最近買った本にオススメアセットが乗っていました。

Playmaker($65):プログラミング補助ツール
DOTween(無料):オブジェクトアニメーション
Easy Save The Complete Save & Load Tool for Unity ($24.99):セーブやロード実装
Anti Cheat Tool Kit($50):チート対策
UniRx - Reactive Extensions for Unity(無料):コルーチン等非同期処理ライブラリ
JSON .Net For Unity(無料):オブジェクト&#8596;Jsonの変換ライブラリ
Lean Touch(無料):タッチパネル操作
宴3 Unity Text Adventure Game Engine Version3($80):ノベルゲームエンジン
Fungus(無料):ノベルゲームエンジン(ノベルがメインじゃないゲーム用)
Camera Filter Pack($15):カメラエフェクト
Unity Particle Pack(無料):公式エフェクトサンプル
6000+ Flat Buttons Icons Pack($5.99):アイコンやボタンのデザインアセット
2020/05/02(土) 23:46:10.49ID:jg5HGTGy
ずっと解決できない不具合があり教えて頂きたいです。
http://s.kota2.net/1588430526.gif
ゲームを始めて
「赤い人」に付いているスタート関数が走って「赤い人になるボタン」が非表示になります。
「青い人になるボタン」を押すと赤い人が非表示になり、もともと非表示だった「青い人」が表示されるクリックイベントが付いています。
表示された「青い人」に付いているスタート関数が走って「青い人になるボタン」が非表示になります。
最後に「赤い人になるボタン」を押すと赤い人が表示されて「青い人」が非表示になるクリックイベントが付いているのですが、
「青い人」が非表示で消えて「赤い人」が表示されず、「赤い人になるボタン」も残ったままで何度押しても何も起こらなくなります。

RedButtonのボタンコンポーネントに付いているクリックイベントの関数
public void _RedButton()// 「赤い人になるボタン」を押したら
{
Transform Parent = GameObject.Find("ManParent").GetComponent<Transform>();//親オブジェを探す
GameObject.Find("BlueMan").gameObject.SetActive(false);// 青い人が消えて
GameObject.Find("RedMan").gameObject.SetActive(true);// 赤い人が表示
}
分かりにくいですが伝わるでしょうか。
ずっと原因が分からず途方に暮れています。ご指導よろしくお願いします。
2020/05/02(土) 23:54:46.74ID:liKQCy1q
GameObject.Findは非アクティブオブジェを検索できないから、

//親オブジェから子を探す
Parent.tran.form.Find("子オブジェ").gameObject.SetActive(true);

にすればいいんじゃないかな
353名前は開発中のものです。
垢版 |
2020/05/03(日) 00:15:02.81ID:mGAguN+2
>>352
ごめんなさい親がTransform関数だからtransformいらなかった(あっても通るけど)

Parent.Find("RedMan").gameObject.SetActive(true);
でいけると思います
2020/05/03(日) 00:46:47.83ID:3PYqNA60
>>352>>353
どうも有難うございます。
GameObject.FindからParent.Findに変更したことで挙動が一歩先に進みました。
http://s.kota2.net/1588433567.gif
「赤い人」が表示されるようになりましたが、
「赤い人」に付いているスタート関数通りに動いていません。
「赤い人になるボタン」が非表示になり「青い人になるボタン」が表示されるはず(ループする)なのですが、「赤い人になるボタン」が残ったままです。

赤い人に付いているスタート関数
using UnityEngine;
public class RedMan : MonoBehaviour
{
void Start()
{
Transform Parent = GameObject.Find("Canvas").GetComponent<Transform>();//キャンバスを参照
Parent.transform.Find("BlueButton").gameObject.SetActive(true);//「青い人になるボタン」表示
Parent.transform.Find("RedButton").gameObject.SetActive(false);//「赤い人になるボタン」非表示
}
}
「赤い人」が表示されて最初の状態に戻ったのでループするはずですが、「赤い人」が表示されているのに↑のスタート関数通りに動いていません。ゲームスタート時はRedManが表示、BlueManが非表示の状態から始まりました。
Parent.transform.Findにしているのでたぶん間違っていないと思うのですが。
どのような原因が考えられるでしょうか。
2020/05/03(日) 01:05:15.72ID:mGAguN+2
>>354
Start関数は1回目にインスタンス化したときにしか呼ばれないから、アクティブ化したとき毎回呼びたいなら
OnEnable関数に入れると解決すると思います
2020/05/03(日) 01:20:39.40ID:3PYqNA60
>>355
どうもありがとうございます!
ずっと行き詰っていたので質問してよかったです!
2020/05/04(月) 11:48:55.60ID:J4ms5P/o
ヒエラルキー
Canvas
image

もし、Canvasの子のimageに付いているimage.csの中にあるbool型の変数 isBool が false だったら

処理

それ以外

処理


というif文のコードを続けて書くことは出来るでしょうか?
階層をたどって行ってスクリプトの中にある変数がfalseかtrueかを知りたいコードです。
こういう書き方が出来るのであれば教えてください、丸投げで申し訳ないのですがどうぞよろしくお願いします。
2020/05/04(月) 11:59:50.15ID:FDckzKji
子の取得
イメージの取得
スクリプトの取得からの変数を取得
の複合となります。
2020/05/04(月) 16:56:20.55ID:4sVluEfA
なんでもかんでも、public にするのは良くないと
よく言われますが、
その理由は、思いがけず他のスクリプトから変更されるリスクがあるから
という認識で大丈夫でしょうか?

そうであるとすれば、個人制作であれば
それほど気にしなくていいですか?
360くまじょ
垢版 |
2020/05/04(月) 17:27:45.79ID:AIvgNpPa
>>359
いいよ
でも何でもかんでもpublic メンバ変数は良くないと知ったうえで
361357
垢版 |
2020/05/04(月) 20:12:39.90ID:J4ms5P/o
>>358
どうもありがとうございます。
別スクリプトの変数の値を取得することが出来ました。

もし、Canvasの子のimageに付いているimageScriptの中にあるbool型の変数 isBool が false だったら

GameObject _image; //スクリプトが付けているオブジェimageを変数に入れる
BigModeScript _imageScript; //imageのコンポーネントimageScriptを変数に入れる

_image = GameObject.Find("image");
_imageScript = _BigModeScript.GetComponent<imageScript>();
bool _isBool = _imageScript.isBool;
if (!_isBool)
{
      処理
}
    else
{
   処理
}

ifの()の中に全部入れるようにするのかと思っていましたがそうではなかったです。
362名前は開発中のものです。
垢版 |
2020/05/05(火) 13:51:03.05ID:9nXMWD0/
http://www.diced.jp/~lizard581/cgi-bin/imageup/data/1377.jpg
http://www.diced.jp/~lizard581/cgi-bin/imageup/data/1378.jpg

初歩的な質問ですみません。カメラの撮影範囲を表示している@の線に背景が触れると、Aのように表示されます。
Aのようにならず正常に表示するにはどうすればよいのでしょうか。
分かる方がいましたら回答お願いします。
2020/05/05(火) 15:36:56.90ID:9Qg9BbaI
>>362
その線は、カメラに表示させる範囲をあらわしてるんよ。

カメラに映る範囲の距離を伸ばせばいいだけだから、
カメラのインスペクタの"Clipping Planes"のFarの値を増やせばいいよ。
2020/05/05(火) 15:56:09.82ID:M7CVA2SC
手前だからNearだな
365名前は開発中のものです。
垢版 |
2020/05/05(火) 16:28:57.74ID:9nXMWD0/
ありがとうございました!これで作業が進みます!
2020/05/05(火) 20:21:25.72ID:yqNxCZ2T
ユニットが選択されたらステータスに顔画像を表示する部分を作っています。

1.ユニットの子オブジェクトのImageに画像をロード(ユニット生成時に一度だけ)
2.ユニットが選択されたとき、ステータスUIのImageを選択ユニットの子オブジェクトImageに置換

というやり方で実装しました。

ここでゲーム実行中に1の画像ファイルを別なものに置き換えたところ、
2のステータスUIの画像までリアルタイムで(正確にはUnityをActive windowにしたときに)変わりました。

ユニットが選択されるたびにファイルアクセスが発生しないように上記のような実装にしたのですが
ステップ1で予め画像をロードしておく処理は無駄なんでしょうか?
2020/05/05(火) 21:14:52.35ID:GfNu4m3E
質問失礼いたします。
カメラにアニメーションキーを打って再生しているのですが、
1フレーム間の移動を大きくすると、再生時に正常に再生されない(キー前後で補完のようなものがはいる)のですが、原因や対処法などございますでしょうか。
宜しくお願い致します。
2020/05/05(火) 21:20:10.87ID:ENVyAp/N
マルチっすか……
2020/05/06(水) 06:05:36.53ID:N50fTHgp
マルチだね
2020/05/06(水) 17:25:18.14ID:tuJN3eof
Unity AIPの詳しい解説が掲載されている教本があれば教えてください
2020/05/06(水) 17:35:24.14ID:+0FT+A2D
そんな物は無い
2020/05/06(水) 18:46:01.40ID:oYW9vXG2
垢付きさんはUnityの教本一冊も読んでないでしょ〜
2020/05/06(水) 20:30:23.93ID:7QaDuGGA
カメラをズームしてもぼやけないよう予め大きめのpng画像でPlayerキャラを用意し、Scale縮小して表示したいと思います。この場合、

・一番親のオブジェクトでまとめて縮小する、
・キャラを描画するレンダラーコンポーネントを付けた子オブジェクトを縮小する

どちらのパターンが無難でしょうか?
親オブジェクトにはRigidbody2Dと接地用のコライダー、メイン処理用のスクリプトが付いており、
子はレンダラー用、レンダラーに追従する当たり判定用などのオブジェクトが3つぐらいあります。

どちらも今のところは大丈夫なんですが、後々物理演算のかみ合わせとかなにか問題出てくる要素あるのではと決めかねています。
なんかふわっと質問で申し訳ないですが、アドバイスください。
2020/05/06(水) 20:42:07.26ID:DpeqSzMx
>>373
後々がどういう仕様になるか、ご本人がわからなければ第三者はもっとわかりません。未来の話は置いといて作れば良いかと。
あと、気になったのは大きい画像とありますが、2dでドット絵なら、主スケールの時に1対1ドットにすべきかと思います。縮小すると線が消えますので。
2020/05/06(水) 23:57:46.66ID:7QaDuGGA
>>374
ありがとうございます。あまり考えても仕方がないとは思うのですが、
オブジェクトの物理演算の動きを阻害させずにグラフィックだけ動かす必要が出て、オブジェクトのプレハブの親子関係全修正になってしまったので、
後々融通の効くオブジェクト構造とはどういうものなのだろうかと気になっています。

例えば炎がキャラの位置に追随しながら周囲を回転する魔法を実装したい、となった際にはキャラの子オブジェクトとしてインスタンスするのが良さそうですが、
親のルートオブジェクトがキャラによってまちまちの縮小だと汎用的に実装できるのだろうか…とかですかね。

主スケールのときに1対1ドットとは、基準となるカメラのscaleで原寸画像で表示できるサイズにすべき、ということでしょうか?
キャラ画像はドット絵のスプライトアニメではなくアニメ塗りスプライトのボーンアニメを実装しているのですが、カメラを引いた時のガタつきが気になります
2020/05/07(木) 00:20:31.75ID:5v92ATly
>>373
一番無難なのは、画像アセットの「ユニットごとのピクセル数」を設定する方法かな。
2020/05/07(木) 01:19:14.26ID:kT1fPxaV
>>376
SpriteModeのPixel Per Unit の項目ですかね。うろ覚えになって以降意識の外にあったので調べ直してみます。
2020/05/07(木) 11:15:43.55ID:dcpSlS2D
>>375
ドット絵と思い込んでましたので、そうでない、拡大にも耐えられる絵なら、主スケールは忘れてください。失礼しました。
2020/05/07(木) 16:07:30.44ID:VHUNtNMf
マルチってどういう意味ですか?
380くまじょ
垢版 |
2020/05/07(木) 18:45:36.64ID:x1GQ3H70
>>379
複数

掲示板などでは嫌われる行為
回答を速く得るために多数の掲示板に書き込む
そういう人はどれかひとつの掲示板に回答があれば他の掲示板住民のことは無視するというかどこに書き込んだか覚えてもいない
自己解決すればすべての回答を放置する確率が高い
最初に説明をすれば許されることがある
急いでたからと言うと炎上する
2020/05/08(金) 10:10:31.84ID:UflBmPCI
>>349
質問させて下さい。
ターン制バトルのRPGなどで敵ABCが居たとして、
それぞれの攻撃の処理にモーションを含めて1秒ずつかかるとします。

Aの攻撃が終わったらBの攻撃〜とする時にコルーチンなどで1秒毎に行動させる方法が思い浮かびます。

しかし、ゲームを作っているうちにAのモーションは2秒かかるという状況もでてくると思います。

その場合はAの行動が終わった事をフラグにして、アップデート関数でif(A行動済み==true)という風に作るのでしょうか?
それとも、Aの行動が終わった時に呼び出す〜みたいな関数があるのでしょうか?

アップデートを極力使わずにプログラミングしているのですが、アクションゲームなどは常にアップデート多様していると思うのであまり気にしないで使っていいのでしょうか?

ご指導頂ければと思います。
よろしくお願い致します。
2020/05/08(金) 10:11:26.30ID:UflBmPCI
すみません、予測変換で謎のアンカーがついてしまいました・・・。
2020/05/08(金) 10:28:24.73ID:vnSLXTuW
>>381
いろんな作り方があるので間違いじゃないです。
2020/05/08(金) 10:33:59.40ID:vnSLXTuW
>>381
敵ににスクリプトが付いていて、呼び出して行動させるなら、戻り値で対応するべきかと思います。
2020/05/08(金) 11:21:17.27ID:UflBmPCI
>>384
回答ありがとうございます!
引数の使い方を最近やっと覚えたばかりで戻り値というアイデアはありませんでした。
フラグの管理に便利そうですね!

質問の仕方が冗長だったのですが、
メソッドの終了をトリガーにメソッドをスタートさせる事は出来るか(またそれは簡単か)
ターン制のゲームの処理をアップデートで管理するのは普通の事か(RPGに限らずシュミレーション等で敵の移動が完了したら〜など)

が一番知りたいです。
もしご存知でしたら教えて頂けると幸いです。
よろしくお願い致します。
2020/05/08(金) 11:45:16.81ID:vnSLXTuW
私なら、ターン制ならupdateは使わない方向で作るかな。全て一元管理が基本(私見)だし。
2020/05/08(金) 13:25:28.64ID:UflBmPCI
>>386
ありがとうございます!参考にさせて頂きます。

プログラミングの基礎的な事はだんだん出来るようになってきたのですが、ゲーム作りは計算結果を瞬時に表示すれば良いわけじゃないので難しいですね。
2020/05/08(金) 14:20:51.68ID:vnSLXTuW
>>387
敵キャラ毎のローカルでupdateを使うこともあります。例えば敵キャラの待機中のアニメのコントロールなどメインに関係のない動作処理で、もちろんメインからの指示があればキャンセルして動作する仕様です。
switch などで条件分け。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況