【ゲームエンジン】Un ..
[2ch|▼Menu]
48:弟子
18/06/24 19:59:04.97 jJ6M8/KE.net
>>45
複数の書き込み確認です
なお、規制されるとこの板全部書き込み出来なくなるのでよろしくです
取り合えず、複数の通報してます。
来週もあるようなら他からも通報させてもらいます
あちらに書き込みしたければ、これで止めてくださいね

49:名前は開発中のものです。
18/06/24 20:58:57.27 J7+ya1Cs.net
>>46
別人だよお馬鹿さん

50:名前は開発中のものです。
18/06/25 00:56:25.31 Gjh1k0no.net
Wave型ってなんですか? 波型?
検索してもUnity上での組み立て方法ばかりなので
その言い回しはUnity独特のものですよね?
Wave型というものはどういう型なのか、教えてください。

51:名前は開発中のものです。
18/06/25 01:02:26.71 Gjh1k0no.net
また、プレハブにあるファイルの複製方法ってありますか?
左クリックの項目にコピーが見当たらないので。
ファイル開いて直接


52:複製しても大丈夫なんでしょうか



53:名前は開発中のものです。
18/06/25 01:13:13.22 kEKgPmD2.net
あります

54:名前は開発中のものです。
18/06/25 01:54:54.97 49rW5epg.net
エクスプローラーでコピーしてちょっとすればMetaファイルも自動で作られる。
でも、ファイルだから名前かぶるとダメだぞ。
楽なのはヒエラルキーに一度いれて、そこから何回もアセットにドラッグアンドドロップするのが良いかな。
勝手に名前の後ろに連番降られるけど。

55:名前は開発中のものです。
18/06/25 02:13:33.57 hF+d1Szw.net
ctrl+c ctrl+vじゃできなかったっけ?

56:名前は開発中のものです。
18/06/25 02:19:59.51 blMz7gxQ.net
ctrl+dだよ
削除っぽいけど複製だよ
ほんとだよ
だまされたと思ってやってみなよ

57:名前は開発中のものです。
18/06/25 02:33:23.61 FHHIRSk8.net
CTRL+ALT+DEL だよ!

58:名前は開発中のものです。
18/06/25 03:57:48.26 Gjh1k0no.net
プレハブにあるコピーできないファイルを
ヒエラルキーにドラッグすると
「Unable to instantiate prefab. Prefab may be broken.」
とエラーが出ました。
このせいだった様です。
、、というか、いきなり、壊れる、とかこんなことあるんですか??
フレハブ内のファイルが壊れるケースを教えてください。
修復は、そのプレハブファイルを最初から作るしかないですよね?ソースとかないですから。
Unityではそういうリスクがあるんですね。。

59:名前は開発中のものです。
18/06/25 03:59:16.85 Gjh1k0no.net
コピー方法に対してレスくださった皆さま、ありがとうございます
いろいろ試してはいたんですが、壊れていたのでコピーできなかったようです、、、

60:名前は開発中のものです。
18/06/25 04:01:17.30 Gjh1k0no.net
ちなみに、エラー全文はこれです。
壊れている、とありますが、具体的な状況わかりますか?
Unable to instantiate prefab. Prefab may be broken.
UnityEditorInternal.InternalEditorUtility:HierarchyWindowDrag(HierarchyProperty, Boolean, HierarchyDropMode)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

61:名前は開発中のものです。
18/06/25 05:42:54.13 Gjh1k0no.net
とりあえず、壊れたプレハブファイルは
新しく作り直し、解決しました。

62:名前は開発中のものです。
18/06/25 06:07:18.49 CdBJ6SaM.net
>>58
お疲れちゃん、プレファブに使ってたファイルやら子プレファブやを削除してたら壊れてるって出るけど、エラーメッセージまでは覚えてないや。
wave型はどばっと来てそれをやっつけるタイプだよ。第1波とか言うとピンとくるかな。

63:名前は開発中のものです。
18/06/25 06:53:23.94 Z5gZAoLF.net
>>48
unity独自の呼び方ではないよ。

64:名前は開発中のものです。
18/06/25 08:19:02.64 GOooUkoF.net
UnityでFortnite作れる?

65:名前は開発中のものです。
18/06/25 08:48:24.45 nUVruEF5.net
fortniteはunreal enginで作ってるんでしょ

66:名前は開発中のものです。
18/06/25 11:33:06.26 zyvS5Xn9.net
>>61
アセットを買えば簡単ですよ
初心者はまずアセットを検索する技術から磨きましょう!

67:名前は開発中のものです。
18/06/25 18:00:43.64 CdBJ6SaM.net
アセットストアも公式のスクリプトリファリンスも検索遅いですよね。リファレンスページの検索よりgoogleの検索使ってリファリンスに飛んだ方が数倍早いのなんとかならないの。

68:名前は開発中のものです。
18/06/26 12:46:16.79 coUVwrcB.net
お目汚し失礼致します。
つい最近Unityに手を出した者なのですが、GameObjectとPrefabの扱いでいくつか質問があります。
1.オブジェクトをプレハブ化した後、シーン上で元のオブジェクトを削除(単純に見えないようにする、という意味です)するにはどうすればよいのか?
2.例えばキャラクターの装備を変更したい時にはプレハブ化したオブジェクトをインスタンスで呼び出せば良いらしいが、その元オブジェクトはどこに置いておけばよいのか?
初心者丸出しの質問ですが、お教え頂ければ幸いです。よろしくお願い致します。

69:名前は開発中のものです。
18/06/26 13:02:15.32 yQPPs3aZ.net
>>65
アセットストアに装備関係のアセットがありますよ

70:名前は開発中のものです。
18/06/26 13:19:54.02 wlaWupK1.net
>>65
URLリンク(neareal.net)
これか、データ格納オブジェクト&スクリプトをつくってあらかじめ貼っておく。

71:名前は開発中のものです。
18/06/26 13:22:02.33 waiFArGb.net
>>65
プレハブ化できている(フォルダ内に移した)なら元のゲームオブジェクトは削除しても問題ない
なにか訳あって残したいんなら左上のチェックボックス外して非活性にするかカラーを透明にする

