【ゲームエンジン】Unityなんでも質問スレpart1
■ このスレッドは過去ログ倉庫に格納されています
去年AWS の障害でいくつかのスマホゲームが止まってたけどやはりAWS で独自に実装してんかね 995 名前:名前は開発中のものです。 2020/01/11(土) 12:46:12.11 ID:wPvGtAaQ 敵に攻撃するとダメージが数字でポップアップされるという処理を var pos = 対象の敵オブジェクト.GetComponent<Transform>()して、 ダメージのテキストをプレハブ化した物をInstantiate(プレハブ, pos)で生成したのですが ダメージのプレハブが敵オブジェクトの子になっているので、敵オブジェクトのHPが0になってDestroyされた瞬間に一緒に消えてしまいます 生成するプレハブの位置を任意のゲームオブジェクトのtransformに重ねるが、子にはしないみたいな事はどうすれば出来るのでしょうか? transformから位置(座標?)だけを取得する方法がわかれば応用が色々出来そうなのですが 997 名前:名前は開発中のものです。 2020/01/11(土) 13:08:04.10 ID:ftB0znZP >>995 ダメージテキストのオブジェクトに、新しいスクリプトをつける。 そのスクリプトのstartに、親を放棄させるメソッドを入れる。 ググリワード transform.parent 998 名前:名前は開発中のものです。 2020/01/11(土) 13:13:14.92 ID:GoAReVTm >>995 Instantiateする際に GameObject obj =Instantiate(プレハブ, pos) これでGameObject取得できるので、その後すぐに親を外す obj.transform.paerent =null これで敵の子として生成した後に独立する 987名前は開発中のものです。2020/01/11(土) 03:28:33.54ID:MfNXfEnO>>990 コルーチンについて質問させてください。 void Start() {StartCoroutine(A()); } void Update(){ Debug.Log("update"); } IEnumerator A(){ Debug.Log("A start"); for (int i = 0; i < 10; i++) { Debug.Log("A:"+i); yield return null; } } とやって動かすと、ログが A Start A:0 start end update update A:1 になるんですが、最初のUpdateのあとにコルーチンが実行されないのはどうしてですか? 990名前は開発中のものです。2020/01/11(土) 11:45:27.42ID:GoAReVTm >>987 >最初のUpdateのあとにコルーチンが実行されないのは 最初のUpdateはスタート直後に動くんだけど、Updateの間隔は不定なので、最初のスタートのオーバーヘッドがUpdateを遅延させてしまい2回ログが出力されたのかと思う これを修正するには Update を FixedUpdate にし yield return null を yield return new WaitForFixedUpdate() にする事で解決は出来る UpdateとFixedUpdate の動作の違いによる処理の仕様なのかな、一言で言うと 初心者質問スレでlinqコードでえらい勘違いしてる奴がいてわろた ああいうのチームにいたら苦労しそう 言っちゃ悪いけど、はたから見てたら同類にしか とりあえず頭冷やせ >>155 見苦しいのは認めるけどあそこまで間違った知識をドヤ顔で偉そうに振りかざしてるのはちょっとアレだわ とりあえずループ一つ展開君はWhereの間にSelectManyとか挟んだらどうなるのか自論よろ >>159 よく知らんけど間違ったソース出してドヤ顔してりゃいいってことか?お前も大概だな >>158 雑談スレの方に回答書いたから見て来い あれで理解出来なければ俺にはどうしようもないからお前の勝ちで良いよ はいはいはーい、公式ソースがまっっったく理解できませ〜ん! オレの勝ちぃ!(ぶい) もうこれでこの話は終わり、な? 【ゲームエンジン】Unity初心者質問スレBuild3 https://mevius.5ch.net/test/read.cgi/gamedev/1578720539/ スレ建て初めてなので何か間違ってたらごめんなさい、前スレの続きの話ってもう書き込んで良いのでしょうか? >>167 あり。 が多分おまい人の言ってることを理解してない。 ・誰もforeachがネストして展開されるなんて言ってない。もともとの話はLINQ、数珠つなぎにするから下手にコード書くよりもMove extとかで多少なりパフォーマンス劣化あるよねって話 ・そこで言ってるCombinePredicateはまさに自分が言ってたC#上での最適化に他ならない ・元々はLinqで数珠つなぎにしたら効率悪くない?って話で別にWhere特化の話しない。だからセレクトメニー挟んだらどうなる?って話をしてる ・最後のforeachで使うイテレーターはリストのではなくWhereのイテレータ。 まあそんな所か。自分もこれで理解できないならもうお前の理解はどうでもいいわ。けど間違った知識をドヤ顔でひけらかすのはやめてくれ え、なにこれまさかLINQの数珠繋ぎのパフォーマンスの話なの? 今時Unity4でも使ってるの? パフォーマンス劣化てもしかしてMath関数を手書きでインラインしちゃうタイプ? ちょっと失笑どころか爆笑なんですけど >>169 いやほんと馬鹿的外れだから黙ってれば? >>169 横からだが、大丈夫か? Unity使ってる時点でモバイルがターゲットなんだから、少しでも軽くしたいのは当然だろ そうじゃなくても、軽くなればそのぶん他の処理に割くことできるわけだし Mathが〜とかアホなこと言ってるが、例えば三角関数みたいによく使うもんは今でも速度が欲しいときはテーブルで持たせたりするからな ああいや、気持ちはわかるよ プロパティとか関数だからコスト重いよね だから 実質メソッド呼び出しであるプロパティは使わない! 三角関数テーブルを保持! これがオレのかんがえたさいこーのぱふぉーまんす! などと供述しても許してやんよ(笑 今でもテーブルのが速いと思ってるアホっているのか 何も知らない時が止まってるジジイ いやいやUnityにおける三角関数ルックアップテーブルの有効性はなんかその界隈では有名な誰かが実証してたから! CPUキャッシュとか一切考慮されてない駄コードによる結論だったけどそれでもMathf <<< LUTは証明されてる! うわそんな無意味配列をCPUに送ってキャッシュミス誘発させるとか頭バグってるの…とか言っちゃダメ! >>151 >>142 でスプレッドシートが挙げられていたのですが否定的なご様子 他に良いものがあるというのであればぜひ教えてください >>173 シェーダーではまだ現役の手法なんだわ ジジイですまんな >>176 >151はデータベースはMS sql やmySQL とかだと思い込んでるあふぉだからただ単にバカにしたいだけのくずだよ ググるスプレッドは書き込み後にマクロ起動とかでデータ並べかえたり抽出したり、他のシートとリレーションしたり基本的なデータベースとして優秀 と言うことを知らない人大杉 >>181 自動で何かできるのはいいけど効率どうなのそれどの程度まで動かせるの http://tsubakit1.hateblo.jp/entry/2015/11/13/021937 のページのこのif文のコードなんですが、 いまいち意味がよくわかないので解説お願いします。 特に「isLoaded = !isLoaded」などは、検索してもほとんど出てきませんが、 一般的な構文なのでしょうか? private bool isLoaded = false; public void OnClick() { isLoaded = !isLoaded; if (isLoaded) { Application.LoadLevelAdditive ("Scene2"); } else { Application.UnloadLevel ("Scene2"); Resources.UnloadUnusedAssets(); } } >>183 !は論理否定演算子 それを代入してるだけ >>183 !は論理否定演算子 この記号が先頭に付いたら「〜ではない」のbool値が返る bool flag = !trueなら「trueではない」としてfalseが入り bool flag = !falseなら「falseではない」としてtrueが入る 要はフラグを反転させたいときに使う そのコードではクリックの度にisLoadedのtrue/falseを差し替えて、実行するif文を切り替えてる >>183 そのページの例は古いので止めた方がいいかと思う シーンマネージャー使いましょう ずっとエディタのバージョンアップしてなかったのですが、最近、2019.2.17にあげて 戸惑ってます。やり方の分かる人がいたら教えてください。 RigをもったモデルをPrefabにして配置していたとして、いくつかのRigのRotationを 変更したとします。以前のエディタだと複数のリグを選択して、Transformタブの Revertを選択すると、選択したリグのみPrefabの状態に戻せていたのですが、これが できなくなりました。Revertが表示されないのです。 一つずつ選択するとRevert可能ですが、対象が多いと手間です。 Editor拡張も試してみましたが、PrefabUtility.RevertPrefabInstanceを使うと 選択したリグだけでなく全体がRevertされてしまいます。 どなたか良い対応をご存じないでしょうか? 別のスクリプトのコルーチンを作動させたいのですが、うまくいきません…… Googleで調べたりしたのですが、いまいちはっきりしなかったので質問させていただきます。 playerのゲームオブジェクトから攻撃をして、Monsterのゲームオブジェクトにダメージの処理をさせたいとして、Playerのスクリプトに Monster.GetComponent<MonsterAI>().StartCoroutine(Damege()); としたのですが、うまく動きませんでした。 MonsterAIのDamege()はpublicで宣言してあります。 別ゲームオブジェクトのコルーチンを動かすためになにかひつような宣言などございますでしょうか。 モンスターは複数?ならきちんとターゲット処理してる? >>188 うまく動かないって具体的にどう動かないか書いてくれないとわからんよ コルーチンの使い方が間違ってないなら、考えられる可能性はコルーチンを実行してるゲームオブジェクトが非アクティブになってたりするくらいかな CS0103: The name `Damege' does not exist in the current context と出てしまうようです。 public IEnumerator `Damege' () { すみません、書いている途中で送信してしまいました。 public IEnumerator `Damege' () { //実装処理 } とMonsterAI側では定義してあります。 コルーチンを他スクリプトから呼び出す、ということが初めてなので、もしかしたら処理で足りていない部分などがありましたらご指摘いただけますと幸いです まず、それがその、スクリプトから動くか? 次に単純なスクリプトで他から動くか 次に子ルーチンが動くか やって >>189 センドメッセージで実装できないか調べてみようと思います、ありがとうございます。 >>190 ターゲットは1体なのできちんと取れているかと思います。 ゲーム中にエラーが出るのではなく、コンソールにエラーが出てしまい、ゲームプレイ出来ない状況となります。 public IEnumerator Damege () { //実装処理 } 大変失礼しました……コピペしたときに間違って入ってしまったようです……orz >>188 MonsterAI monster = Monster.GetComponent<MonsterAI>(); StartCoroutine(monster.Damege()); 1つのオブジェクトのみにアタッチさせたいスクリプトがあった場合 2つ以上のオブジェクトにスクリプトがアタッチされそうになるとエラーを吐くようにしたいのですが そういったことは可能ですか? >>198 これだ……! これですね、ありがとうございます! StartCoroutineの使い方が間違っていました。 ありがとうございます! >>199 staticでbool宣言して、Start()でtrueなら自己削除、falseならtrueにする、というのはどうでしょう UnityEvent を設定できるコンポーネント、 プレハブの親階層のオブジェクトとか引っぱってくるのどうやるんだろ? UnityEngine.UI.Button とかだと出来るんだけど自前で [SerializeField] UnityEvent OnHogeFuga; ってのを持つコンポーネントを含む奴を プレハブ化して、インスペクタ上に親階層の奴をドラッグしても×マークが出て 設定させてくれない。 UnityEngine.UI.Button のC#ソースでもどこかで公開されていないものかしら。 自分の親ならtransfrom.parent でよくね? >>204 UnityEvent のプロパティドロワーに transform.parent の選択なんてあったっけ? あと常に親とは限らない。 部品の一部が持つAnimationControler のSMBとか、 複雑な uGUI の一部の部品がプレハブのルートを参照するとか、そういうの。 親階層とりたい 必ずしも親じゃない 後から色々条件出すならなんも出来ん そんな、でたらめな条件なら、findしかないわな。逆にこれ1発で解決。あとは目的のオブジェクトが判るようにid持っとけばok ゴーゴー! UniRx色々こんな時こう使う的なパターン一覧ほしい oculus integrationでQuest用のアプリを開発しています。 OVRPlayerCOntrollerで移動をしています。 移動してシーンが変わるとシーンビューで設定している方向を向いててもらいたのですが、前のシーンの方向を見たままシーンが開かれます。 前のシーンで見ていた方向が引き継がれているようです。 OVRCameraRigのOVRManagerでResetTrackerOnLoadのチェックを付けたりしましたが、変わりありません。 どなたか前のシーンの見ていた方向を引き継がない方法をご存知でしょうか。 よろしくお願いします。 connected gamesって情報が何も無いですけど今どうなっているのか知っている人いませんか? script inspector 3使ってる人いるかな? シェーダーのintとかfloatのテキストカラーがちゃんと表示できてないんだがこんなもん? 勉強するだけでも法人所属だとproライセンスいるん?これじゃあ使える仲間増やそうにも会社が許可しねーよ、ユーザー増やすつとりないんかな >>216 Unityで一定額売り上げなければいらんよ >> 217 いやだから法人だって... >> 219 いや、勉強するだけでproライセンス分(198,000)とるなら、じゃあUnityやめようってなるって話、つまり参入しないだけ それはunityにとって損だろと、 そんな法人いらねって話かもしれんが Androidで画面上部にAdmobのバナー分のスペース空けるには どうしたらいいのでしょうか 固定値ではデバイスによって変わるのでダメだそうですね 自動で計算してくれる方法があるみたいですが dpとかよくわかりません よろしくお願いします。 >>226 admobのマッチ率ってこれに影響するのかな? スマホ向けのサイズの広告をタブレットに出すとマッチ率下がってる感じがする https://assetstore.unity.com/packages/essentials/cinemachine-79898 ここからUnityのプロジェクトに「cinemachine」を入れたのですが、バージョンが2.1.10でどうしても使えない機能があり、調べてみました。 https://unity.com/ja/unity/features/editor/art-and-design/cinemachine ここの公式にあるようにUnityの機能として入れると最新版に更新する更新することができ、使用したい機能など使えるのですが、公式のとおりに入れると「cinemachine」が2つになってしまいました。 Assetstore版から公式版にうまく乗り換える方法などどなたかご存知ありませんでしょうか。 >>227 自分が試したのだと タブレットだと隙間がやけに大きくなってしまいます マッチ率も下がるならほんと何とかしたいです 色んなアプリ見るとちゃんとバナー分ピッタリ空いてるのが多いから 方法はあるんだろうけど Googleの説明は専門的過ぎてよくわからない >>229 やっぱりタブレットのせいですか。 マッチ率って下がると単価に影響しますかね? >>230 タブレットに限らず解像度の関係みたいです 誰か詳しい人お願い 広告出せないよ >>231 となるとフルHDでは問題でてないから、1920x1200前提で一番合いそうなサイズ探してみよ アダプティブバナーとかスマートバナーを使えと言うことだろうか >>231 アセットを買ってみてはどうでしょうか? まる一日考えても分からなかったのでご存知の方、ご教示下さい。 VRゲームをビルドするにあたってMMD4が悪さをしています(pmxをUnityで使えるようにするアレです) MMD4があるとVRゲームをビルドしてもVRにならず、MMD4を削除すればVRとしてビルドされます。 何か回避方法をご存知の方居ましたら教えて頂けないでしょうか? Standard assetの車の入力調べてたけど crossplatdforminputmanagerって何もの?inputみたいにキー入力取ってきたりしてるし バーチャルパッドでも使えてるみたいだしなにこれ? マルチに入力検知できるようなやつ? >>237 諦めてblender勉強中ですw ワニでも分かる〜ってYou Tube動画 分かりやすくて良いですね。 China Origin Immuno Destroyer 19 しまった China Origin Violent Immuno Destroyer 19 オブジェクトにColliderなどを設定してボタン機能をつけたときの Layer設定について質問です 購入したアセットを使うときに、 オブジェクトのLayerをそのアセット用のLayerにする必要があるのですが、 オブジェクトにボタン機能をつけて オブジェクトのLayerがUIDefaultのままだと、 再生してそのオブジェクトをタッチすると反応するのに オブジェクトのLayerを変えると反応しなくなります どうすればいいのか教えてください iOSデバイス限定の症状で質問です。 Landscape Right(ホームボタン右)の横画面で遊んでる最中 admobのリワード広告を視聴した後に 画面が必ずLandscape Left(ホームボタン左) になってしまいます。 つまりホームボタン右状態でプレイしていると画面が逆転してしまう。 確かにPreferrd landscape Orientation で Landscape Leftを基本にする設定にはしているんですが、 広告を見終わった後に現状の傾きを無視して 初期値になってしまうようなんです。 これを防ぐにはどうしたらいいんでしょうか? というか、こんな症状の方っているんでしょうか? simulationライブラリで純粋な関数式プログラミングをする ttp://x0000.net/topic.aspx?id=3631-0 UIライブラリ (C#, 2D) を作ったよ ttp://x0000.net/topic.aspx?id=3688-0 すみません 最新の2Danimationパッケージについて聞きたいことがあるのでよろしくお願いします https://imgur.com/V4kC3JQ.png このようにSpriteEditorでスキニングしているときに、applyを押すとすべての変更がリセットされてしまいます https://imgur.com/YenTk5q.png インポートしたpsbファイルのインスペクタは下の通りで、 https://imgur.com/jq7TkTn.png エラーメッセージは非表示含め確認できませんでした 海外のコミュニティも回ってみたのですが似たような事例が確認できず、ほとほと困り果てています アニマ2Dからアップデートしてからというもののトラブル続きで、全く作業が進みません どうかどなたかお助けくださいませ 長文すみませんでした >お助けくださいませ すみません、あまりにぶん投げた質問になってしまいました 現状のapplyにより作業が保存されず、さらにリセットされる状況を打破したく質問に参りました また、2Dアニメーションのインポート設定の段階で色々と手間取ったりもしていて、この機能について学べる教材などでおすすめがあればどうかご教授ください 公式のものには目を通したのですがあまり英語が達者ではなく、また色々とすっぽ抜かした「紹介」的な段階に留まっているような印象を受けて、十分な経験値を得られませんでした 甘々な質問で申し訳ありませんがよろしければお力添えお願いします ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる