【ゲームエンジン】Unity初心者質問スレBuild1
at GAMEDEV
1:名前は開発中のものです。
18/06/06 10:45:19.46 3pAIyBsg.net
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他
■注意事項
「アセットを買えば」「チュートリアルやれ」等禁止、初心者の質問疑問に初心者が答えるスレ、ググれじゃなく何のキーワードでググったらいいかを書く
次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
URLリンク(www24.atwiki.jp)
●リンク
・Unity(日本公式サイト)
URLリンク(unity3d.com)
・マニュアル
URLリンク(docs.unity3d.com)
・チュートリアル
URLリンク(unity3d.com)
・スクリプトリファレンス
URLリンク(docs.unity3d.com)
・FAQ
URLリンク(unity3d.com)
・MSDN
URLリンク(msdn.microsoft.com)←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
関連スレ
【3Dゲームエンジン】Unity質問スレッド35
スレリンク(gamedev板)
2:名前は開発中のものです。
18/06/09 15:03:16.64 8LJUcnoe.net
ダレモイナイネー
3:弟子
18/06/09 15:51:55.28 ILPbXT4G.net
いいことだ!
4:名前は開発中のものです。
18/06/09 21:45:43.71 Eav1Jo7E.net
ボーンの設定を確認する画面に行く為のコンフィグってボタン押すと固まるんですが、解決方法ありますか?
5:弟子
18/06/09 22:11:08.41 ILPbXT4G.net
Unityのバージョンによって挙動変わるから色々試すといいかと
6:名前は開発中のものです。
18/06/09 22:19:57.35 Eav1Jo7E.net
>>5
ありがとうございます。
ずっと待っていたんですが、読み込みが遅いだけで一応画面は出てきました…が、5分ほど待ちましたしその後の画面もすごく重くまともに操作できません。
いろいろなバージョン試してみます。
7:弟子
18/06/10 10:21:37.98 2dOgpg9v.net
【情報共有】Unityのバージョンによるマップエディタ(TilePalette)について
2017.3.1f1:表示される
2017.4.1f1:表示される
2017.4.2f2:表示されない
2018.1.0f2:表示されない
2018.2.0b3:表示される(メニュー位置が Window > 2D > Tile Paletteに変更されています)
以上より、現状 Tile Palette を最近のバージョンの Unity でお使いいただくには、2017.3.x,、2017.4.1、また、ベータ版となりますが、2018.2.xのいずれかをご利用していただく必要がございます。
上記スプライトが表示されないバージョンで開いたプロジェクトを例えば2017.4.2で作成し2DGameKitを展開してスプライトが表示されないことを確認したあと、同じプロジェクトを2017.4.1や2018.2.0b3で開くと再度スプライトが表示されるようになりました
あるプロジェクトで Tile Palette のスプライトが表示されなくなっても、それで Tile Palette のアセットが壊れてしまうということではないようです。
8:名前は開発中のものです。
18/06/22 22:26:44.07 b4giu7F9.net
すみません、rigidbody.addforceについてなんですが、混乱してます。
Rigidbody rd = GetComponent<Rigidbody>();
Void Start(){
//一瞬(Time.deltaTime分?)だけ力が加わるのですか?
rd.AddForce(transform.forward);
//試したら1秒間力を加えた後の状態になったと感じたのですがあってますか?
rd.AddForce(transform.forward,ForceMode.Impulse);
}
Void FixedUpdate(){
//スクリプトリファレンスでは下記のように書いてあったのですが、これは次のアップデートのタイミングまで力を加え続けてくれるんでしょうか。
rd.AddForce(transform.forward);
}
9:弟子
18/06/22 23:42:25.91 KiG7QuVQ.net
>>8
スタート関数のは最初の一回だけ行います
あっぷでーと関数は、毎回力が加わります
10:名前は開発中のものです。
18/06/23 01:29:38.73 0L8o5RMo.net
unityで崩壊学園のような2Dアクションゲームを作りたいんですが、参考になるサイトや書籍はありませんか?
左右の移動だけじゃなくて、上下にも移動ができるようなタイプのゲームです。
11:名前は開発中のものです。
18/06/23 05:28:54.90 GjE91D+n.net
質問させてください。
この2Dシューティングのチュートリアルなんですが
URLリンク(unity3d.com)
>図11.14:
>これを交互に60フレームまで「オフ、オン、オフ、オン...」というように
>キーを打ち込んでください。
ここを実行したのですが、プレイヤーが無敵中に点滅してくれません。
無敵中ずっと消えたまま、です。
自分が見よう見まねで設定したのはこれですが、
URLリンク(dl1.getuploader.com)
「オフ、オン、オフ、オン...」というのはどこのことでしょうか?
12:名前は開発中のものです。
18/06/23 08:57:56.16 P+CKIpjT.net
>>9
ありがとうございます。
てことは、例えば重力なんかの場合、加速度9.8m/s^2だったら、update()に書く場合、addforce(9.8 * Time.deltatime)でいいんでしょうか。
13:名前は開発中のものです。
18/06/23 09:09:33.05 NjQULgZx.net
>>11
まずは、オンオフ回数を目一杯減らして、動作確認してください。
見当違いかもしれませんが、処理が間に合わないと点滅しないかも。1:00の間に2回ぐらい、まで激減らす。
それでも表示されなければ、設定に問題あり。
点滅するなら、pcの能力不足。
14:名前は開発中のものです。
18/06/23 10:55:00.16 7kjsBpxb.net
>>11
俺はオフの次のキーでオンになってないんじな以下と思った。
spritererendereの2番目のひし形クリックした時、spritererendere横の0は1になってる?
15:弟子
18/06/23 11:04:08.74 biCjVGhQ.net
>>10
「unity スマホ 2d」でgglと出てくる上3つくらいのWeb見るといいのかなと思いましたが、ここで質問している事は既に見ている上での質問だったでしょうか?
>>12
重力の場合、Rigidbodyだと重力が適用されているので、例えば何かオブジェクトを作成してRidgidbodyをアタッチして、プレイすると自然落下しますよね、もし12のコードにすると、毎回9.8を掛ける事になるので、とてつもない速さで落下してしまいます。
まぁやってみると解ると思うけど。
16:弟子
18/06/23 12:18:20.84 3i5tK2/L.net
>>11
さくっと斜め読みなのであってるかどうかわかりませんが
URLリンク(imgur.com)
こんな感じでEnableのチェックをオン、オフするのかなぁと
自分はいつもアルファで点滅してたので、いい勉強になりました
17:名前は開発中のものです。
18/06/23 14:32:06.82 z+j0CTeY.net
>>15
うそ教えちゃいけないよ。
>>12
FixedUpdate(){
AddForce(Vector3.up * -9.8f);
}
で、rigidbody.mass=1ならvelocityが1秒後に9.8になる。Time.deltaTimeをかける必要はない。どんどん加速はするけど、それは実際の重力と同じ加速。
重力をやりたいなら、
FixedUpdateに
AddForce(Vector3.up * -9.8f.ForceMode.Acceleration);
て書いとけば、massに左右されず、rigidbodyのUseGravityと同じ結果になる。
引力はmassが馬鹿でかいし重力定数はくそ小さい。rigidbody.massは使わずに、
M1自分、相手m2として、fixedUpdate内で
F = G*m1*m2 / r^2
を相手m2 = 1として求めて、
AddForce(自分方向の単位ベクトル * F,ForceMode.Acceleration);
てしてやるといい。m2=1と言うのは、引力の公式から、自分が相手に与える加速度のみを取り出したと思えばいい。
18:ForceMode.Accelerationと相性がいい。 Rigitbody.massを1のままにしとけば AddForce(自分方向の単位ベクトル * F); でも結果は一緒。もちろんFはm2=1で求める。
19:名前は開発中のものです。
18/06/23 14:42:03.38 z+j0CTeY.net
>>17
あ、rigidbodyの重力は切っておくんだよ。
20:名前は開発中のものです。
18/06/23 14:44:47.74 GjE91D+n.net
>>13
レスありがとうございます
数を減らしても透明のままですので
PCの能力不足ではないようです。
オンオフの設定を理解できてないのでそこが問題かと推測しています。
>>14
レスありがとうございます。
>spritererendere横の0は1になってる?
いえ、どこのひし形に合わせても0のままです。
もしかして、ここの値がオンオフの切り替えですか?
1が描画、0が非描画、みたいな判定でしょうか?
>>16
レスありがとうございます。
spritererendere横のチェックの有無がオンオフ切り替えですか?
しかし、自分のはチェックできる場所が消えてしまっています。
とりあえず、
>>14さんのご指摘のspritererendere横の数字の変更、
>>16さんのご指摘のspritererendere横のチェックの有無、
をそれぞれ触って確認してみます。
21:名前は開発中のものです。
18/06/23 15:04:05.80 GjE91D+n.net
>>14さんのご指摘のspritererendere横の数字が0だったのを1にしてみました。
すると、プレイヤーが点滅状態にできました!
しかし求めている非描画、描画とを交互にするイメージとは違い、
非描画1秒ごとに一度描画される感じです。
タイミングを表現すると、ンーーパッ、ンーーパッ、て感じで点滅しています。
(自分がやりたい点滅タイミングは、ンパンパです)
多分、ひし形をカットして1秒サイクルを0.10ほどに短く作れば、いけそうですが
チュートリアルに倣って、完成させたいので
この1秒の中でンパンパになる様に設定したいのですが、、どうすればいいんでしょうか
ちなみに、今回spritererendere横の0を1にしたら
なぜ1秒後に描画される様になったのか、理由がわかりません。
この数字はなにを表しているのでしょうか?
URLリンク(dl1.getuploader.com)
22:名前は開発中のものです。
18/06/23 15:06:30.89 GjE91D+n.net
>>16
>URLリンク(imgur.com)
>こんな感じでEnableのチェックをオン、オフするのかなぁと
すみません、自分のには>>16さんのスクショにある様なEnableのチェックがありません。
URLリンク(dl1.getuploader.com)
最初はあった気がするのですが、触ってるうちに無くなった気がします。
非表示になってしまっているのか、なんなのか、どうやったらチェックが現れるか
ご存知でしょうか?
23:名前は開発中のものです。
18/06/23 15:31:00.37 5vbUo0fi.net
>>11
適当なこというけど
図11.14と
URLリンク(dl1.getuploader.com) を見比べると
日の丸ボタン押さなきゃいけない感じじゃない?
24:名前は開発中のものです。
18/06/23 16:04:19.37 0L8o5RMo.net
>>15
レス有難うございます。
webの検索だけではなくunity関連の書籍も数冊購入済みです。
ですが、Unityの2Dアクションのそのほとんどが、ロックマンのような真横から見た視点のものばかりなんです。
25:名前は開発中のものです。
18/06/23 16:37:51.78 GjE91D+n.net
>>16
プレイヤーオブジェクトを選択してからアニメーション窓を開いたら
チェック項目を表示したspritererendereを確認できる様になりました。
さっきは作ったInvincibleアニメーションを選択してから
アニメーション窓を開いた状態でした。
URLリンク(dl1.getuploader.com)
ただ、あなたのURLリンク(imgur.com)の画像にある様に、
途中でチェックを入れたりはずしたりの設定方法がわかりません。
ひとつずつ、キーフレームを選択して、チェックを触るのかなと思ったのですが
チェックを入れるとずっとチェックが入ったままになってしまいます。
チェックをキーフレームごとに設定できません、、、
どうやって、フレームごとのキーのチェックをはずしたりつけたりしたのでしょうか?
26:弟子
18/06/23 16:41:13.70 3i5tK2/L.net
>>17
フォローありがとうございます
なんせ素人が回答するスレなもので、申し訳ないです
>>21
チュートの画像と比べると、
sprite Renderer.Enabled の前に「オブジェクト名:」が無いですね
チュートはあるので、そこらへんの問題でしょうか?
再度、追加からしてみてはどうでしょうか <
27:弟子
18/06/23 16:46:11.85 3i5tK2/L.net
>>24
解決できたようで何よりです
録画ボタン(赤まる)を押して、各キーフレームのところで、チェック、録画オフ、
次のフレーム、録画押す、チェック外す、録画オフ、次のキーフレーム行く
の繰り返し
まぁ一個つくって、コピペでいけるので
コピペしたあとは、録画ボタンは関係なく、キーフレームに位置を設定して値を直接いじれば変更できます
これは何度かやり直して習得しないとなかなか理解しにくいかと思います。
自分もアニメ関係は4,5個シーンを作ってどうにか理解できましたので
(まだ完全には理解していないけど)
なので、その部分だけいじる、動かす、を繰り返すと解るようになるかなと
習うより慣れろ系です
28:名前は開発中のものです。
18/06/23 17:08:44.25 GjE91D+n.net
>>25
できました!
URLリンク(dl1.getuploader.com)
が、表示しない場合と表示する場合の
やり方自体を理解していないので
気分が晴れません、、
新しく作ったキーフレームが「表示する状態のキーフレーム」だったので
とりあえずそれをコピーして、
透明ばかりのキーフレームの偶数回目のキーフレームを削除して
そこにペーストしていった感じです。
現状先に進めても、
透明のキーフレーム、非透明のキーフレームを
意識して自分が作ることは不可能ですね。
んーーーー。。。。
29:名前は開発中のものです。
18/06/23 17:10:24.13 GjE91D+n.net
>>26
>録画ボタン(赤まる)を押して、各キーフレームのところで、チェック、録画オフ、
>次のフレーム、録画押す、チェック外す、録画オフ、次のキーフレーム行く
の繰り返し
なんとなく、わかってきました。
慣れていきます、回答してくださり本当に
ありがとうございます!
30:弟子
18/06/23 18:37:43.29 3i5tK2/L.net
>>23
崩壊学園の動画見て見ました
いわゆる奥行きのある横スクなのかな?
まぁUnityでやるなら普通に2Dプロジェクトに3Dの床配置して、カメラを斜め視点にすれば
実装できると思いますけど、あとは奥に行ったときにキャラのスケール調整するくらいでしょうかねぇ
31:名前は開発中のものです。
18/06/23 19:36:04.61 NjQULgZx.net
キーフレーム、複数選択してチェック、できなかったかな?
ctrlかoptionキーおしながら選択すればできたような。
32:名前は開発中のものです。
18/06/23 21:46:37.14 4AT8m98h.net
>>30
アセットを購入すればできるようになると思いますよ
33:弟子
18/06/23 22:13:37.51 3i5tK2/L.net
>>31
こっちのスレでは禁止ワードなので、ちゃんと>>1読んでからレスしてください
34:名前は開発中のものです。
18/06/23 22:15:16.11 4AT8m98h.net
>>32
アセットを買えば禁止もできるようになると思いますよ
35:弟子
18/06/23 23:12:44.80 3i5tK2/L.net
>>33
スレローカルルールに違反なので嵐通報させてもらいますね
36:名前は開発中のものです。
18/06/24 00:59:23.55 W8n17fCJ.net
>>29
そうです!奥行きのある横スクです!
カメラを斜め視点にするというのも一度試してみましたが
変に奥行きがついてしまって微妙な感じでした。
うーん。物理エンジンを使わないで直接プログラムを組むしかないのかな。
37:名前は開発中のものです。
18/06/24 01:27:17.64 k+l2FErP.net
Unityは最近始めたばかりなのですがオブジェクトをオブジェクトにぶつけると
痙攣したようにガクガクとしてしまいます。
ちゃんとしっかり止まるようには出来ないでしょうか
interpolateやCollisionDetectionを変えてみましたが無駄で
Fixed.timestepというのを小さくした所しっかり止まるようにはなったのですが
どこのサイトでもゲームが重くなると注意書きがあって誰かにプレイしてもらう時に
止まったりしないか心配です
38:名前は開発中のものです。
18/06/24 05:52:59.17 yUQoP5Fq.net
>>35
いわゆる2.5D。2Dじゃなく3D。カメラのprojectionはperspective。2Dスプライトに3Dのrigidbodyとコライダ
39:ーつけるのが手っ取り早い。奥行きはカメラの位置や向きや視野角を調整。どんな本を見てるのか分からないけど、スクロールは本に載ってるやつでできるかも知れない。
40:名前は開発中のものです。
18/06/24 06:08:35.07 yUQoP5Fq.net
>>36
どういうぶつけ方をしているのかわからないけど、physicMaterialのbouncinessを0にして各々のコライダーにつけとけば、いいかも。
41:名前は開発中のものです。
18/06/24 08:56:29.31 k+l2FErP.net
>>38
ぶつけかたというのはスクリプトでいいでしょうか
public float speed = 3f;
float moveX = 0f;
float moveY = 0f;
Rigidbody2D rb;
void Start(){
rb = GetComponent<Rigidbody2D> ();
}
void FixedUpdate () {
moveX = Input.GetAxis ("Horizontal") * speed;
moveY = Input.GetAxis ("Vertical") * speed;
rb.velocity = new Vector2(moveX, moveY);
}
42:弟子
18/06/24 10:02:56.29 jJ6M8/KE.net
>>35
URLリンク(imgur.com)
ちょっと雑だけどこんな感じかな
スケールいじらなくても奥に行けば小さくなるので簡単にいけそうですね
上下で奥、手前、左右の動きをプログラムで組めばいいかと。
カメラを斜めにしているのと同じ角度にオブジェクトもしています
これは3Dオブジェクトを配置してますが2Dプロジェクトなのでコライダ関係は2Dを使うといいかと思います
43:弟子
18/06/24 10:19:02.77 jJ6M8/KE.net
>>36
>>39
ぶつかった時の処理がないような気がするのだけど、ぶっかった時にスピードをゼロにするとかは?
>>40
オブジェクトはスプライトでも当然問題ないです
44:名前は開発中のものです。
18/06/24 10:38:50.20 yUQoP5Fq.net
キー入力みたいに継続した入力で動かすなら、velocity使わずにaddforceが無難だと思う。
45:名前は開発中のものです。
18/06/24 10:59:19.98 k+l2FErP.net
>>41
ぶつかったときの処理は何も無いですね…
試してみたら上手く止まりました!
また困ったら質問します
46:名前は開発中のものです。
18/06/24 10:59:32.31 yUQoP5Fq.net
>>39
これだとぶつかってなおキー押していると、あらぬ方向にぶっ飛んでいくよね。進めない方向にF=mv/tの力加えるんだから、ガグガクして止まらないどころじゃない。
そして、公式のスクリプトリファリンスにあるように、
ほとんどの場合、非現実的な挙動になるため速度を直接修正するべきではありません。
オブジェクトの速度を物理ステップごとに設定しないでください。これは非現実的な物理シミュレーションに繋がります。
速度を変更する上での典型例は、ファーストパーソン・シューティングでのジャンプ時にあります。即座に速度を変更したいためです。
だから。
どんなサンプルを見たか知らないけど、運が悪かったですね。
47:名前は開発中のものです。
18/06/24 19:35:53.81 5VtlLUIj.net
アセットを買えばサンプルを見なくてもできますよ
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
エラー出てるのどの行?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
2433日前に更新/329 KB
担当:undef