72:名前は開発中のものです。
18/06/26 13:43:37.72 j4B4mR6e.net
>>67 オブジェクトの読み込みはスクリプトでの制御が良さそうですね、ありがとうございます。
>>68 なるほど、プレハブ化すれば元オブジェクトは要らないのですね…なんか勝手に「プレハブ化元は消せない」と思い込んでいました。ありがとうございます。

73:名前は開発中のものです。
18/06/26 13:45:21.87 j4B4mR6e.net
あ、ID変わってますが>>65です

74:名前は開発中のものです。
18/06/27 02:26:34.93 MZGUGuBC.net
すみません、変な質問で申し訳ないのですが
Unityには様々なコンポーネントがありますよね。
公式にて、ゲームオブジェクトが空鍋なら、
コンポーネントはそこに入れる具材だと書いてました。
で、すべてのゲームオブジェクトの、どんなコンポーネントでも、
スクリプト(ソースコード)上で取得することができる、という
私の認識は間違って居ませんでしょうか?

75:菩薩@弟子
18/06/27 05:23:47.81 /3PKTmvf.net
汝らよ、空鍋に入れる具材はキムチと知りなさい。
鍋のキムチを取得したければアセットを買えばよい。
初心者は、我が見守るこのスレで、誉れと思って、そのことを深く記憶にとどめておきなさい。

76:名前は開発中のものです。
18/06/27 06:27:43.37 BdTG0UH4.net
>>71
間違ってないよ

77:名前は開発中のものです。
18/06/27 09:19:34.18 MZGUGuBC.net
>>73
ありがとうございました。

78:名前は開発中のものです。
18/06/27 11:41:14.25 NupjzNCO.net
Hierarchyのラベルの大きさを変えるにはどうしたらいいですか?
リストの行の高さを変えるのが目的です。

79:弟子
18/06/27 13:26:27.49 rsgWo6Ac.net
>>75
色々と調べましたが、直接ヒエラルキーウィンドを変更するのはないですね
別のエディトウィンドで新規にヒエラルキーを作成してやるなら出来るようです
ただし、かなり難しいので根気がいると思います
別のヒエラルキー作成
URLリンク(anchan828.hatenablog.jp)
エディタ画面のフォントスタイル変更
URLリンク(baba-s.hatenablog.com)

80:弟子
18/06/27 13:53:39.42 rsgWo6Ac.net
一応、サンプルのを2行表示してみたところ、行をかなり開けてます
URLリンク(i.gyazo.com)

81:75
18/06/27 13:54:00.81 NupjzNCO.net
直接は無理なんですね。
上記のサイトを参考にして自作してみます。

82:名前は開発中のものです。
18/06/27 15:12:21.69 07W788OP.net
C#を使用して2Dゲーム制作をしている初心者です
左右の方向キーを使い、特定の位置五ヶ所にキャラクターを移動させるにはどのようにしたらいいのでしょうか?
・移動箇所
☆キャラクター
・ ・ ☆ ・ ・

83:名前は開発中のものです。
18/06/27 15:31:24.61 mQnQFUMP.net
>>79
左右キーが押されたらキャラクタの座標を変更すればいい
各位置を0〜4の番号を割り振っておいて、今キャラクタが何番にいるか記憶しておく
3番にいるときに右キーが押されれば4番に移動すればいいので4番の座標に動かす
4番にいるときに右キーを押されたら0に行くのか4のままなのかは仕様次第

84:名前は開発中のものです。
18/06/27 15:51:48.80 07W788OP.net
>>80
ありがとうございます
使うのはifでいいのでしょうか?

85:弟子
18/06/27 16:32:19.34 rsgWo6Ac.net
すごく単純なサンプルなんだけど役に立てば…
URLリンク(i.gyazo.com)
SSのようにあらかじめ決められた場所に配置しておきます、でインスペクタでオブジェクトを指定し、Start関数で一旦全部非表示にします。
URLリンク(i.gyazo.com)
あとはキーが入力されたら、その位置のオブジェクトを表示する
URLリンク(imgur.com)

86:名前は開発中のものです。
18/06/27 16:43:13.77 mQnQFUMP.net
>>81
たぶん自覚してるんだろうけどスタートラインにも立ててないような初心者なんで82のサンプルでも見て何がどうなってるか理解するとこから始めよう
このサンプルが実現したいものを再現してるとは思わんが、これくらいは問題なく理解できないとゲーム作るなんて夢のまた夢

87:名前は開発中のものです。
18/06/27 16:45:01.72 07W788OP.net
>>82
私のような初心者にサンプルまでつけていただいて…大変恐縮です
ありがとうございます
サンプルを参考に頑張ってみます

88:名前は開発中のものです。
18/06/27 16:45:40.74 mQnQFUMP.net
っていうかキャラクタの移動、って質問者が言ってるのにactiveの切り替えでサンプル作るってすごい発想だな
移動を歩いてるよう見せたいとかしたくなったら破綻すんじゃん

89:名前は開発中のものです。
18/06/27 17:40:42.14 Fqeg8KbG.net
瞬間移動ならいいんじゃね。
直接座標いじるのもいいが、決まった座標かつ少数の移動先なら有効っちゃ有効。
慣れるまでならTranaformいじるよりこっちの方が混乱しないだろ、多分。

90:名前は開発中のものです。
18/06/27 18:06:05.29 b8c+3yQw.net
漠然と質問なんだから良いんだよ。
キー入力の時、押しっぱとかの対応を書こうとしたけど、要らぬお世話と判断して辞めた。
今はこれぐらいで充分だとね。

91:名前は開発中のものです。
18/06/27 18:40:50.61 bK0Eiav/.net
>>86-87
何故「弟子 ◆rZPPjYuxmQ」を外して返信するんだ?
何か不都合でもあるのか
分かりづらいのだからコテハン付けたまま同じ端末で書き込んでくれないか

92:名前は開発中のものです。
18/06/27 19:58:04.86 BDZcCUCN.net
>>88
禁止事項に違反してますね
荒らしとして通報させて貰います
この板全体に書き込みできなくなりますよ

93:名前は開発中のものです。
18/06/27 21:05:06.42 bK0Eiav/.net
>>89
>■注意事項
>「アセットを買えば」「チュートリアルやれ」等禁止、初心者の質問疑問に初心者が答えるスレ、ググれじゃなく何のキーワードでググったらいいかを書く
どこのどの部分に違反しているの?
ちょっと見てる人全員に分かるように詳しく説明してくれない?

