【3Dゲームエンジン】Unity質問スレッド32
■ このスレッドは過去ログ倉庫に格納されています
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他 次スレは>>950 以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。 ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) http://www24.atwiki.jp/unity2ch/ ●リンク ・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 ←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 前スレ 【3Dゲームエンジン】Unity質問スレッド31 https://mevius.5ch.net/test/read.cgi/gamedev/1504366121/ bolt使ってる人いる? フローグラフとステートグラフがあるのは相当整理しやすそうだけど機能や操作性はplaymakerと比べてどんな感じ? >>689 このスレにはそんな難しい質問に答えられる奴はいない。 TwitterやFacebookで現役のエンジニアに質問してみたまえ >>689 アセットをかえばいいんじゃないですか? >>689 回答されてるじゃん、まずそれやってみなよ。 そんで、やった結果をかきなって。 3Dゲームのプログラムは、3D空間上での挙動(移動と回転)がメインだから、 慣れればできると思うけど・・・ 向きを変えて、移動して、発射して、当たったら消えて・・・ くらいできれば、少しゲーム性が出てくるので、 あとは、操作系を作りこんだり、挙動のパリエーションを増やしたり、 キャラを増やしたり、当たり判定を調整したり、試行錯誤 はい皆さんこんばんは。 気分が乗ったら講義のお時間です。 本日の講義は "ループ制御" です。 ループ制御は「プログラムの任意の場所を繰り返し実行させたい」ときに使うもので "for文" と "while文" の2つを使います。 まずは for文 から説明します。 for文 は以下のように記述します。 [例] int i=0; for(i=0; i<10; i++){ Debug.Log("i=" + i ); } これは「{ }」に囲まれた箇所が10回繰り返される例です。 今回「{ }」に囲まれた部分は「Debug.Log("i=" + i );」なのでDebug.Logが10回実行されることになります。 1回実行される度に"i"は1ずつ加算されていきます。 結果「i=0」「i=1」…「i=9」と画面に表示されます。 それでは for文 自体の説明です。 「 for(@i=0; Ai<10; Bi++) 」 @"i=0;"…ここにはループのスタート値(初期値)を定義します。 例えばここを"i=8"にすると0からのスタートではなく8からのスタートになるので ループ回数は10回ではなく「i=8」と「i=9」の2回しかループしなくなります。 ちなみに今回は変数"i"を使用していますが好きな変数名でかまいません。 またint型でなくbyte型でも構いませんがfloat型などの小数型は使えません。 A"i<10;"…ループ繰り返し条件式です。 今回の例では「iの値が10より小さい(10は含まれず9以下)場合はループを繰り返す」という式になっています。 例えば「i<=10」とすると 「iの値が10以下場合はループを繰り返す」となり10も含まれます。 B"i++"…ループに使用している変数の増え方を指定します。 この例の場合はiが1ずつ加算(増える)されていきます。 「i=i+1」と同じです。 次に下の例を見てください。 [例] int i=0; for(i=10; i>0; i--){ Debug.Log("i=" + i ); } これはスタート値10から始まり、0に向かって1ずつiの値を減らしていっています。 実行結果は「i=10」「i=9」…「i=1」となります。 初心者が間違えやすいのが「i>0;」部分を終了条件と思う事です。 ここは終了条件ではなく『継続条件』です。 この部分の式が成立している間 for文 は繰り返しを実行し続けると思ってください。 上の例を言葉で表すと 「iの中身が0より大きい場合、繰り返してください」となります。 [例] int i=0; for(i=10; ; i--){ Debug.Log("i=" + i ); } これは「継続条件」を記述していない例です。 これでもエラーにはなりませんが絶対に実行しないでください。 この場所でプログラムが永遠と繰り返され続けUnityがフリーズしてしまいます。 これを『無限ループ』と呼びます。 無限ループが発生するとUnityを強制終了しないと終わらせられなくなります。 強制終了のやり方が分からない人は絶対に実行しないでください。 このように継続条件式を書く部分はとても重要です。 [例] for(int i=0; i<10; i++){ Debug.Log("i=" + i ); } これはiの宣言を for文 の中で一緒に行っている例です。 この記述が一番使います。 このiはfor文内の"{ }"の中だけ有効でループが終わると自動的に消滅します。 この点がfor文外で宣言した場合と異なるので注意が必要です。 つまり以下の例はエラーになります。 [例] for(int i=0; i<10; i++){ Debug.Log("i=" + i ); } Debug.Log("i=" + i ); //←"i"消滅後なのでここでエラーとなる。 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) [例] for(int i=0; i<10; i=i+2){ Debug.Log("i=" + i ); } これは三番目の増減値を1ではなく2にした例です。 「i=0」「i=2」「i=4」…「i=10」のように表示されます。 "i=i+2"部分は"i+=2"のように省略系も使用できます。 [例] for(int y=0; y<3; y++){ for(int x=0; x<3; x++){ Debug.Log( x + ":" + y ); } } 多重ループの例です。 ループ制御はループ中にさらにループさせることが可能です。 上の例の場合は 「0:0」「1:0」「2:0」 「0:1」「1:1」「2:1」 「0:2」「1:2」「2:2」 のように表示されます。 2DのJRPGやシミュレーションのフィールドマップや、手動であたり判定を行う時に使用したりします。 Rock54が出たから while文 は次回に持ち越し 今回は以上だクソども インポート時、プロジェクトの cs ファイル変更時におきる Compiling Script というプログレッシブバーや、右下のぐるぐるがとまらない の処理が10分たっても終わりません。 mono.exe を kill すると復帰するのですが、そのあとメッセージなしのエラーが表示されます。 対策あったら教えてください。お願いします。 >>703 対策案ですが、アセットを買ってみたらどうですか? まーた中身を理解しないままパクッて使おうとしてるキムチか プロジェクトウィンドウでC#スクリプトファイルを作成した際に、アイコンが通常のC#ではなく歯車になることがあります。 その条件と理由を教えて下さい。 >>701 ありがとうございます!! ジェネリック関数の講義が待ち遠しい。 やったー!!外部オーディオ鳴らすのに成功したーーーーっ!!!! 最初のりたまブログのこのコード見たけどダメだった・・・ IEnumerator StreamPlayAudioFile(string fileName) { //ソース指定し音楽流す //音楽ファイルロード using(WWW www = new WWW("file:///" + fileName)) { //読み込み完了まで待機 yield return www; audioSource.clip = www.GetAudioClip(true, true); audioSource.Play(); } } いろいろ試してみたけどダメで、挫折しそうになったが、 audioSource.clip = www.GetAudioClip(true, true); の前の行に、 audioSource = GetComponent<AudioSource>(); というのを付け加えて、オブジェクトに空のオーディオソースコンポーネントを追加したところ、 音楽が鳴ったぁぁぁあああああーーーーーーーーっ!!!!!!! いやあ、当方って天才かも!?(マジで) みなさぁーーーーん、オーディオはコンポーネントで追加しなくても(空のコンポーネントは必要だけど)、 外から読み込んで使えるので、参考にしてくださいね。 (これはユーザーに自分の好きなゲームBGMを使ってもらうことができるすごい方法です!) いやあ、当方って天才!!!!!!!! スレチだったらごめん。 アクションゲームを作るために「ゲーム制作のための数学」系の本を 一冊買っておきたいんだけど、何かおすすめあります? もしくはアルゴリズムの参考になるアセットがあったら教えてほしい。 >>710 アクションゲームの完成プロジェクトアセットを購入しましょう >>708 残念ながらジェネリック関数を扱う予定はなし >>710 市販品で例えるとどんなアクションゲーム? Unityは大抵のゲームアルゴリズムが既にシステム関数(メソッド)にまとめられて 1行書き込む(呼び出す)だけで使用できちゃったりするから覚える必要ない場合が多い >>711-713 ごめん、2Dです。 マリオとかメトロイドヴァニア系のアクションをを作る予定ですが、ショットをちゃんとした物理的な挙動にしたいのと、 あと飛行タイプの敵とか動く足場とかを∞←こういう軌道で動かしたりしたいんですよね。 unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか マリオランみたいに一方にしか移動しないようなのじゃなくて PC内にあるすべてのwav音を鳴らすテストです。 この機能を取り入れれば、当方のソフト「振付王」も大いなる飛翔を遂げそうです ↓ https://youtu.be/NGglm32__Wg >>716 キャラクターがすごく不気味でふ(^^ これがキムヨナでふか?(^^ staticの変数(gameobject)をインスペクターから指定できないと知り、直接インスタンス化したいのですが、 Assets/Prefabsにあるprefabを指定するにはどうすれば良いでしょうか? Instantiate(GameObject.Find(?????)); >>718 あなたにはプログラムの才能がないのでアセット購入することをオススメします unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか マリオランみたいに一方にしか移動しないようなのじゃなくて >>718 GameObject.Findはヒエラルキー上のものを探すためのものでふよ(^^ >>718 何をしたいのかよく分かりまふぇんがググって調べてきまひた(^^ public GameObject prefab;//これをフィールドに書く(^^ Instantiate(prefab, this.transform.position, Quaternion.identity);//これをvoid Start()内で実行する(^^ あとはインスペクタから使いたいプレファブをアタッチする(^^ これでスクリプトを張り付けてるオブジェクトの位置にprefabにアタッチしたPrefabを生成しまんこ(^^ >>722 めちゃくちゃ言葉足らずですいません。 他スクリプトから呼び出すためにそのスクリプトをstaticで構成しました。 ⑴staticを使っていてもインスタンペクターからプレファブを指定する方法 ⑵Resouse.Loadを使わずにAssetフォルダにアクセスする方法 (3)別スクリプトから呼び出す場合でもstaticにしなくて良い方法 この中のどれかを募集中です。 (3)別スクリプトから呼び出しならstatic使わなくてもできまふよ(^^ どっかのオブジェクトにスクリプトがくっ付いてる場合(^^ 呼び出される側 public int うんち 呼び出す側 変数名 = GameObject.Find("ヒエラルキーのオブジェクト名").GetComponent<オブジェクトにくっ付いてるスクリプト名>().スクリプトの変数名、この場合はうんち; 多分これで出来ると思いまんこ(^^ ファイアーエムブレムのようなゲームが作りたくて参考書などを見ながらAI作ってたのですが上手く行きません 数千円以内で買えるアセットでよさげなのないでしょうか 3Dで基礎から勉強したければ、 難:「実例で学ぶゲーム3D数学」 中:「ゲーム開発のための数学・物理学入門」 易:「ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで」 2Dでアルゴリズムのアイデアを得たければ、 「アクションゲームアルゴリズムマニアックス」 「アクションゲームプログラミング」 >>723 Staticは他のオブジェクト間で共有したいものに使うので、 ただ他のオブジェクトのコンポーネントを使いたいだけだったら、 Staticを付けなくても、呼び出して利用はできます どうも。 気分がノッたら講義のお時間です。 "while文" の予定でしたが変更して "for文" の続きです。 "for文" は配列を扱う時に適しています。 例えば次のような文字列型配列があったとします。 例 string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"}; この中身を全て表示したい場合、"for文" を使わない場合は次のようになります。 例 string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"}; Debug.Log( mes[0] ); Debug.Log( mes[1] ); Debug.Log( mes[2] ); 表示したい数だけDebug.Logが必要になっていきます。 今は3つだからいいですがこれが100個あった場合は100個Debug.Logが必要になってしまいます。 次に for文 を使用した場合の例です。 例 string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"}; for( int i=0; i<3; i++ ){ Debug.Log( mes[i] ); } for文 を使用すると100個あってもこの4行だけで済みプログラムをすっきりとまとめられます。 例 string[] mes = {"ようこそ", "ねらーの町へ", "ゆっくりしていってね!"}; for( int i=0; i<mes.Length; i++ ){ Debug.Log( mes[i] ); } for文の2番目を "i<3" と定数(この場合、「3」を動かない数字、定数と呼びます)にするのではなく "i<mes.Length" にすることで自動的に配列数だけループしてくれるようになり便利です。 "mes.Length" には配列の最大値が格納されています。 また、配列処理に特化した専用のfor文といえる "foreach文" というのもありますが for文で同じ事が出来る為講義ではあえて扱いません。 興味がある方は下のリンク先で確認してください。 今のあなたならリンク先の文章をなんとなく理解できる事でしょう。 配列での foreach の使用 (C# プログラミング ガイド) https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/using-foreach-with-arrays 本日は以上だクソども >>714 メトロイドヴァニアをYoutubeで拝見したがいきなりこれは難しいよ。 物理的な挙動に関してはUnityは物理エンジンが勝手にやってくれるので自分でプログラムする必要がない。 うまく伝わらない気はするが例えば 「このボールは1kg」「風の抵抗は受けない」「重力の影響は受ける」 みたいに画面を見ながら設定し 斜め上にむかって発射すれば勝手に本物のボールのように弧を描いて飛ぶ。 物理エンジンは、もともと自分でプログラムしないといけなかった事を勝手にやってくれる。 欠点として非リアル的な動きをしたい時に重力とかに逆らったりしなくちゃいけなくて 何度も何度もテストを繰り返さないといけないくなる。 ∞のような動きはsin関数、cos関数で実現できる。 俺は本を買って学習してる訳ではないのでオススメを教えられないです。 これでまた、staticおじさんが一人この世から消えたのか static変数にする static関数にする staticゲームオブジェクトにする 詰む >>723 そういう用途でstaticにするのは辞めたほうが…… シングルトンにしてDontDestroyと思う それはそれとしてインスペクターのをstatic変数に反映させたいだけなら 責任は持ちません public static GameObject hoge; public GameObject hogehoge; void awake(){ if(hogehoge != null) hoge = hogehoge; } staticをpublicでインスペクターから変更できるようにしてしまうと、 複数のオブジェクトで同時に同じstatic変数を変更してしまう恐れがあるから、 シングルトン機能がないと、どの設定値を参照するか不定になりそうで怖い・・・ 設定値は複数オブジェクト間のインスペクター上で連動するのかな? ここはプログラムの初心者ばかりなので 素直にアセットを買って作りましょう ・変更できない定数 ・グローバルDBで管理(public) ・クラスの内部だけで決められた使い方だけをする構造上の黒子(private) このうちのどれかに当てはまらないなら static はやめたほうがいい >>737 >>738 >>740 ありがとうございます。 staticで構成するのはやめようと思います 話は変わりますが、っていうか変わってないんですが Ascript: public void Hoge(){ StartCoroutine(Bscript.Bfunction()); } Bscript public IEnumerator Bfunction(){ Debug.Log("hogehoge"); yield return null; } このスクリプトで「静的でないフィールド〜〜〜」というエラーが出るのはなぜでしょうか? これがきっかけでstaticにするようになったのですが >>741 その表記を見ただけでオブジェクト指向を微塵も理解してないと分かる C#の基本を解説するサイトなんていくらでもあるから少なくともclassの存在くらい学ぼう >>741 だから、あなたはプログラマーには向かないので アセットを買って幸せになりましょう! >>741 ゲットコンポーネントの事をもうちょっと理解した方が良いと思います。 >>742 こういうとこで質問したことないんでどこまで省いていいか全然わからないです;; クラスは何もいじっていないので public class XXXX : MonoBehaviourのままです。 >>744 GetComponent?ゲットコンポーネントってどこからでてきました? スクリプト(コンポーネント)は同じとこに書いてないもんは知りませ〜ん >>745 とりあえず「他のスクリプトのメソッドを使う unity」で検索してみろ。それで理解できなかったら向いてない >>745 言語知識がある程度でもあるならまだしもそうじゃないなら基本的には何も省略しないで だから、アセットを買えばいいんですよ スクリプト出来なんでしょ? >>741 静的じゃないから〜ってエラーを見て、staticおじさんになっちゃったのか。 そのエラーの意味は「君が使おうとしているモノは最初から存在しない(静的でない)のでなんとかしてください」って意味だから「staicにしろ」って意味じゃないぞ >>747 >>748 >>750 ありがとうございます。 アタッチするオブジェクトに関連してないとアタッチしてはいけないと勝手に思い込んでいました。 >>741 で言えば カメラなりなんなりにBscriptをアタッチして StartCoroutine(カメラ.GetComponent(Bscript).Bfunction()); って感じにすればよかったんですね >>751 目標がありそれに向かってコーディングしてることは分かりますし、それは上達への近道です。しかしあなたの書いているコードはあまりにも支離滅裂なので簡単な内容からしっかり学習してください。他のスクリプトのコルーチン使うとかめんどくさすぎて頭おかしいです まあプログラムなんて技量あげるうちに過去コードを色々短縮出来るのが楽しいから… もともとは、AsstesフォルダにあるPrefabを、スクリプト上で呼び出したかっただけだよね? Sceneに配置していないPrefabを、GameObjectとして呼び出したいんだよね?? 例えば、SceneにPlayerキャラクタが既にいて、ボタン入力に応じて、 Assets内にあるShotキャラクタを呼び出して、弾丸として発射するみたいな・・・ <スクリプトAで、Assets内のプレハブBを、ゲームオブジェクトCとして取得する方法> Scece上に配置したゲームオブジェクトXに、下記のスクリプトAを登録しておきます。 public class A : MonoBehaviour { public GameObject B; // Use this for initialization void Start () { GameObject C = (GameObject)Instantiate(B); } } Inspector上でゲームオブジェクトBを登録できるので、 Assets内のプレハブBを登録しておきます。 「Assetss」を押すと一覧が出ます。 動的にBのインスタンスを生成して、ゲームオブジェクトCとして格納します。 以下、Inspector上で登録しておいたゲームオブジェクトBは、 ゲーム内ではゲームオブジェクトCとして実体化されているので、 移動させたり、回転させたり、いろいろできます。 C = (GameObject)Instantiate(B) だと、スクリプトを登録したオブジェクト上に生成されてしまいます。 生成される際の 位置を、Vector3 V = new Vector3(x, y, z) 向きを、Quaternion Q = Quaternion.Euler(angleX, angleY, angleZ) 親を、transform T = parent.transform としたい場合は、 C = (GameObject)Instantiate(B, V, Q, T) とします。 親Tの子として、向きQで、位置Vに、 Bのインスタンスが、オブジェクトCとして生成されます。 BにRigidbodyを登録しておけば、 Rigidbody D = C.GetComponent < Rigidbody2D > によって、CのコンポーネントからRigidbodyを取得して、 変数DにRigidbodyを格納しておくこともできます。 以降は、物理演算ができるようになり、 D.velocity = new Vector3(vx, vy, vz) のようにして速度を変更したりできます。 誤 Rigidbody D = C.GetComponent < Rigidbody2D > 正 Rigidbody D = C.GetComponent < Rigidbody > 普段、2Dばっかりやっているから間違えた・・・ 要するに、 @Hierarchyになくても、Assetsからでも呼び出せる (GameObject.Findは、Scene内から探すためダメです) AStaticにしなくても、Inspector上からPrefabを登録できる (Inspector上で設定したかったら「public」です) Bスクリプトを登録する相手は、何でも良い (カメラでも、空のオブジェクトでも・・・) ただ、あるキャラクタから発射するつもりなら、 そのキャラクタにスクリプトを登録しておけば、 発射位置が、そのキャラクタの現在地になります。 レベルデザインしてるんですが、フリーでおすすめのアセットパックってないですか? 人工物や自然物がそれなりに入ってるのがほしいですが >>758 フリーアセットではなく、有料アセットを購入しましょう 車の排気ガスでパーティクルを使おうと思ってます 車の後方から煙が出る形にしたいんですが、 1 車のオブジェクトにパーティクルをaddして良いのか 2 どうやってパーティクル位置を変更するのか(車の後方に) の最初の2点で躓いてます どなたか教えて頂きたいです。 車に空の子オブジェクトを追加してそこにパーティクルを追加すればいいべ そういうことじゃなくて? >>760 車の排気ガスのアセットをかうと良いですよ >>761 車とは別に新しくオブジェクト作って、 それにパーティクル追加してあとから車と同期(車と一緒に動くように)すればいいって事ですか? パーティクルを車の子オブジェクトにして位置と向きをインスペクターで変えてくらふぁい(^^ ってよく見たら>>761 に答えが書いてありまひた(^^ お節介失礼しまんこ(^^ ボッキング!(^^ >>763 車の子オブジェクトにすればわざわざ同期なんて取らなくても相対位置と向きを保ったまま車と一緒に動いてくれるでしょう このスレの人ってまさか車のモデルをそのままヒエラルキーに配置してそこにスクリプト直付けしてるの? 普通Create Emptyで作った空のオブジェクトの下に作るよね? 全体的に、自分で色々工夫してみることをしないで人に答えを求める輩が多い気はするね。 プログラミングに答えはなくて目的の結果になる方法はいくつもあるのに他人のやり方を真似したがる人が多すぎるねここ。 人それぞれ。結果が満足なら中身なぞどうてもいい。 自分なりの作り易さを模索するだけさ。 TanksにLeftDustTrailとRightDustTrailって入ってるじゃろ 他で例えると 攻略本無いとゲームを出来ない人とか うまいラーメン本に紹介されてるラーメン屋にしかいけない人とか ジグソーパズルを買って全部人に作らせてる人とか 何かしら他人の助けがないとダメで自分で工夫できない人というか そんなのに似てる気がする そんな俺はUnityはプラモとかDIYと同じだと思っている チュートリアルで例(ひな型?)が示されてるのに、やってないだけだよ やって気付かないってのはありえない このスレっていっつもマウント取るか嫌味しか言わない上級者様ばっかだよね なんで質問スレにいるの? 自分なりに試行錯誤して分からない結果聞きに来てる初心者の自分からしたら意味が分からない >>774 捻くれたやつなんかスルーしとけ。教えてくれた人にはお礼を言う。 他人の成長が怖くて、少しでも時間を削ろうとしてるのさ。 パソコン買ったらパソコンの使い方講座が無料でついてきたにも関わらず、 そんなの要らない自分で出来るって無視したのお前やろ だったら人に聞かずにやるのが筋ってもんじゃあないの? >>775 そうだね、ありがとう 最初から堅苦しいマニュアル一から読んで自分の手動かそうとしない奴らの作ってるゲームが面白いとは全く思えないんだけどなあ >>774 "同期"なんて用語を知ってるのに子オブジェクトが分からないという、なかなか不思議な学習曲線を辿ってるみたいだから理解されなくてもまぁ仕方ないかも チュートリアルどれくらいやった? 少しここ覗いてたけど、質問しようなんて気にならない Unityを使ってる知り合いを作る方が早いしためになるからそうしたわ Transform c = transform.GetChild(0).GetChild(0); Transform b = transform.GetChild(0); Transform a = transform; a.parent = b; b.parent = c; これ動かしても親子変わらないのは仕様ですか? そうだぞ 引きこもりのお前らを社会に戻すために俺はここで嫌味を書き込んでいる さっさとエンジニアの知り合いを作りたまえ 車の排気ガスについて、 移動した車に付いていくアニメーション的な排気ガスにするパターンと 排気ガス自体は、移動前の車の位置に留まり、その場でフェードアウトしていき、 移動した車が次々に新たな位置に排気ガスを生成していくパターンが有ると思う 前者は、アフターバーナーみたいな、付いていくタイプ 後者は、飛行機雲みたいな、置いてくるタイプ 子オブジェクトとして生成するか、 独立オブジェクトして生成するかは、好みによるのでは・・・ 初心と無能を間違えてはいけない 基礎を勉強し身につけた者だけが初心を名乗れる 基礎をやらず教えて君は無能だよ 取説読まない 何もやらない 全部すぐ人に頼る これは初心者じゃない 教習所に通わずいきなり車を運転しようとしてるやつ これも初心者じゃない 初心 これの意味をもっとよく考えてから質問しよう プラモ買って説明書読まない組んでて 途中で出来ないから作り方教えてくれという自称初心者がいたらどう思う? 説明書をまず読めと思わないか? 質問の質があまりにも低すぎるのが問題 >>782 エンジニアよりキムヨナと知り合いたいな・・ >>781 root同士じゃないと出来ない組み合わせなかったっけ? cとbを c.transform.parent = null; b.transform.parent = null; で親子解除すれば出来る ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる