[過去ログ]
【ゲームエンジン】Unity初心者質問スレBuild4 (1002レス)
【ゲームエンジン】Unity初心者質問スレBuild4 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
254: 名前は開発中のものです。 [sage] 2020/04/24(金) 03:52:09.99 ID:Yn/wujOk 自己解決 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/254
255: 名前は開発中のものです。 [sage] 2020/04/24(金) 07:49:35.90 ID:mqgYLk8R >>251 裏で作ってるファイルがあるから、それだけでは何とも。エラーをみながらコツコツと直すしかない。 私だけかもしれんが。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/255
256: 名前は開発中のものです。 [sage] 2020/04/24(金) 13:11:03.27 ID:TSbisyMR 1日の作業が終わったらプロジェクトフォルダごとバックアップ NASなんかに保存するのが最高だけど 下手すると年単位の苦労が消し飛ぶから考えた方が良いよ http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/256
257: 名前は開発中のものです。 [sage] 2020/04/24(金) 13:39:06.03 ID:e94QvqHL 自分も一日の終わりにプロジェクトフォルダごとバックアップしてる Zip圧縮したファイル名の末尾に日付を入れて一定期間保存 大きな変更を加える直前のフォルダは長期保管してる http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/257
258: 名前は開発中のものです。 [sage] 2020/04/24(金) 15:11:35.58 ID:9IIgbh3E プレハブについての質問です 1つのプレハブに↓のようなスクリプトをセットして複製し動かそうとすると 複製したオブジェクトが1つしか動いてくれません ------- public class prefabMoveScript : MonoBehaviour { public static GameObject prefabObject; public static int iNow, jNow; public static void move() { //位置を乱数で変更 int iNum += Random.Range(-1, 1); int jNum += Random.Range(-1, 1); prefabObject.transform.localPosition = new Vector3(iNow , jNow , 0.0f); } // Use this for initialization void Start () { prefabObject = this.gameObject; } } ------ 複製したプレハブそれぞれを別々の乱数で動作させたいのですがどのようにしたら良いでしょうか http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/258
259: 名前は開発中のものです。 [sage] 2020/04/24(金) 15:29:16.14 ID:hbCzfYWk staticじゃなくする http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/259
260: 名前は開発中のものです。 [sage] 2020/04/24(金) 15:54:14.93 ID:9IIgbh3E すいません一部コードが間違っていました ------- public class prefabMoveScript : MonoBehaviour { public static GameObject prefabObject; public static int iNow, jNow; public static void move() { //位置を乱数で変更 int iNum += Random.Range(-1, 1); int jNum += Random.Range(-1, 1); prefabObject.transform.localPosition = new Vector3(iNow + iNum , jNow + jNum , 0.0f); } // Use this for initialization void Start () { prefabObject = this.gameObject; } } ------ staticをつけている変数については、別スクリプトで呼び出して値を代入しているため staticを外すとエラーが出てしまいます。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/260
261: 名前は開発中のものです。 [sage] 2020/04/24(金) 16:51:57.34 ID:hbCzfYWk staticをつけると、その変数は そのクラスで共通のものになる。 だからこれだと複製したオブジェクト全員が、ある一つのオブジェクトを操作している状態。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/261
262: 名前は開発中のものです。 [sage] 2020/04/24(金) 17:53:17.83 ID:mqgYLk8R staticを理解していない? staticをつけると、簡単に言えばそのワールドで唯一の変数名になる。だから複数から参照操作はできるが、唯一を2つ存在させたら、どっちを参照するかわからんよね? http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/262
263: 名前は開発中のものです。 [sage] 2020/04/24(金) 17:57:06.91 ID:9IIgbh3E >>261 >>262 staticについて理解できていませんでした。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/263
264: 弟子 [] 2020/04/24(金) 19:36:00.79 ID:X9i2PnLo >>263 >260のコードで動かすにはこのようにします 多分Staticの使い方というより、prefabの生成に問題あると思います https://i.gyazo.com/9eea2661448b7a1af4e8291b55adfe25.png https://imgur.com/dBRzNly 質問は検証できる弟子を指名してね! http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/264
265: 名前は開発中のものです。 [sage] 2020/04/24(金) 21:22:53.35 ID:WKjj9eyG >>255 >>256 >>257 皆さんありがとうございます、これを教訓にそうすることにします…… http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/265
266: 名前は開発中のものです。 [sage] 2020/04/24(金) 21:26:22.99 ID:9IIgbh3E >>264 わざわざソースまでありがとうございます! http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/266
267: 名前は開発中のものです。 [sage] 2020/04/25(土) 13:09:23.62 ID:c8LTCDvQ https://youtu.be/clB_Q-4N2mM アニメーションクリップに効果音を付けて4種類のSEの中からランダムで音が出るようにしているのですが、 二回続けて同じ音が出ないようにする方法はないでしょうか。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class ken_furu : MonoBehaviour { public AudioClip[] _SE; //SEが4個入っています。 private AudioSource audioSourse; Animator animator; void Start() { animator = GetComponent<Animator>(); audioSourse = GetComponent<AudioSource>(); } public void SE() { int a = Random.Range(0, 4); audioSourse.PlayOneShot(_SE[a]); } } このスクリプトを音を鳴らすアニメクリップが付いたオブジェクトにアタッチしています。 二回続けて同じ音が出ないようにする方法があったら教えてください。 https://thuploader.orz.hm/miniup/?mode=dl&id=7354 プロジェクトファイル http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/267
268: 名前は開発中のものです。 [sage] 2020/04/25(土) 13:34:15.67 ID:Bwa2wt20 aの値を保持して、次の乱数時に比較する http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/268
269: 名前は開発中のものです。 [sage] 2020/04/25(土) 13:40:39.58 ID:2pXFtKle >>267 色んな方法があると思いますが、 再生する度に再生したSEを除外し、除外されていたSEが存在すれば戻すという処理を入れるのはどうですか? ランダムのレンジにはLengthやCountが使えますので実装自体は数行済むと思います。 配列をリストにした方が簡単だと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/269
270: 267 [sage] 2020/04/25(土) 14:39:00.19 ID:c8LTCDvQ >>268の方法は難しそうだったので >>269の方法で試してみました。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class ken_furu : MonoBehaviour { //public AudioClip[] _SE;//配列 public List<AudioClip> _SE;//リスト型に変更 private AudioSource audioSourse; Animator animator; void Start() { animator = GetComponent<Animator>(); audioSourse = GetComponent<AudioSource>(); } public void SE() { int a = Random.Range(0, _SE.Count);//_SE.Count リストの中の要素の個数 audioSourse.PlayOneShot(_SE[a]); _SE.RemoveAt(a); //一度鳴ったSEを削除 } } SEの配列を、リスト型に変更して、一度なったSEを削除するところまでは出来たのですが 消したリストを次のSEを鳴らすときに元に戻すやり方が分かりませんでした。 どうすれば消したリストを元に戻すことができるでしょうか。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/270
271: 名前は開発中のものです。 [sage] 2020/04/25(土) 15:01:53.19 ID:Bwa2wt20 >>270 嘘だろぉ、おい!w http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/271
272: くまじょ [sage] 2020/04/25(土) 15:23:53.23 ID:z5N+YfUG 俺なら前回の覚えておいて 乱数が同じものだったら+1 わずかに乱数に偏りが起こるけど http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/272
273: くまじょ [sage] 2020/04/25(土) 15:30:30.75 ID:z5N+YfUG 乱数が選んだものをリストから抜いてリストの最後に追加しておくとか 乱数の範囲は要素数-1で最後の要素(前回選んだもの)を避ける 初回は必ずリストの最後が選ばれないことになるけど http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/273
274: 名前は開発中のものです。 [sage] 2020/04/25(土) 15:38:16.06 ID:DiGw5Kl0 横から失礼します 特定のAudioClipが再生中かどうかを検出するとかってできますか? 例) if(Audioclip(ジャンプ音)が再生中){ 処理 } みたいなことがやりたいのですが http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/274
275: 名前は開発中のものです。 [sage] 2020/04/25(土) 15:47:10.29 ID:a3TA/N7F 乱数記憶用の変数を用意 初期値は999などの有り得ない数 または一番目に鳴らしたくない音と同じ数 ランダムで出した乱数を変数と比較 もし同じ数字なら+1または-1して処理 (このスクリプトだと3の場合のみ-1) また乱数(または処理後の数値)を変数に入れる 自分ならこれにするけど何せ初心者なので もっとスマートなやり方があるならそっちで http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/275
276: 名前は開発中のものです。 [sage] 2020/04/25(土) 16:04:41.65 ID:2pXFtKle >>273の再生したSEをリストの最後に追加してランダムのレンジに含めないがスマートで実用的かもしれませんね。 +1などで処理すると結局順番に再生されるだけでランダムにならないから質問者の意図する挙動とは違ってしまうんじゃないでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/276
277: くまじょ [sage] 2020/04/25(土) 16:59:40.05 ID:z5N+YfUG >>276 乱数が前回と同じ値だったら 1足して剰余でオーバーラン回避だよ 剰余のこと説明不足だった http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/277
278: 267 [sage] 2020/04/25(土) 17:19:22.65 ID:c8LTCDvQ 皆さんから助言を頂いて有難うございました。 >>273の方のやり方で、ずっと試していました。先ほどエラーが全部消えてやっと動くようになりました。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class ken_furu : MonoBehaviour { public List<AudioClip> _SE;//リスト型 4つのSE AudioClip DeleteClip; //選ばれて消えたSEを変数に入れる private AudioSource audioSourse; Animator animator; void Start() { animator = GetComponent<Animator>(); audioSourse = GetComponent<AudioSource>(); } public void SE() { int a = Random.Range(0, _SE.Count-1);//リストの最後の要素はランダムレンジから外す audioSourse.PlayOneShot(_SE[a]);//選ばれたSEを鳴らす AudioClip DeleteClip= _SE[a];//選ばれたSEをDeleteClipの変数に入れる _SE.RemoveAt(a); //選ばれて鳴ったSEを削除 _SE.Add(DeleteClip); //選ばれて消えたSEをリストの最後に追加 } } もしかしたら変な部分があるかもしれませんが、ちゃんと動いているようです。 本当に有難うございました。助かりました。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/278
279: 名前は開発中のものです。 [] 2020/04/25(土) 17:57:08.46 ID:P2OYyiKX Unityで2Dゲームを作ろうとしていますが、小さい表示枠と大きい表示枠について教えて下さい。 画像をSceneに配置すると小さい枠の中に置いたものが実行時に表示され、座標はたとえば-2〜+2です。 ヒエラルキーからUIのButtonを配置すると大きい枠の中に置かれ、座標は0-1000などの設定した画面サイズの値になります。 2つの座標系があるようなのですが、Sceneで見ると重なっていないのに実行すると上記の2つ枠は重なって表示されるようです。 なんでこんなことになってるんでしょうか? 両者を混在して使ってると実行環境によってずれが生じそうですが大丈夫なんでしょうか? また「Unityの教科書 Unity 2019完全対応版」を読みましたが、次に読むと良さそうな本があったら教えて下さい。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/279
280: くまじょ [sage] 2020/04/25(土) 18:16:48.37 ID:z5N+YfUG >>279 それな 俺はunity初心者 座標面倒 キャンバスにイメージとスプライト混在したり一貫性ないなあ http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/280
281: くまじょ [sage] 2020/04/25(土) 18:23:08.63 ID:z5N+YfUG >>279 シーンで見ると大きさが違うのと位置がずれてるのが邪魔で仕方ない シーンで同じ位置同じ大きさ(見た目のことで座標の数値は違う)にするか いっそのことシーンでは離れているが実行時に同じにしてみたり 重なってると邪魔なので キャンバスのインスペクタを弄れば見た目の大きさは揃うよ 座標は-2とかのままがイイみたい あれはメートルって意味らしい http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/281
282: くまじょ [sage] 2020/04/25(土) 18:23:58.70 ID:z5N+YfUG 詳しいことは俺も知りたい http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/282
283: 名前は開発中のものです。 [sage] 2020/04/25(土) 18:32:34.76 ID:Bwa2wt20 >>279 1冊読んで1本作れたなら、漠然とした指南は必要ないかなぁ。 あとは、ネットやるならオンライン系とか、作りたいものに合わせて選ぶだけだよ。 まだ1本も完成させてないなら、本より作り上げることかな。 http://mevius.5ch.net/test/read.cgi/gamedev/1585478112/283
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 719 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.011s