94:名前は開発中のものです。
18/06/27 22:34:23.72 kjyTyUbj.net
EditorフォルダにBuildPipeline.BuildAssetBundlesのscriptをいれて
プレハブを選択してメニューからBuildAssetBundlesをしてアセットを作りました
UnityStudioから覗くとScene HierarchyはGameObjectだらけ(1つめの画像)
Asset ListのTexture2Dを選択しても何も表示されません。(2つめの画像)
何が問題なんでしょうか。
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)

95:弟子
18/06/27 23:19:29.07 rsgWo6Ac.net
>>84
めげずに頑張ってください、私で分かる事であればお答えしますので
一応、スムーズにムーブするサンプルです(画像だけ)
ソース欲しいならど


96:っかにうpしますね ttps://imgur.com/a/xmOYSqk >>91 ここは素人だらけなので、すごく難しい質問ぽいですね、さくっとアセットバンドルのところを斜め読みしたのですが ビルドしたのを取り込んで使う場合ってAssetBundle.LoadAsset とかでロードするんでは? こちらのスレだと解決には厳しいかもしれません



97:名前は開発中のものです。
18/06/28 01:28:30.00 r9ZDJtDU.net
>>92
研究したいのでソース見たいです
よろしくお願いします

98:名前は開発中のものです。
18/06/28 06:22:42.46 /+kZ1wVw.net
スムーズに動かしたいならTransrateかAddforce使う。
物理挙動も取り入れるならAddforceで物理はどうしても取り入れたくないならTransrateと使い分ける。
サンプル丸コピじゃ成長しないし、少なくとも俺の解説よりは分かると思うから、少しはググるといいと思うよ。

99:名前は開発中のものです。
18/06/28 06:25:01.98 /+kZ1wVw.net
すまんスペル間違えてた。
TransrateじゃなくてTranslateな

100:弟子
18/06/28 12:00:33.21 /UzN8HYz.net
>>93
リファクタリングして短くなったのでSSであげますね
まぁまたケチ付けたい人が色々と文句ダケ言ってくるかもしれないけど気にせずに
まずは、ソース丸パクリでもどう動いているのか理解する事が重要で
その後に、少し修正してみて、例えば2つ先まで動くとかね
あと今は右、左の最大値は入れてないのでどこまでも行きます
そこは自分で最大値3以上は行かないという感じで修正してみてください
自分も最初は雑誌のBASICを打ち込んで覚えたので丸写しは有効な手段だと思います
URLリンク(i.gyazo.com)
URLリンク(i.gyazo.com)
変数の説明すると
dir 方向
limit 移動限界
移動後、X座標が少数になるのはdeltaTimeを掛けているからなので、まぁこの辺も移動にぴったしな整数にするという事も勉強になる修正かなと思います

101:名前は開発中のものです。
18/06/28 14:20:39.58 9SECcI4o.net
んじゃ、せっかくだからケチつけてみようかな。
サンプルなんだから分かりやすく書いたほうがいいよ
ってことで、v2posのスコープが広すぎる。Update関数内のローカル変数でいい。ってかv2pos.xしか使ってないんだからfloat pxにしとけばいいだろ。理解するのに30秒かかったわ。(変数生成負荷を嫌ったんだろうけど、見やすさは重要だと思うんだ)
てかlimitって名前が分かりにくい。x座標の目的地なんだからtargetXとかでいいんでね?30秒(略)

102:名前は開発中のものです。
18/06/28 14:28:13.80 9SECcI4o.net
ついでに、dirこそUpdate関数内ローカルでいい。
int dir=tfTriangle.position.x<limit?1:-1;
って書いとけばcheckrightのなかでdirをゼロにする必要もない。

103:弟子
18/06/28 14:29:20.15 /UzN8HYz.net
>>97
これ悪い例ね
pxにして直接potisionに代入できないから、たぶんこの人は作ったこと無くて覚え立てのスコープとか使ってわざわざ自分の才能のなさを書きにきてるのね
そんな時間あるなら自分流のサンプル作って出せばいいのに

104:名前は開発中のものです。
18/06/28 14:39:42.06 UPpeKgHO.net
つーかbasicからやってるような人間がリファクタリングして他人に見せる用として提示するコードがこれなの?
変数大文字から始めるわ、ハンガリアンつけるわでびっくりなんだけど
初学者のため思うならこそちゃんとしたコード見せてあげるべきなのに

105:名前は開発中のものです。
18/06/28 14:53:19.52 /+kZ1wVw.net
>>100
ハンガリアンもスネークも人それぞれだろ。初心者


106:スレでそんな細かいことで煽るなよ。 こういう記法がいいと思うってアドバイスだけでいいじゃん。 ちなみに俺はローワーキャメルが好きだ。 記法についてはここな。 ttps://www.google.co.jp/amp/s/earley.jp/blog/development/camelcase-hungariannotation-snakecase-programming/amp/



107:名前は開発中のものです。
18/06/28 14:56:43.12 UPpeKgHO.net
vector2.zero知ってるならrightやleftも使おうよ
なんすか、dir=1って
なんでv2pos.xに代入したあとcheck関数呼んでからv2posを代入してんの?
check関数でなにかしてるわけでもないならそいつらあとでいいよね?
check関数切り替えてるけど切り分け方がよくわからん
キー入力、移動先計算、移動方向判定、移動
移動方向判定だけなんで関数化したの?checkって名前もどうかと思うけど、まぁ命名はいいや

108:名前は開発中のものです。
18/06/28 14:57:38.47 /+kZ1wVw.net
ハンガリアンに否定的なサイトしか見つからなかったが、ハンガリアンにも間違ったコードが間違って見えるって長所があるからな

109:名前は開発中のものです。
18/06/28 14:59:54.67 UPpeKgHO.net
>>101
人それぞれだけどサンプルとして提示するならせめて公式に合わせるべきでは?
このコードを参考にしてください、って初心者に提示してるんだよ?
if使うんですか?ってレベルの初心者に

110:名前は開発中のものです。
18/06/28 15:01:01.11 UPpeKgHO.net
>>103
システムハンガリアンとかでググればハンガリアンの本来の意味を解説したとこ見つかるよ
間違ってもGameObjectだからgoってつけようなんて発想にはならん

