[過去ログ] 【3Dゲームエンジン】Unity質問スレッド32 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
717: ダーク王鍬大使 ◆SoVpkB15jY  2017/12/09(土)18:04 ID:bXsi3c78(1/4) AAS
 >>716 
 キャラクターがすごく不気味でふ(^^ 
 これがキムヨナでふか?(^^ 
718(3): 2017/12/09(土)20:05 ID:AnRI3nPF(1/2) AAS
 staticの変数(gameobject)をインスペクターから指定できないと知り、直接インスタンス化したいのですが、 
 Assets/Prefabsにあるprefabを指定するにはどうすれば良いでしょうか? 
  
 Instantiate(GameObject.Find(?????)); 
719: 2017/12/09(土)20:14 ID:X9y8lbqo(2/3) AAS
 >>718 
 あなたにはプログラムの才能がないのでアセット購入することをオススメします 
720(1): 2017/12/09(土)20:16 ID:x1Unwj8Y(2/2) AAS
 unityの2Dでマリオ3みたいなやつでお手本になるゲームないでしょうか 
 マリオランみたいに一方にしか移動しないようなのじゃなくて 
721: ダーク王鍬大使 ◆SoVpkB15jY  2017/12/09(土)20:21 ID:bXsi3c78(2/4) AAS
 >>718 
 GameObject.Findはヒエラルキー上のものを探すためのものでふよ(^^ 
722(1): ダーク王鍬大使 ◆SoVpkB15jY  2017/12/09(土)20:36 ID:bXsi3c78(3/4) AAS
 >>718 
 何をしたいのかよく分かりまふぇんがググって調べてきまひた(^^ 
  
 public GameObject prefab;//これをフィールドに書く(^^ 
  
 Instantiate(prefab, this.transform.position, Quaternion.identity);//これをvoid Start()内で実行する(^^ 
  
 あとはインスペクタから使いたいプレファブをアタッチする(^^ 
 これでスクリプトを張り付けてるオブジェクトの位置にprefabにアタッチしたPrefabを生成しまんこ(^^ 
723(3): 2017/12/09(土)20:55 ID:AnRI3nPF(2/2) AAS
 >>722 
 めちゃくちゃ言葉足らずですいません。 
 他スクリプトから呼び出すためにそのスクリプトをstaticで構成しました。 
  
 ⑴staticを使っていてもインスタンペクターからプレファブを指定する方法 
  
 ⑵Resouse.Loadを使わずにAssetフォルダにアクセスする方法 
  
 (3)別スクリプトから呼び出す場合でもstaticにしなくて良い方法 
  
 この中のどれかを募集中です。 
724: 2017/12/09(土)21:06 ID:X9y8lbqo(3/3) AAS
 >>723 
 アセット購入を募集していませんか? 
725: ダーク王鍬大使 ◆SoVpkB15jY  2017/12/09(土)21:08 ID:bXsi3c78(4/4) AAS
 (3)別スクリプトから呼び出しならstatic使わなくてもできまふよ(^^ 
  
 どっかのオブジェクトにスクリプトがくっ付いてる場合(^^ 
 呼び出される側 
 public int うんち 
 呼び出す側 
 変数名 = GameObject.Find("ヒエラルキーのオブジェクト名").GetComponent<オブジェクトにくっ付いてるスクリプト名>().スクリプトの変数名、この場合はうんち; 
  
 多分これで出来ると思いまんこ(^^ 
726: 2017/12/09(土)21:52 ID:+Fgkmrfl(1) AAS
 ファイアーエムブレムのようなゲームが作りたくて参考書などを見ながらAI作ってたのですが上手く行きません 
 数千円以内で買えるアセットでよさげなのないでしょうか 
727: 2017/12/09(土)21:53 ID:G7HaLFZX(2/3) AAS
 3Dで基礎から勉強したければ、 
  
 難:「実例で学ぶゲーム3D数学」 
 中:「ゲーム開発のための数学・物理学入門」 
 易:「ゲームアプリの数学 Unityで学ぶ基礎からシェーダーまで」 
  
 2Dでアルゴリズムのアイデアを得たければ、 
  
 「アクションゲームアルゴリズムマニアックス」 
 「アクションゲームプログラミング」 
728: 2017/12/09(土)21:59 ID:G7HaLFZX(3/3) AAS
 >>723 
  
 Staticは他のオブジェクト間で共有したいものに使うので、 
  
 ただ他のオブジェクトのコンポーネントを使いたいだけだったら、 
 Staticを付けなくても、呼び出して利用はできます 
729: 2017/12/09(土)22:47 ID:Ia5bSAGk(2/6) AAS
 どうも。 
 気分がノッたら講義のお時間です。 
 "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が必要になってしまいます。 
730: 2017/12/09(土)22:48 ID:Ia5bSAGk(3/6) AAS
 次に 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" には配列の最大値が格納されています。 
731(1): 2017/12/09(土)22:53 ID:Ia5bSAGk(4/6) AAS
 また、配列処理に特化した専用のfor文といえる "foreach文" というのもありますが 
 for文で同じ事が出来る為講義ではあえて扱いません。 
 興味がある方は下のリンク先で確認してください。 
 今のあなたならリンク先の文章をなんとなく理解できる事でしょう。 
  
 配列での foreach の使用 (C# プログラミング ガイド) 
 外部リンク:docs.microsoft.com 
本日は以上だクソども 
732: 2017/12/09(土)23:01 ID:Ia5bSAGk(5/6) AAS
 >>720 
 全13回の講座。 
 焦らずこれをじっくりやるといい。 
 外部リンク:hiyotama.hatenablog.com 
733: 2017/12/09(土)23:07 ID:Ia5bSAGk(6/6) AAS
 >>714 
 メトロイドヴァニアをYoutubeで拝見したがいきなりこれは難しいよ。 
 物理的な挙動に関してはUnityは物理エンジンが勝手にやってくれるので自分でプログラムする必要がない。 
  
 うまく伝わらない気はするが例えば 
 「このボールは1kg」「風の抵抗は受けない」「重力の影響は受ける」 
 みたいに画面を見ながら設定し 
 斜め上にむかって発射すれば勝手に本物のボールのように弧を描いて飛ぶ。 
  
 物理エンジンは、もともと自分でプログラムしないといけなかった事を勝手にやってくれる。 
 欠点として非リアル的な動きをしたい時に重力とかに逆らったりしなくちゃいけなくて 
 何度も何度もテストを繰り返さないといけないくなる。 
  
 ∞のような動きはsin関数、cos関数で実現できる。 
  
 俺は本を買って学習してる訳ではないのでオススメを教えられないです。 
734: 2017/12/09(土)23:17 ID:0z0JcPwI(1) AAS
 >>731 
 ありがとうございます!!! 
735: 2017/12/09(土)23:28 ID:MExT9ytU(1) AAS
 これでまた、staticおじさんが一人この世から消えたのか 
736: 2017/12/10(日)09:21 ID:rk89KMyG(1) AAS
 static変数にする 
 static関数にする 
 staticゲームオブジェクトにする 
 詰む 
737(1): 2017/12/10(日)11:44 ID:ZDcJFyIw(1) AAS
 >>723 
 そういう用途でstaticにするのは辞めたほうが…… 
 シングルトンにしてDontDestroyと思う 
  
 それはそれとしてインスペクターのをstatic変数に反映させたいだけなら 
 責任は持ちません 
 public static GameObject hoge; 
 public GameObject hogehoge; 
 void awake(){ 
   if(hogehoge != null) hoge = hogehoge; 
 } 
738(1): 2017/12/10(日)11:48 ID:jcS8iLKb(1) AAS
 staticをpublicでインスペクターから変更できるようにしてしまうと、 
  
 複数のオブジェクトで同時に同じstatic変数を変更してしまう恐れがあるから、 
  
 シングルトン機能がないと、どの設定値を参照するか不定になりそうで怖い・・・ 
 設定値は複数オブジェクト間のインスペクター上で連動するのかな? 
739: 2017/12/10(日)13:12 ID:s0gCGNcz(1/3) AAS
 ここはプログラムの初心者ばかりなので 
 素直にアセットを買って作りましょう 
740(1): 2017/12/10(日)13:34 ID:w46kXA82(1) AAS
 ・変更できない定数 
 ・グローバルDBで管理(public) 
 ・クラスの内部だけで決められた使い方だけをする構造上の黒子(private) 
  
 このうちのどれかに当てはまらないなら static はやめたほうがいい 
741(5): 2017/12/10(日)17:15 ID:51pDRWFr(1/2) AAS
 >>737 
 >>738 
 >>740 
  
 ありがとうございます。 
 staticで構成するのはやめようと思います 
  
 話は変わりますが、っていうか変わってないんですが 
 Ascript: 
 public void Hoge(){ 
 StartCoroutine(Bscript.Bfunction()); 
 } 
  
 Bscript 
 public IEnumerator Bfunction(){ 
 Debug.Log("hogehoge"); 
 yield return null; 
 } 
  
 このスクリプトで「静的でないフィールド〜〜〜」というエラーが出るのはなぜでしょうか? 
  
 これがきっかけでstaticにするようになったのですが 
742(1): 2017/12/10(日)17:20 ID:SGu7Clqn(1) AAS
 >>741 
 その表記を見ただけでオブジェクト指向を微塵も理解してないと分かる 
 C#の基本を解説するサイトなんていくらでもあるから少なくともclassの存在くらい学ぼう 
743: 2017/12/10(日)17:50 ID:s0gCGNcz(2/3) AAS
 >>741 
 だから、あなたはプログラマーには向かないので 
 アセットを買って幸せになりましょう! 
744(1): 2017/12/10(日)18:02 ID:s1u45m25(1/4) AAS
 >>741 
 ゲットコンポーネントの事をもうちょっと理解した方が良いと思います。 
745(2): 2017/12/10(日)20:14 ID:RELYBK2b(1) AAS
 >>742 
 こういうとこで質問したことないんでどこまで省いていいか全然わからないです;; 
 クラスは何もいじっていないので 
 public class XXXX : MonoBehaviourのままです。 
  
 >>744 
 GetComponent?ゲットコンポーネントってどこからでてきました? 
746: 2017/12/10(日)20:23 ID:hR3NFn4T(1/2) AAS
 スクリプト(コンポーネント)は同じとこに書いてないもんは知りませ〜ん 
上下前次1-新書関写板覧索設栞歴
あと 256 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.012s