111:名前は開発中のものです。
18/06/28 15:11:47.18 h3xp0Kjr.net
>>99
変数生成負荷とか言ってるんだからfloat型pxをxにしたnew Vector2を生成しろってことだろ

112:名前は開発中のものです。
18/06/28 15:17:43.19 K46AO26G.net
俺、駄目なハンガリアンの使い方してるわw
勉強になるなぁ

113:弟子
18/06/28 15:20:04.03 /UzN8HYz.net
大漁だなw
サンプル作れないけど文句しか言えない人がこんなに居るんだねー
一応ここは素人が素人に答えるスレなので、素人にも分かるようにみなさんもサンプル提示すればいいと思うよ
きっと頭いいから見やすくて分かりやすいサンプル提示してくれるんだろうなぁ
だよねー
まさか、文句だけ言ってプログラム書けないとかないよね?

114:名前は開発中のものです。
18/06/28 16:01:20.93 qauh58MA.net
上のサンプルで充分だろ。
揚げ足とってウダウダ言っても、質問者の為にならんぞ。ほんとケチだけは立派なんて頭悪すぎるから辞めなよ。

115:名前は開発中のものです。
18/06/28 16:07:14.65 /+kZ1wVw.net
>>108
俺のスパゲティーコードでいいならのせるぞ

116:弟子
18/06/28 16:07:56.12 /UzN8HYz.net
最後のサンプル
Unityという事でアニメにして動かしてみた
まぁこういう事も出来るという事で…
URLリンク(i.gyazo.com)
URLリンク(i.gyazo.com)
URLリンク(imgur.com)
つまり何が言いたいかというと、一つのやりたいことを行うのに沢山のやり方があって
そのどれをやってもいいしコードの書き方も色々とあるわけさ
まぁ仕事として他人と共同で作成とかになるとコード規約とか出てくるけど
まぁこんなとこでホビーとしてやる分には、まず動かしてみる事が一番大事
口だけで文句言うのが一番進歩もしないって事よ

117:弟子
18/06/28 16:11:42.18 /UzN8HYz.net
>>110
是非是非、他人のコードはいい勉強になりますので見て見たいです
自分では思ってもみない「気づき」が必ずあるので
>>111
public Transform trTriangle;
private void Awake()
{
trTriangle = GetComponent<Transform>();
}
これ使ってないので外すの忘れました^^;

118:名前は開発中のものです。
18/06/28 16:42:26.57 UPpeKgHO.net
111が初心者向けとしてのサンプルとしては


119:一番良いと思う なんでactiveの切り替えなんてトリッキーとも取れるような手法を一番に持ってきたんだろう animatorだと他の要素を加えるときに制約になる可能性があるから、別手法として96みたいにすることもできるって流れが普通だと思うけど



120:名前は開発中のものです。
18/06/28 17:06:10.17 /+kZ1wVw.net
とりあえずてきとうに作った。
自分でもクソコード書いてるかわからんからどんどん指摘してくれ。よくない癖とかついてそうで怖いからな。
画面内に収まるようにもしてみた。
URLリンク(i.imgur.com)

121:名前は開発中のものです。
18/06/28 17:06:14.63 /+kZ1wVw.net
とりあえずてきとうに作った。
自分でもクソコード書いてるかわからんからどんどん指摘してくれ。よくない癖とかついてそうで怖いからな。
画面内に収まるようにもしてみた。
URLリンク(i.imgur.com)

122:名前は開発中のものです。
18/06/28 17:07:01.22 /+kZ1wVw.net
うわ、連投すまん。

123:名前は開発中のものです。
18/06/28 17:17:38.71 UPpeKgHO.net
>>115
特に気になるとこ無い気がする
min maxは画面サイズが変更されたときに再計算すればいいじゃないとか思ったけど、この程度の処理気にするもんでも無いし

124:弟子
18/06/28 17:42:03.28 /UzN8HYz.net
>>115
GetAxis便利ですよねー
ただ今回の最初の要求って>>79なので上下いらないかなと思うのです
それと、位置移動なんですが、これって指定位置で止まるんでしょうか?
ちなみに自分はSerializeFieldの使い方知らないのですけど
TransformがPrivateなのですが、これってどこで指定するんでしょうか?
インスペクタじゃ出来ないですよね?

125:弟子
18/06/28 17:44:41.51 /UzN8HYz.net
あ、あとspeedもSerializeFieldになってますけど
ただこちらも初期値入ってないけど、もしかしてSerializeFieldにするとどっかで初期化されるというか
アタッチしたオブジェクトの何かを持ってきてくれるのでしょうか?
ちょっと自分にはわからない事が多いかもしれません><

126:名前は開発中のものです。
18/06/28 17:55:42.78 /+kZ1wVw.net
>>118
SerializeFieldはprivateでもインスペクタで値を設定できるようにする属性だよ。
publicにしたらどこから値が変えられるかわからないからprivateにしてるんだけど、それじゃインスペクタで参照できないからこの属性で強制的にシリアライズしてる。

127:名前は開発中のものです。
18/06/28 18:57:50.31 H6a6imyl.net
>>118
止まるというより2点で指定された長方形区画から外れると枠上に移動するようになってないか

128:弟子
18/06/28 19:22:46.38 /UzN8HYz.net
>>120
なるほど、これは便利な機能ですね!勉強ななりました!
ありがとう

129:名前は開発中のものです。
18/06/28 19:37:21.68 TZKnsOc7.net
>>106
俺が反論しようとしたポイント先取りするなよwww分かってくれてありがとう!
>>98のコードだと振動しちゃうので、そっち突っ込まれるかなと思ったけど、検討違いな突っ込みだったのでびっくりだよw

130:名前は開発中のものです。
18/06/28 21:57:18.70 cx/Kc4dr.net
>>79
int[] x=new int[]{-8,-4,0,4,8};
int sw;int dir;int n=2;float nextX;
void Start(){transform.position=new Vector2(x[n],0);}
void Update () {
if(sw==0){
if(Input.GetKeyDown(KeyCode.A)&&n>0){sw=1;dir=-1;n=n-1;nextX=x[n];}
if(Input.GetKeyDown(KeyCode.D)&&n<4){sw=1;dir=1;n=n+1;nextX=x[n];}
}
if(sw==1){
transform.Translate(new Vector2(0.1f*dir,0));
if(dir==1&&transform.position.x>nextX){sw=0;transform.position=new Vector2(nextX,0);}
if(dir==-1&&transform.position.x<nextX){sw=0;transform.position=new Vector2(nextX,0);}
}
}

131:名前は開発中のものです。
18/06/28 22:00:25.96 cx/Kc4dr.net
floatにする必要なかったな

132:名前は開発中のものです。
18/06/28 23:02:09.99 pfPaTp9f.net
>122 弟子 ◆rZPPjYuxmQ 2018/06/28(木) 19:22:46.38ID:/UzN8HYz
なんでコイツ質問スレ乱立してんの?
【ゲームエンジン】Unityなんでも質問スレpart1
1 名前:名前は開発中のものです。 2018/06/28(木) 15:25:16.78 ID:/UzN8HYz

133:弟子
18/06/28 23:40:04.36 /UzN8HYz.net
>>126
そっちのスレはなんでもありのスレ
ここは素人が答えるスレで注意事項がある
それぐらい読めるでしよ?

134:名前は開発中のものです。
18/06/29 01:26:58.57 AOmIYWRR.net
>>127
そういうのを荒し行為、迷惑行為って言うんだよ
学習しなよ
「スレを立てる時は同じような話題のスレを乱立させないでください」という5ch利用の基本注意書きがある
それくらい読めるでしょ?

135:名前は開発中のものです。
18/06/29 01:29:50.68 AOmIYWRR.net
この3人完全に荒しだな
菩薩@太子
弟子 ◆rZPPjYuxmQ
ダーク王鍬大使 ◆SoVpkB15jY
マジ迷惑すぎる

136:名前は開発中のものです。
18/06/29 04:22:03.78 H1gqcYbG.net
ここは初心者が困惑するスレですか?

137:名前は開発中のものです。
18/06/29 04:44:21.40 B66gImoO.net
自分より初心者の奴にマウントを取りたいが為に「弟子」が立てた初心者専用スレ。
残念ながらマウントをとられてしまったので、そいつらを追い出すために再び別の質問スレを立てる。
以後、糞コテ「弟子」の隔離スレとなった。

138:名前は開発中のものです。
18/06/29 10:15:45.99 KJpjNVGQ.net
質問に答えてくれるスレなら何でもいいんだが

139:名前は開発中のものです。
18/07/03 09:46:10.78 AtrhXQ0j.net
adsでインプレッションが150くらいで$15ってついてたけどそんなけ儲けが出たという事ですか?

140:名前は開発中のものです。
18/07/03 18:42:33.52 DgOGkLki.net
Taitleオブジェクト(TXT表示だけ)が表示中は
敵オブジェクトが弾を発射しない様に改造しているのですが
Enemyにアセットしたcsの、弾を撃つ命令を
if文で、「Taitleオブジェクトが非表示なら弾を撃つ」とすればいいだけだと
思ったのですが、うまくいきません。
Enemy.csの弾の命令は
while (true)
{
// 子要素を全て取得する
for (int i = 0; i < transform.childCount; i++)
{
Transform shotPosition = transform.GetChild(i);
// ShotPositionの位置/角度で弾を撃つ
spaceship.Shot(shotPosition);
}
// shotDelay秒待つ
yield return new WaitForSeconds(spaceship.shotDelay);
}
なんですが、

141:名前は開発中のものです。
18/07/03 18:43:10.13 DgOGkLki.net
で、>>134
while (true)
{
// 子要素を全て取得する
for (int i = 0; i < transform.childCount; i++)
{
Transform shotPosition = transform.GetChild(i);
if(title.activeSelf == false){
// ShotPositionの位置/角度で弾を撃つ
spaceship.Shot(shotPosition);
}
}
// shotDelay秒待つ
yield return new WaitForSeconds(spaceship.shotDelay);
}
と書き加えました。
もちろん、
// タイトルオブジェクトを取得
private GameObject title;
// Titleゲームオブジェクトを検索し取得する
title = GameObject.Find("Title");
をクラス内に記載もしました。
そしたら、敵がゲーム中も一切弾を撃たなくなりました。
エラー文は
NullReferenceException: Object reference not set to an instance of an object
Enemy+<Start>c__Iterator0.MoveNext () (at Assets/Scripts/Enemy.cs:46)
UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress)
(at /Users/builduser/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)
です。

142:名前は開発中のものです。
18/07/03 18:43:25.91 DgOGkLki.net
なにが間違っていますか?
教えてください。

143:名前は開発中のものです。
18/07/03 19:01:59.41 L0TgVbu0.net
>>136
死ねガイジ

144:名前は開発中のものです。
18/07/03 19:58:29.00 bkI+tY6O.net
エラー出てるのどの行?

145:名前は開発中のものです。
18/07/03 20:02:44.63 m6+Emxdh.net
titleはちゃんとfindできてるのか?

146:名前は開発中のものです。
18/07/03 20:16:20.25 BqokYmSM.net
gameobject.findって非アクティブも検索するんだったっけ?

147:名前は開発中のものです。
18/07/03 21:28:51.32 Oy6MCkRt.net
しない

148:弟子
18/07/03 22:33:56.89 wgFi8W22.net
>>134
このコードって恐らく公式の
URLリンク(unity3d.com)


149:enemies のコードでしょうか? だとすると 「弾を撃つ必要がない時はyield break;を使用してコルーチンを終了させます。」 という具合に書いてるので、これを利用するとですね // canShotがfalseの場合、ここでコルーチンを終了させる if (spaceship.canShot == false) { yield break; } となってるので、Titleが非表示の時はbreakするようにすればいいのかなぁと思います



150:名前は開発中のものです。
18/07/03 22:52:21.52 L1TMFUeX.net
すみません
URLリンク(assetstore.unity.com)
のアセット使ってトグルボタンぽちぽちしたいのですが、ボタンが動きません
どう使えばいいのでしょうか?

151:名前は開発中のものです。
18/07/04 00:28:49.31 RvZnsCPI.net
>>139
" title = GameObject.Find("Title"); "
を記載しているので、できていると思っているのですが、
NULLが来てます的な警告の先がこの場所みたいなので
Findがうまくいっていないかもしれません。
しかし、
private GameObject title;
title = GameObject.Find("Title");
と、たったこれだけで他所のゲームオブジェクトをFindできるんですよね?
それ以外にしなければならないことありますか?
>>142
そうです。弟子◆rZPPjYuxmQさんのアドバイス通り、
// canShotがfalseの場合、ここでコルーチンを終了させる
if (spaceship.canShot == false){yield break;}
if (title.activeSelf == True){yield break;}
と連続で記載してみました。
が、症状は同じで、まったく弾を撃たなくなってしまいました。

152:名前は開発中のものです。
18/07/04 00:31:36.06 RvZnsCPI.net
>>138
>>139
NullReferenceException: Object reference not set to an instance of an object
Enemy+<Start>c__Iterator0.MoveNext () (at Assets/Scripts/Enemy.cs:36)
この警告先は
" if (title.activeSelf == true){ ”
この部分みたいです。

153:名前は開発中のものです。
18/07/04 00:33:02.65 RvZnsCPI.net
ちなみに、エネミーを倒したあとに、警告が出ます。
エネミーを倒すたびに警告が出る状態です。

154:名前は開発中のものです。
18/07/04 01:55:12.03 W/Y7Ww/v.net
/i/|ii!//|!/!i/´i/   .|i |/ノ        i\i!゙、:iヽ|:::|  ヽ 'i  ! ヾi |'!ヽ::::||::::::/:::::::::::::::::::::ヽ
i i 川i!ハ/" _!   | │        川 ヾ:ii ゙'∨     |    ゙ヾiヽヽ;||:::::i':::::::::::::::::::::::::
ノ ノ/リ,,,,,,二三テ=''" ヽノ        ル |ノノヽヾ ノ  、,,,ノ,、     iヽ:::||:::::i'::::::::::::::::::::::::::::
 /   ̄ ´~~゙''''    ゙''‐- ..,,         ,, ‐'    `゙ヾミッ、,,   ヽ::|::::/::::::::::::::::::::::::::::
,,イ|                i'        i"         `'‐='   `'|/i!:::::i::::::::::::::::::::::::
 i | :::::::ヽ::::ヽ::::::ヾ::    ゙、        l       〃:::::       i//::::ハ::::::::::::::::::i:::
  i i \\\\\ヽ     )       ヽ        ′′′   / /:::::/:::::::::::::::::::|::::
!  | i            ,,ィノ         <         :::: :    /:::::/:::::::::::::::::::/::::
i!  i i!            /i/    ,r''''‐y'''.;、  \             /:::::/:::::/::::::::::::/:::::
゙i!  | i          /⌒' 、 Y:::::::::''::;;;;'.;.Y'⌒゙i           /::::::/::::::/::::::::::::/::::/i
 i  i ゙!         ん、,,__ヽノ:::::::::::::::::::;;;;;{,__,,,r''          /:::::::/::::::/::::::::::::/:::://
゙、ii! ゙| i           ノ  ゝ;;;:::::::::::::::::::;ノ 。 `i          //:::::/:::::/::::::::::::/::::::/:::
ヾ!トl ゙iU          i  。l '゛..  ‐ー:::::i    |         //::::::/::::::/::::::/:::/:::::i!::::::
 iiミ! ハ             i  l ,,,,::: :::;;;;;...{ ° ゙、       //::::://::::/::::::/:::::/::::i::::ii::
 i!ヾ!i ゙、!         , '  |::: ::::ヽ   ..}     |゙ヽ......,.,.,.,,,///://::://::::/::::://::::i::::リ::
 !ヽヾi  i゙、  ___,,,/   }:: :  ;;;::: ::::::::}     レWノ'レi/、//::/:://:/:::/::/:::ハ:i |::

155:名前は開発中のものです。
18/07/04 06:27:05.10 PcbSJbIy.net
>>145
titleの中がぬるぽなんじゃ。
取得はどこだ?titleが居るってかactiveの時に取ってる?じゃないとfindで取れないぞ。

156:名前は開発中のものです。
18/07/04 07:46:44.11 TALB3D9+.net
titleオブジェクトの名前がTitleじゃない(誤記)
Titleを非表示でなくdestroyしている
title取得以前に弾を撃とうとしている又は何度も取得しようとしている
非表示以降に生成されるenemyがある
多分このどれか
>>146見るとenemyが複数回生成されるみたいだから少なくとも最後は引っかかる

157:名前は開発中のものです。
18/07/04 10:55:01.63 GdNJLKay.net
参考にしてみるといいURLリンク(goo.gl)

158:弟子
18/07/04 11:01:38.37 +Bj9nh1d.net
>>144
>>145
さてでは問題は他でも指摘されているように「Title」オブジェクトがちゃんと指定されているか?
という事で、これの一番簡単な解決は
「public Text Title」 ←これをインスペクタで指定してあげる
(Textを使う場合、Using Unity Engine.UIを指定する)
そうすれば「Start」関数で「title = GameObject.Find("Title"); 」は必要なくなります
恐らく、Findが失敗しているからNullエラーとなているのかと思われますが
Findが成功しているかどうか簡単に見るにはFindの後に「print(title.name)」でもしてみると解ります

159:弟子
18/07/04 11:06:38.82 +Bj9nh1d.net
>>143
有料アセットなので試せないのでなんとも・・・
恐らく記載のバージョンでやってみて動けば、現在の143さんのバージョン違いによる事じゃないかなとしか

160:名前は開発中のものです。
18/07/04 16:35:34.35 RvZnsCPI.net
>>148
>>149
>>151
destroyしていないですし、
Using Unity Engine.UI無しでも取得できてる箇所もあるのでよくわからず、、
初心者のためか、どうしてもわかりません。
現在のゲームの一式Zipです、Unityで開いていただければ覗けると思います
8Mしか無い小さなファイルですので確認して頂いてよろしいでしょうか?
素材は公式チュートリアルのもので、ソースは2017に合わせて変更しています
URLリンク(ux.getuploader.com)
スクリプトフォルダのEnemy.csファイルを確認してほしいです。
コメントで消してます部分がやりたいことです。
なにが間違っているのか、ご指摘頂ければ幸いです。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)


161:名前は開発中のものです。
18/07/04 17:28:56.01 30JL9X4X.net
>>153
見たけど>>149の後半そのままじゃないか、確認してくれよ……
1) プレイヤーの操作でTitleオブジェクトがactiveでなくなる
2) enemyが生成されtitleに代入しようとするもactiveでないオブジェクトはFindで引っかからず空のまま
3) titleの中身がnullの状態で静的でない変数を呼び出したのでNullReferenceExceptionで止まる

162:名前は開発中のものです。
18/07/04 17:33:31.63 s79xjkx+.net
GameObject.Findはactiveじゃないと使えないんだって
Transform.Findなら使えるかな

163:名前は開発中のものです。
18/07/04 18:00:16.94 RvZnsCPI.net
>>154
確認していただき、ありがとうございます。
>Titleオブジェクトがactiveでなくなる
認識不足でした、、そもそもactiveでなくなる、というのは
どういう状態のことですか?
自分はtitle.activeSelfの真偽はtitleの中のひとつのbool変数で
画像(テキスト)の表示非表示のスイッチみたいなものかと
思っていました。。。
title.activeSelf==falseだと、activeでなくなっている
という認識なんですね?
でも、プレイヤーが死亡したあとタイトル文字が出ますよね?
その状態はtitle.activeSelf==tureになって、
activeである状態ではないのでしょうか?
タイトル文字が出ても、敵が残っていると
そいつは前に進んでいます。
その時に、弾を吐かない様にしたかったので
コメントアウトしてるソースを記載しようと思ったんですが。。
自分の認識違いがなんなのか
正してもらえませんでしょうか

164:名前は開発中のものです。
18/07/04 18:09:32.59 RvZnsCPI.net
調べてみると
GameObjectのactiveSelfは
ゲームオブジェクトのローカルのアクティブ状態(読み取り専用)
画像の非表示はそのオブジェクト自体の動作を
停止させて非表示にしているのですね、、
しかし、やはり、プレイヤー死亡後は
そのTitleオブジェクトは動き出してるはずで、、
ああ、もしかして、タイトル画面が表示されていて
敵が流れていても、その時にはすでにstart()を通らないから
title = GameObject.Find("Title");ができない状態だから?

165:弟子
18/07/04 18:21:48.52 +Bj9nh1d.net
>>153
ソース見ました
弾を打つ処理って無限ループの中で行っているのですね
なのでループの中に撃たない処理をいれないとダメですね
それと「Manager.cs」で既に title = GameObject.Find("Title");されていて成功しているので
他で使う場合は、まず宣言で
// タイトル
public static GameObject title;
の様に「public」な「static」の変数にします
で「Enemy.cs」の無限ループ中で
while (true)
{
// 子要素を全て取得する
for (int i = 0; i < transform.childCount; i++)
{
Transform shotPosition = transform.GetChild(i);
//弾を撃たせる
//ShotPositionの位置/角度で弾を撃つ
if (Manager.title.activeSelf == false) spaceship.Shot(shotPosition);
}
// shotDelay秒待つ
yield return new WaitForSeconds(spaceship.shotDelay);
}
これで行けるかと思います
一応、インスペクタでタイトルを操作した画面です
URLリンク(imgur.com)

166:名前は開発中のものです。
18/07/05 04:52:10.53 Gem47u68.net
>>158
ありがとうございます!
あの、質問なんですが今回はManager.csはメインスクリプトかと思うんですが、
要は、メインスクリプト内で取得した各オブジェクトの情報は、
そのほかのスクリプトや各オブジェクトにアセットしたスクリプト内において
public static GameObject 変数名;と記載したあと
以後スクリプト名.変数名で呼び出すことができるようになるのですか??
そして>>158の内容からですと、自分は今回他のスクリプト内で使用する記述方法を
間違っていた(public static GameObjectなど)ということで、
>>154さんや>>155さんの指摘である「activeじゃないから」云々は
今回は当てはまらない、ということですか?

167:名前は開発中のものです。
18/07/05 06:55:42.38 w7MLipmi.net
findするタイミングを考えろ
タイトルでる
消える
敵出現
find
敵消える
敵につけたスクリプトだとfindできるタイミングがないんだよ
findするにはスタート時から消えないオブジェクトにスクリプトをつける必要がある

168:弟子
18/07/05 11:09:32.51 9fzjzEJn.net
>>159
>要は、メインスクリプト内で取得した各オブジェクトの情報は、
>そのほかのスクリプトや各オブジェクトにアセットしたスクリプト内において
>public static GameObject 変数名;と記載したあと
他のスクリプトで変数を使う場合には「public static」にするだけですね
>以後スクリプト名.変数名で呼び出すことができるようになるのですか??
呼び出すというか、使えるという感じでしょうか
A.csで定義した変数henをB.csやC.csでも上記の様に宣言すれば使えるけど、それぞれが呼び出して別の変数としてではなく、あくまでA.csのhenであり、B.csでhenに1を入れ、次にC.csでhenに3を入れた場合、次に参照する際には3となってます。
プロジェクトでユニークになってると思います。ですので、あれ、どこでこの数値いじったかな?とかいう事が起きるのでご注意ください。
>>>154さんや>>155さんの指摘である「activeじゃないから」云々は
>今回は当てはまらない、ということですか?
うーん、すいません154さんや155さんのところ読んでないのでこれについてはよくわかりません、申し訳ないです
また何かあれば気軽に質問してください、私で分かる範囲でお答えさせていただきます
お互い頑張って作品作っていきましょう!

169:名前は開発中のものです。
18/07/05 12:38:02.09 MRR7aszu.net
>>159
いや、直接的には「activeじゃないから取得できない」で合ってる
現状だとenemyが生成されるたびに各個にtitleを取得しようとするから生成のタイミングでtitleが非activeだと取得に失敗してしまう
その解決法として「ゲーム開始直後、activeなうちに一回取得・staticな変数に入れて全てのenemyで使い回せ」というのがこのコテの提案

170:名前は開発中のものです。
18/07/05 13:06:01.71 30R4+BKt.net



171:沚るときは、敵マネージャー.csを作って、敵生成は全てそこでやるといいよ。



172:名前は開発中のものです。
18/07/06 08:47:46.43 bTnJUGNr.net
PG初心者になります。
C#で、下記のように".psd"の拡張子を指定したいのですが、
大文字、小文字を区別せず指定する場合はどのようにしたらよいでしょうか。
".psd"".PSD"".pSd"でも問題ないようにしたいです。
ご教授お願いいたします。
/// ファイル拡張子【psd】
public const string ExtensionPSD = ".psd";

173:名前は開発中のものです。
18/07/06 09:06:37.75 SbZqPch/.net
>>164
Unity関係ない気がしなくもないが、自力でやるなら文字を一旦すべて小文字化してから比較すればええんやで

174:名前は開発中のものです。
18/07/06 09:21:09.69 mqKRW7N6.net
指定時じゃなくて比較時に大文字小文字区別なしでString.compare()やったら?
どうしてもって言うならStringじゃなくてregexでやるか。

175:名前は開発中のものです。
18/07/06 09:38:00.97 diIi72QZ.net
>>165
>>166
ご指導ありがとうございます。

下記で取得したものを
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
private void GetSceneTreeObjByFiles( ref List<SceneTreeObj> listParent, string downloadPath )
{
var path = FTP.CommonWord.GetDownloadPathByPlatform( downloadPath );
{
var files = GetFilesFromExtension( path, FTP.CommonWord.ExtensionPSD );
RegisterFiles( ref listParent, files, path, (Texture2D)Resources.Load( "button_com_file_shadow" ) );
files = GetFilesFromExtension( path, FTP.CommonWord.ExtensionJPG );
RegisterFiles( ref listParent, files, path, (Texture2D)Resources.Load( "button_com_file_shadow" ) );
}
}
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
こちらで条件付けしているのですが、
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
/// ファイル拡張子【psd】
public const string ExtensionPSD = ".psd";
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
この場言、"downloadPath"を小文字化するのですが、どのように書けばよいのでしょうか。
急遽直さなければならず、ご教授いただければ幸いです。

176:名前は開発中のものです。
18/07/06 09:49:28.52 JxKSLFmq.net
>>167
ふらっと C#,C♯,C#(初心者用) Part138
スレリンク(tech板)

177:名前は開発中のものです。
18/07/06 09:55:13.52 mqKRW7N6.net
>>167
試してないけど
downladpatth.ToLowre()でならないかしら

178:名前は開発中のものです。
18/07/06 09:59:22.23 mqKRW7N6.net
>>169
入力ミス
downladPath.ToLowre()
ね。

179:弟子
18/07/06 10:24:48.79 PYnnNWaZ.net
ToLower()
URLリンク(msdn.microsoft.com)(v=vs.110).aspx

180:名前は開発中のものです。
18/07/06 11:01:26.39 ziEtrYYq.net
文字列 小文字 C#
でググれば一発
知識が少なくてC#なのかUnityなのかわかんなくても結果は同じ

181:名前は開発中のものです。
18/07/06 20:37:16.86 TxoEW2Q0.net
>>弟子 ◆rZPPjYuxmQ
すみません、>>158ができませんでした。
宣言したあと、
「Manager.title.activeSelf」では
下線のエラーが出てしまいます。
URLリンク(dl1.getuploader.com)
確かに考えてみると、
public static GameObject title;の宣言から
使用時にManager.titleでは繋がらない気がしますが、
宣言場所が問題なんでしょうか?

182:>>34
18/07/06 20:50:18.52 gEW+Hr/Q.net
Manager.title の青文字、Managerはいらないよ

183:名前は開発中のものです。
18/07/06 20:52:15.36 gEW+Hr/Q.net
if(Manager.title.activeSelf == false)
じゃなくて
if(title.activeSelf == false)
ね。

184:名前は開発中のものです。
18/07/06 20:59:50.58 TxoEW2Q0.net
>>175
ありがとうございます。
そう思って、自分も「Manager.」を削ってみたんです。
そしたらちゃんと動くんですが、
敵が弾を一切撃たないままでして、、、

185:名前は開発中のものです。
18/07/06 21:00:36.73 TxoEW2Q0.net
やはり、NULLが返ってきてるんです。。
んー

186:名前は開発中のものです。
18/07/06 21:17:26.03 VvyEnY8t.net
そのスクリプトを


187:アタッチしたゲームオブジェクトは、もしかして複数ないだろうね?



188:名前は開発中のものです。
18/07/06 21:23:04.84 HglSf1KI.net
static書く場所間違えてんぞ
宣言すんのはManager.csの中だ

189:名前は開発中のものです。
18/07/06 21:31:14.20 HglSf1KI.net
Enemy.csの中にはFindがないだろ
Maneger.csの中にFindがあるからそれを使わせてもらうってことだ
ちゃんと理解しろ

190:名前は開発中のものです。
18/07/06 21:43:49.49 gEW+Hr/Q.net
このEnemy.csが付いているオブジェクトにSpaceshipコンポーネントも付いてんの?
24行目の
Spaceship = GetComponent<Spaceship>();
が気になったんだけど。
Enemy.csをつけてるオブジェクトのinspecter画像あげてみなよ。

191:名前は開発中のものです。
18/07/06 21:43:58.07 tJg4NY0i.net
なんだ!その言い方は。自分で作ったこともないクセに生意気なことを言うなよ!

192:名前は開発中のものです。
18/07/06 21:54:18.65 gEW+Hr/Q.net
>>176
あ、前にソースあがってますね。みてきます。

193:名前は開発中のものです。
18/07/06 22:31:47.47 3k4W8n5C.net
whileのところ。titleの取得はここじゃなきゃ意味ない。
URLリンク(i.imgur.com)

194:名前は開発中のものです。
18/07/06 23:02:04.45 3k4W8n5C.net
>>183 =>>184です。
whileの中の
if (spaceship.canShot)&#8232; {&#8232; spaceship.Shot(shotPosition);&#8232; }
のまえに
GameObject title = GameObject.Find("Title");&#8232; if (title)&#8232; {&#8232; spaceship.canShot = false;&#8232; }
を付け足すと一応なるよ。
でもこのプロジェクト、初心者にはむりだろ。なんでupdate()じゃなくて無理矢理while
使ってんだろ。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

2433日前に更新/329 KB
担当:undef