- 1 名前:名前は開発中のものです。 [2015/11/18(水) 00:53:16.90 ID:6AegDlBR.net]
- 3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#といった汎用言語を使用できるのが特徴です。 フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他 次スレは>>970を踏んだ方が建てること。ダメなら>>980か>>990が建てて下さい。 ■本スレ 【3Dゲームエンジン】Unity総合スレッド27 [転載禁止](c)2ch.net peace.2ch.net/test/read.cgi/gamedev/1441891966/ ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/jp ・ユーザーガイド docs.unity3d.com/ja/current/Manual/UnityManualRestructured.html ・チュートリアル unity3d.com/jp/learn/tutorials ・スクリプトリファレンス docs.unity3d.com/ja/current/ScriptReference/index.html ・FAQ unity3d.com/jp/unity/faq ・MSDN msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 前スレ 【3Dゲームエンジン】Unity質問スレッド20 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/gamedev/1444194744/
- 722 名前:691 mailto:age [2015/12/22(火) 11:00:12.63 ID:ctbQFKPU.net]
- >>698
Resources内のデータはコンパイル対象にならないから csソースは使えないってことでOK?
- 723 名前:665 mailto:sage [2015/12/22(火) 16:03:42.05 ID:s/N9NPNk.net]
- 返答が遅くなりまして、申し訳有りません。
直ぐに試せる事は実行してみたのですがダメでした... 幾つかは試せないでいます >>666 英語ですよね... 海外サイトでのショッピング程度の英語力しかないので試していません...orz >>667 システムフォントを変更するアプリ有るのですが、失敗するとマトモに起動しなくなるというので、これも試していません >>668 アセットととして、編集画面の文字を買えるという事ですが効果無しでした... >>669 v5.2は大丈夫です。 同じiMacでブートキャンプ上(win10)のUnity(つまりwin版)はv5.3.0問題なく動くので、ハードではなくOSの問題なんでしょうね... じゃあ、win版使えよと言われそうですが、iPhone実機確認が必要なのでMacの方が良いのです >>690 当方も5.3.1試しました。ダメでした... 5.2ですと、自分的に目玉機能のWebGLに書き出せないですよね... 暫くバージョンアップ待つしか、OSを10.11.2にするしかなさそうですね
- 724 名前:名前は開発中のものです。 mailto:sage [2015/12/22(火) 16:16:51.81 ID:cYA+N/u4.net]
- >>703
Resourcesフォルダに入れたものは生のデータとして扱われるからコンパイルが必要なものは入れても意味が無いのだよ。 Resources,Plugins,Standard Asset,Streaming Assetsの4つのフォルダは扱いがそれぞれ特殊なんでちゃんとドキュメント読んで理解しないとめんどくさい事になるよ
- 725 名前:名前は開発中のものです。 mailto:sage [2015/12/22(火) 17:25:20.37 ID:ZXsrrg+T.net]
- 5.3からAndroidのナビゲーションバー強制非表示になったけど、なんとかして出す方法ってある?
AndroidManifestのthemeとかいじってみたんだけど変わらなくてお手上げなんだ……。
- 726 名前:名前は開発中のものです。 mailto:691 [2015/12/22(火) 18:37:36.49 ID:ctbQFKPU.net]
- >>698 >>705
サンクス 助かる
- 727 名前:名前は開発中のものです。 mailto:age [2015/12/22(火) 18:41:28.75 ID:ctbQFKPU.net]
- 動的にプレハブのオブジェクトを生成して
そのオブジェクトにCanvasのサイズなど 上の階層のデータを取得する方法を教えて下さい 宜しくお願いします
- 728 名前:名前は開発中のものです。 mailto:sage [2015/12/22(火) 23:37:31.20 ID:J2VSDia0.net]
- >>708
ようわからんが ヒエラルキー上の親はtransform.parentですよ。 なんでCanvasの直接の子なら RectTransform rect = transform.parent.GetComponent<RectTransform>(); Debug.Log(" width :" + rect.rect.width); それ以外なら RectTransform rect; void Start () { rect = GameObject.Find("Canvas").GetComponent<RectTransform>(); Debug.Log(" width :" + rect.rect.width); } とかにしておけばいいんじゃないか。
- 729 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 00:17:07.19 ID:mn9r6TJY.net]
- >>689
ご回答ありがとうございます! コリジョンの回転は自分の誤解でした 現在はOnCollisionStay2Dでプレイヤーを動かしてとりあえず形としては解決しました 座標の移動という方法も調べてみたいと思います
- 730 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 02:45:27.25 ID:qUs7Km3p.net]
- PC用にビルドしたアプリケーションが起動出来ないのですが原因をどなたか知らないでしょうか…?
他の人にゲームを配布してプレイしてもらったところ無事に起動からゲームまでスムーズに出来ているようなのですが、自分のPCだと起動の辞典でできません。 exeファイルをダブルクリックしても読み込み状態を延々と続けたままになってしまいます
- 731 名前:名前は開発中のものです。 [2015/12/23(水) 02:53:39.96 ID:BgHDeNsk.net]
- そんな古い壊れたパソコンは買換えような
- 732 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 03:52:47.89 ID:6SUXlka0.net]
- >>706
docs.unity3d.com/ScriptReference/Screen-fullScreen.html これをfalseにすればいい Android4.2までしか持ってなくて指摘されるまで知らなかったよ…
- 733 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 04:22:31.95 ID:qUs7Km3p.net]
- >>712
ゲーミングPCなのでスペック的もそこまで悪くないはずですが…
- 734 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 16:04:13.12 ID:qUs7Km3p.net]
- 自己解決しました
原因はアイコンに使っていた画像だったようです その画像を削除してみたところ無事に起動することができました それでも自分のPCでは起動できないのに他人のPCでは起動できるのは未だにわかっていません…
- 735 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 18:00:46.62 ID:mpmfVyIv.net]
- ゲーミングPCをうたってるやつなんて、
スペックに無知な奴を騙すためにところどころ変なパーツつけてるぞ 20万円のPCに350Wの電源が付いてたなんて珍しくない あんまり信用するなよ
- 736 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 18:09:27.31 ID:H0W75H/X.net]
- そのアイコン復活させるとまた同じ症状出る?
- 737 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 18:48:49.94 ID:qUs7Km3p.net]
- >>717
同じ症状でます
- 738 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 19:30:41.11 ID:eV/cz9Fn.net]
- 非同期処理について質問です。
WWWクラスでサーバのAPIを叩いて、進行に必要なデータを取ってこようとしています(シナリオテキストとか) ───────────── private string url = "hoge.com"; public void Request<T>(Action<string> finalStep) { WWW www = new WWW(url, form); //formはWWWFrom。略 StartCoroutine(WaitResult<T>(www, finalStep)); } private IEnumerator WaitResult<T>(WWW www, Action<string> finalStep) { while (!www.isDone) { if (!String.IsNullOrEmpty(www.error)) { yield break; //エラー処理を追加 } else if (StartTime.AddSeconds(timeoutSec) < DateTime.Now) { yield break; //タイムアウト処理を追加 } yield return null; } finalStep(www.text); yield return null; } ───────────── 呼ぶ方は終わった時の処理をデリゲートで渡す感じにしようと思っていますが、 こういう感じの実装って違和感無いでしょうか。 ぐぐってもいまいち出てこなかったんですが、他に王道のやり方ってありますか?
- 739 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 20:19:50.71 ID:ex60S9BN.net]
- >>719
WWW使うなら概ねそれで問題ないと思う 通信前にApplication.internetReachabilityをチェック WWWはIDisposableを実装してるからusingステートメントを使う WWW.errorのチェックはループ抜けた後でいいかも
- 740 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 20:42:37.42 ID:eV/cz9Fn.net]
- >>720
ありがとうございます! usingすごく参考になりました errorについてはググってみたんですが、 どうもエラー終了した時にisDoneがtrueになってくれないようです
- 741 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 22:49:24.68 ID:rlZZyGW6.net]
- >>721
試してみた、問題の部分は以下の通り while(!www.isDone){ if(!string.IsNullOrEmpty(www.error)) Debug.LogError(www.error);//エラートラップA yield return null; } if(!string.IsNullOrEmpty(www.error)){ Debug.LogError(www.error);//エラートラップB }else{ Debug.Log(www.text); } パターン1:存在しないURLに接続(404) パターン2:回線抜いた状態で接続 パターン1,2共にAではなくBで引っかかったのでループ抜けた後でおkだと思うんだが…
- 742 名前:名前は開発中のものです。 mailto:sage [2015/12/23(水) 23:11:12.20 ID:eV/cz9Fn.net]
- >>722
ありがとうございます マニュアルとか読み直してたんですが、 isDoneとerrorの関係に関する資料がないんですよね… ちょっとそれでやってみます!
- 743 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 01:24:08.84 ID:fVyPsAlC.net]
- 全くの初心者なのですが、unityで作られた海外産のゲームをどうにかして日本語化することは出来ませんか?
- 744 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 02:50:08.08 ID:9xWq61T/.net]
- 作者が日本語化を想定しないで作ったゲームを日本語化できる
超便利機能がUnityにあるかと言うことなら そんなものはない
- 745 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 03:00:15.31 ID:b6nnDWP+.net]
- どうにかしてってレスの時点で草生えるw
- 746 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 03:00:54.91 ID:6r6456TK.net]
- ゲームに限らない話だけど、フレームワークによっては
文字列を外部ファイルに置いて読み込むのがスタンダードになってるものもあるらしいけど Unityは、少なくとも標準ではそうじゃないからねぇ
- 747 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 03:17:36.09 ID:fVyPsAlC.net]
- 文字列を日本語にしてフォント入れればどうにかなると思ってましたが甘かったようです
assetsファイルを開いたりしても見つからなかったので聞いてみたんですが駄目みたいですね… ありがとうございました
- 748 名前:693 [2015/12/24(木) 03:49:11.47 ID:1lQtknuT.net]
- >>694 >>695 >>696 >>697 >>699
遅くなりましたが回答ありがとうございました。 一応AudioSourceを複数用意して、ループのタイミングでもう一つという方針にしてみようかなと思います。 ただ、正確にn秒後に再生という処理がUnityでどうやるのか、ちょっとわかりません
- 749 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 07:47:12.45 ID:0vOVQYTb.net]
- Androidアプリで文字入力する際に画面全体が縮小されて
Unityデフォルトの青い背景が丸見えになっとる いつの間にこの仕様になったのか知らんけど、この挙動やめれないかな?
- 750 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 08:48:36.09 ID:8tygBO8v.net]
- >>729
再生中のAudioSourceは現在の再生タイムを取れるはずだから、それをUpdateなりで監視してループのタイミングで再生すればいいんじゃない?
- 751 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 13:12:26.08 ID:DmqVAdXz.net]
- ユニティちゃんのCRSではanimationイベントを利用してaudio.play()呼び出してタイミング合わせてるね
- 752 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 14:29:48.87 ID:5azEH8wD.net]
- PUNのPhotonViewによるオブジェクトの表示を同期するやり方が分かりません
マスタークライアントが置いたオブジェクトを、他のプレイヤーの画面でも表示したいです オブジェクト(Prefab)を作りのコンポにPhotonViewを追加 ↓ オブジェクトのコンポにPhotonTransformを追加 ↓ PhotonViewのObserverにPhotonTransformをアタッチ ↓ ルームに入ったあとマスタークライアントか判定してマスタークライアントならオブジェクトをInstantiateしてシーンに置く 上記方法をやってもマスタークライアント意外のプレイヤーの画面に表示されませんでした 間違いがあれば、教えて下さい
- 753 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 15:12:15.83 ID:J+FUoPhB.net]
- prefabはresourcesに、みたいなのなかったっけ
エラーとか出てない?
- 754 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 15:38:51.33 ID:6r6456TK.net]
- 重力をあれやこれや弄りたいとかで
重力処理を自前での実装しなきゃならんとする。 とりあえず通常の重力と同じ挙動をさせたいとき やり方って以下の方法で問題ないよね? 試した限りでは通常の重力と同じように動いて見えたが、細かい挙動はよくわからん 1. useGravityやgravityScaleを調整して重力の影響を無効化 2. Physics.gravityやPhysics2D.gravityの値(Vector3型/Vector2型)を取ってくる 3. FixedUpdate()の中でAddFoce()する。
- 755 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 15:40:43.89 ID:5azEH8wD.net]
- >>734
エラーは出ません マスタークライアントの画面には正常に表示されます PUNによる同期しないのであれば何の問題もないです なので単にPhotonViewによる同期ができてない(手順ミス、やり方が間違っている等)のかと思います
- 756 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 16:34:10.56 ID:V8y/g7ct.net]
- >>735
AddForce()するのはいいがForceModeによっては全然違う動きになる事に注意 デフォルトはForceMode.ForceだからForceMode.Accelerationを明示的に指定しないとダメだと思うぞと
- 757 名前:693 [2015/12/24(木) 19:12:31.14 ID:1lQtknuT.net]
- >>731
Updateのタイミングだと精度が低くて、 結構ずれずれなので、どうしゆかなーという感じです
- 758 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 20:19:25.62 ID:USbMBm3z.net]
- >>738
targetFrameRate の値を上げる、もしくはFixedUpdateの分解能を上げても遅延が気になるならUnityの標準機能だけじゃ難しいかもね
- 759 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 20:31:55.51 ID:3F4M1Qd0.net]
- 4.6から5への移行です
再生中、rigidbodyのついた
- 760 名前:GameObjectをSetActive(false)するメソッドが実行されると、
エディタごと落ちます。ログもエラーも出ません。 5のrigidbody関係で、ヒントでも些細なことでも何でもいいので情報くださいませ。 5のrigidbody周りは大量のバグが報告されていて、これもうゲームを作るとか以前の根本的な問題になってきそうなんですけど・・・w [] - [ここ壊れてます]
- 761 名前:名前は開発中のものです。 mailto:sage [2015/12/24(木) 22:28:33.63 ID:V8y/g7ct.net]
- >>738
それ多分呼ぶタイミングの問題じゃなくて呼んでから再生されるまでの遅延の問題じゃない?
- 762 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 01:15:39.54 ID:8Iucprok.net]
- マウスでクリックした画面上のゲームオブジェクトの座標やらスプライトやらの
情報を取得する方法って ・オブジェクトにButtonコンポをつけてOnClick()を使ってとる ・RayCastでとる の2つが考えられるとおもうんですが、どっちが良いとか どういう風に使い分けるべきとか、アドバイスが欲しいです 個人的にはButtonだと色んなオブジェクトにつけて回る必要があるし 付け忘れるとバグるので、RayCastで取る方がいいのかなと考えてますが、正しいですか?
- 763 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 03:02:56.40 ID:zmf0jnn8.net]
- >>742
全然違うw 全く理解してないようなので説明しとく まずRaycastには以下の3種類がありそれぞれ対象が異なるが、対象となるコンポーネントがないと反応しないのはどれも同じ Physics.Raycast →Collider(3D) Physics2D.Raycast →Collider2D EventSystem.RaycastAll →uGUIのGraphic そしてButton.onClickは全く層が違う、これは連続してRaycastした結果によるコールバックだ ButtonコンポーネントはuGUIのコンポーネントなのでGraphicRaycasterが継続的にRaycastを行い、その結果クリックされたと評価された場合にUnityEvent型の変数であるButton.onClickのInvoke()がコールされるという流れ またButtonはステート間のトランジション等の機能なども有していてとても冗長だからボタン以外の用途に使うなw 単純にスクリーン座標にある何かを取りたければ3種のRaycastのいずれかひとつ又は複数を使えばいい 2D/3D/uGUIは完全に分離して考え別々に扱うこと 画面上で重なって見えるのは構わんが同列に扱ったりコンポーネントを混ぜるのは論外 Button.onClickとRaycastと並列に扱う事自体的はずれにも程があるってぐらいおかしいのよ
- 764 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 05:00:02.85 ID:8Iucprok.net]
- >>743
ありがとうございます ButtonのOnClickって内部的にはRayCastを飛ばして評価してるって事ですか?
- 765 名前:ネットワークエンジニア(プロ)です [2015/12/25(金) 08:40:29.64 ID:lbZ74yN6.net]
- >>733
instantiateはunityのapiじゃなくて、photonのapiを使ってる?
- 766 名前:693 [2015/12/25(金) 08:52:05.37 ID:A95/sZ+u.net]
- >>739
>>741 ありがとうございます。 FixedUpdateの周期上げるのは負荷になりそうな気もしますね。 UpdateでPlayするタイミングを上手く指定出来るん?
- 767 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 09:40:11.41 ID:zmf0jnn8.net]
- >>744
Canvasに一緒についてるRaycasterコンポーネントを殺してみればわかると思うがタッチ/マウス関係は一切反応しなくなる これはこいつがRaycastして対象を取得してるからだよ >>746 どの程度の遅延をズレズレと言ってるか次第だが例えば以下のコードでまずは音のズレを確認する、ここで遅延してても気にしないが聞き取りにくいならここでBの再生開始フレームを調整 次に30→31の様にBの再生タイミングを1フレームずらして書き換えて再度確認、最初の時と比較して再生タイミングに大きなズレを感じられる耳を持ってるなら1フレーム分の遅れが問題 2回の試行で同じようにズレてると感じるなら再生時の遅延の問題と判断できる void Update(){ if(Time.frameCount==10) audioA.Play();//比較基準用に鳴らしておく if(Time.frameCount==30)//30という数字に意味はない audioB.Play();//これのタイミングをチェック } Unityで音ゲー作ってる人なんかはこの再生の遅延の問題には苦労してる人が多いみたいでちょっとググっただけでも対策やらノウハウやら山ほど出てくるぞ Android実機での遅延問題が大きいのでこの情報が多くなるが日本語の情報だけでも少なくないのでまずはこの辺調べてみるのがいいと思う
- 768 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 14:59:20.96 ID:qIHjPLip.net]
- >>737
ありがとう、そういえばそうだった 手打ちだったかわ忘れてた すげぇ今更だけど ForceMode2Dの方にAccelerationやVelocityChangeは無いんだな
- 769 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 17:56:33.86 ID:B+X3y53z.net]
- どれにもあたってない場合の判定ってどうやればいいんでしょうか
マップチップでマップを作る2Dアクションで、地面との接地判定でジャンプ可否をできるようにしたいんですが 地面を1チップ毎に判定を用意し キャラクターの足元にisTriggerで接地チェック用の判定を用意しました。 足元判定側からOnTriggerExit2Dを呼び出して離れた瞬間にチェックするようにしてましたが 地面接地したまま横移動した際に、前乗っていたブロックから判定が外れる際にも呼ばれてしまい、接地フラグが一瞬空中判定になってしまいます。 考え方が悪いのか、複数対象に対しての判定チェック方法があるのか、アドバイスお願いします。
- 770 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 18:18:19.95 ID:CtbAOxqw.net]
- 接地フラグを用意すればいい
接地したらON、ジャンプしたらOFF
- 771 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 18:25:31.75 ID:pherXl+8.net]
- >>749
タグ付けといてコリジョンのタグが地面だったら、とかにすればいいんじゃね
- 772 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 18:28:41.29 ID:CtbAOxqw.net]
- あ、これだと落ちるとき困るのか
- 773 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 19:10:58.52 ID:CtbAOxqw.net]
- 下方向に速度があれば落下中と判断するとか
- 774 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 19:35:12.48 ID:pherXl+8.net]
- そうか、ブロックってそういうことか。だったらコライダーのリスト作って
EnterしたらAdd,ExitしたらRemoveしてCountがゼロになったらどこにも当たってない、 とかでいいんじゃね
- 775 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 20:25:54.70 ID:cUBPDpkG.net]
- >>754
ありがとうございます、接地カウントの方法ならいけそうです、早速試してみます。
- 776 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 20:35:39.90 ID:LAUwLpIR.net]
- 接地判定だけならリスト持たんでもintでカウントしておけばいいような気がする
- 777 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 20:50:53.23 ID:pherXl+8.net]
- 単純なカウントで大丈夫そうならそれでもいいし
何かうまくいかないようならContainsで確認してAddすればいいかなと。 リストが長くなるとアレだけど数個程度までならそれほど負荷にもならないだろうし
- 778 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 21:04:29.26 ID:LAUwLpIR.net]
- 多分だが以下の様な事が発生してるんだと思うんよ
ブロックAからBへ移動する際のboolとintの挙動の違いを処理の発生順を下図1→3の順に追って考えてみる なお括弧内はbool/intのその時点での値 →123→ ┌─┬─┐ │A│B│ 1. Aに立ってる(true/1) 2. BにEnterしAB両方に接触(true/2) 3. AからExit(false/1) この場合boolだと3の位置で次の地面CにEnterが発生するまで空中判定になるがintなら0にはならないから常に接地状態であると判定できる だからintでいいんでないかなと思う
- 779 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 21:37:23.33 ID:qiT6tQcX.net]
- 空中かどうかの判定はジャンプや落下(下方向の判定がなくなったとき)にフラグ持たせて、
ジャンプはジャンプ、接地は接地で処理を考えたほうが柔軟でいいんじゃないかな これならジャンプ中や落下中に横から接したときの挙動もとりやすい
- 780 名前:740 mailto:sage [2015/12/25(金) 22:05:34.23 ID:FiwShDy7.net]
- もっとヤバイバグだった
gameObjectの1番使用頻度の高いあるメソッドを特定の呼び出し方をするだけで100%クラッシュする、、、 報告上がってんのに中の人もスルー&沈黙www 一ヶ月たつけどもう開発会社何社か潰れてんじゃねーかな、、、w
- 781 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 22:36:35.86 ID:LAUwLpIR.net]
- >>760
質問じゃないなら本スレ行けよw 外部エンジン使ってる以上エンジン側にバグが混入するのなんか折り込み済みなのが普通だし、進行中のプロジェクトで安易にエンジンのバージョンをあげる事はあり得ない 実際仕事では未だ4.6も現役だし5系もバージョン違いで2つ入れてある バージョン管理使わないというのもあり得ないから5に移行するにしてもブランチ切ってあるだろ そういう最低限の安全対策も取れない所ならバグがなくても潰れるから安心していいw 勿体ぶった言い方をして煽るのは結構だがその程度で会社が潰れるとか言ってると素人丸出しで全く説得力がなくなるから気をつけた方がいいぞ
- 782 名前:740 mailto:sage [2015/12/25(金) 22:50:32.61 ID:FiwShDy7.net]
- わかった気をつけるw
- 783 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 22:51:19.10 ID:UeCgI7Yq.net]
- 5系4つ入れてるw
Androidのresフォルダが認識しないという壮絶な不具合あったときは胃がおかしくなるかと思ったよ
- 784 名前:名前は開発中のものです。 mailto:sage [2015/12/25(金) 22:57:43.03 ID:GE3m8j15.net]
- 今晩は。ちょっと聞きたいのですが
メッシュの動的生成をしていてmesh.colorsに 適当な値をセットしても反映される様子がありません。 もしかしてstandard shaderでは設定しても反映されない?普通は反映される? 初歩的な質問で申し訳ありませんがよろしくお願いします。
- 785 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 00:48:46.66 ID:d/yX6nUB.net]
- そのままでは反映されない。
シェーダにちょっと書き足す程度で反映されるようになるよ。
- 786 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 02:37:11.63 ID:DlkIHce8.net]
- UnityでC#のコードを書いた場合、どういう仕組みでiOSやAndroidで動いているのですか?
今までどのプラットフォームのmonoもフリーウエアとして公開されていると思い込んでいたため不思議に思っていませんでした しかし、monoのiOS/Android版にあたるものはフリーで公開されていないと知って驚いています Uniryは一体どのようにこの有料の壁を乗り越えて動いているのでしょうか?
- 787 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 03:07:01.64 ID:Q61tu/ro.net]
- Monoって.NET Frameworkの互換ソフトウェアのほうか
- 788 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 07:45:40.02 ID:iSBjtkxw.net]
- ゲームの進行時間を「00:00(時間:分)」のフォーマットで出力したいんですが
// 経過時間を表示 timer_A.text = Mathf.Floor(time_A / 3600f).ToString() + " : " + Mathf.Floor((time_A / 60f) % 60f).ToString(); これだと「0:0」というフォーマットになってしまいます 「00:00」にするにはどうしたらいいでしょうか
- 789 名前:名前は開発中のものです。 [2015/12/26(土) 08:34:57.65 ID:7/5f2376.net]
- >>768
.ToString(
- 790 名前:名前は開発中のものです。 [2015/12/26(土) 08:36:54.53 ID:7/5f2376.net]
- なぜか本文が盛大に削られていた
しかも肝心な部分に入る前に・・・ >>768 ToString("00") で可能です。
- 791 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 08:52:48.72 ID:iSBjtkxw.net]
- >>770
ありがとうございます、できました! そんなオーバーロードがあったなんて知りませんでした
- 792 名前:名前は開発中のものです。 [2015/12/26(土) 10:50:15.71 ID:raK1t1yt.net]
- 一人称視
- 793 名前:点で、ダンボール箱の中から外を覗いているような感じにしたいんですが
ダンボール箱のモデル内にカメラを設置してもダンボールが透けて外が見えてしまうんですが どうすればいいでしょうか??一人称視点はできているとおもいます。 [] - [ここ壊れてます]
- 794 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 11:19:11.61 ID:hqMElhSq.net]
- >>765
ありがとうございます。 なんとなく難しいなーと避けてたんですが シェーダーのなかを眺めてみます。
- 795 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 11:44:01.40 ID:d/yX6nUB.net]
- >>772
ダンボールの内側のモデルを作る。 もしくはシェーダをダブルサイデッドに書き換える
- 796 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 12:05:43.85 ID:J2t5CeZp.net]
- >>766
普通にオープンソースなんじゃない? Monoが有料という話がどこから出たのか知りたい
- 797 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 12:39:33.51 ID:I9x0dbOD.net]
- >>774
ありがとうございます! シェーダを変えたらできました!
- 798 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 12:51:11.14 ID:DlkIHce8.net]
- >>775
確かにMono自体はオープンソースかつフリーで配られています ただ、iOS向けの変換ツールやAndroid向けのランタイムは(体験版や機能限定版をのぞいて)有料のものしかないように見えてしまいますが・・・・その認識が間違えているのでしょうか
- 799 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 12:59:10.15 ID:d/yX6nUB.net]
- その有料の変換ツールを作ったところに変換ツールが作れるなら
Unity内部で同じようなもの作っていても何の不思議もないのではなかろうかw
- 800 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 14:07:10.95 ID:DlkIHce8.net]
- 不思議じゃないにしても現実にはどうやってるのか気になるな
- 801 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 14:18:30.39 ID:uHnSRUEn.net]
- それゲーム開発板のUnityスレッドで聞いて
答えが得られると思ってたりする?
- 802 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 14:53:32.59 ID:d/yX6nUB.net]
- 実際どういう手法で変換してるかはソースコードでも見るしかないよなぁ
Unityはそこまでは公開してないからどうにもならんが。 でもUE4なら全部公開してるからどういう手法が有り得るのかとかはアレ見ればわかるよ
- 803 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 15:28:42.44 ID:Qa7PpWsr.net]
- >>766
最近だとIL2CPPという、名前の通り「monoのILをc++コードに変換する」技術が使われてる あとは環境ネイティヴでコンパイルするだけ 変換方法の詳細は公開されてないけど、cppになったコード自体はxcode出力したら一応読めるよ。難読化状態だけど
- 804 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 16:08:33.20 ID:f8fQjKcC.net]
- 5.3になってパーティクルシステム大きく変わったのか
いろんなアセットでエラー吐きまくる 定型的な修正手順とかあったら教えてくれ 5.2.4にしておくのが無難か
- 805 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 23:06:31.47 ID:DlkIHce8.net]
- >>782
そういう仕組みだったのですか ありがとうございます 不思議で仕方ありませんでした
- 806 名前:名前は開発中のものです。 mailto:sage [2015/12/26(土) 23:21:29.31 ID:JOqtY8Wq.net]
- それで納得すんのかよw
IL2CPPはUnity5で採用された技術でそれ以前だってiOS用には出力できたし Androidの方はどうなるんだとかそのIL2CPPの中身はどうなってんだとか色々あんだろw 名前さえついてりゃ納得するってなんなんだよw
- 807 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 00:09:58.61 ID:YtOJwDdp.net]
- 気持ちは良くわかるけど、どの段階でスッキリするのかは各々次第ってことだな
- 808 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 00:21:43.69 ID:QK+lQHzY.net]
- 質問というか相談というか雑談というか
unityの非同期処理調べてみると、ライブラリがいくつかあるみたいなんだけど みなさん何使ってますか Spicy Pixel Concurrency Kit https://www.assetstore.unity3d.com/#!/content/3586 Iterator Tasks is a iterator-based coroutine class library. https://github.com/aiming/iterator-tasks 説明 www.slideshare.net/ppcchan/async-design-with-unity3d
- 809 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 00:54:30.77 ID:CnMTlenQ.net]
- 設計についての質問なんですがRayCastがヒットしたオブジェクトの種類(タグ名)によって
個別の処理をしたいのですが、メッセージループみたいにまずRayCastがヒットしたオブジェクト種類を 判定するクラスを作って、そのクラスでswitch,case書きまくってオブジェクトのタグ名で判定して 切り分けた先のcase文の中でそれぞれの機能を提供するメソッドをコールするっていう設計は大丈夫でしょうか? 100近いcase文を書くっていうのが設計としておかしいのでは?と不安です
- 810 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 01:11:18.00 ID:V7RdG6Gy.net]
- >>788
case文って基本的に上から条件探して降りてくるだけなので 100個もケースあるってことは100番目のケースに至る場合 100回if文を経由するのと同じになる。 たまに使われるものならともかく頻繁に使う処理としてはどうなんだろうな〜という 感じはする。 例えばだがそれに対する処理を定義するスクリプトを貼り付けておいて ヒットしたらそれをGetComponentして実行する、とかの方が現実的ではないか、って気がする。 単純なものならSendMessageでもいい。 BaseClassで実行する関数を定義しておいて現状タグで判定して分けるその処理は タイプに応じてオーバーライドする。 共通する処理の部分は小分けにしてBaseClass内でprotectedなりpublicなりで定義しておけばいいし。
- 811 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 01:30:25.19 ID:wK6DIH8G.net]
- >>787
解答としてズレてるの承知ながらUniRxは一度試してほしいかな
- 812 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 01:53:26.74 ID:CnMTlenQ.net]
- >>789
>例えばだがそれに対する処理を定義するスクリプトを貼り付けておいて >ヒットしたらそれをGetComponentして実行する、とかの方が現実的ではないか、って気がする。 「ヒットしたらそれをゲトコンして」のあたりの具体的なイメージがよく分からないのですが どうやってゲトコンするイメージでしょうか? どの道Rayのヒット判定は必要ですよね? すみません、ちょっとよく頂いたレスの内容が理解できていません 100近くもswitch,caseを書くのがまずい、(Rayヒット判定するクラスを)分割しろ、という事でしょうか?
- 813 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 02:00:06.23 ID:QK+lQHzY.net]
- >>790
どもです Unity勉強中で、大体材料揃ってきたので 今基幹技術?の選定中というか調査中でして… UniRxって私の検索ワードでは出てきてなかったのでありがたいです!
- 814 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 02:18:25.85 ID:V7RdG6Gy.net]
- >>791
例えばだが RaycastHit hit; if (Physics.Raycast(transform.position,transform.foward, out hit,100f)){ BaseClass bs=hit.transform.GetComponent<BaseClass>(); if(bs!=null)bs.MethodA(); } とかやるってこと。 対象に貼り付けておくスクリプトはBaseClassから派生して自分にあった MethodA()をオーバーライドしておく。 100もcase文を書くのがまずいかどうかは正直わからんといえばわからん。 ただ100番目のケースに至る場合caseの条件を100回確かめることになるのは確かだ。 それ自体が頻繁に呼び出されることもなく100番目のケースが呼ばれることはめったにない、 ほとんどは10番目くらいまでで終わるというならそれほど悪くはないかもしれない。 ソースがまとめて見れるしそれぞれの処理がそれぞれのスクリプトにばらけてしまうのはいやだ、 というのもわからいではないしね。 他にもやり方は考えられてこれまた例えばだが case文に入れていた処理を関数化し配列化したDelegateにそれぞれ格納しておいて RayCastでヒットさせる対象の方には自分のタイプ番号をintで返すメソッドをもつスクリプトを張っておき RaycastHit hit; if (Physics.Raycast(transform.position,transform.foward, out hit,100f)){ ReturnNumClass rn=hit.transform.GetComponent<ReturnNumClass>(); if(rn!=null)this.delegateArray[rn.ReturnMyType()](); } とかもありえる。まぁ色々やり方はあるってことだ
- 815 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 02:34:14.82 ID:CnMTlenQ.net]
- >>793
なるほど・・・なんとなくですが分かりました ありがとうございました
- 816 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 03:10:37.82 ID:34BqQyRM.net]
- >>794
もっとシンプルに文字列がKeyのdictionaryに関数登録して呼び出すのも有りな気もするけどね
- 817 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 03:17:30.52 ID:f6LeTzfn.net]
- switchとif文の処理速度についてはリンク先でも見てもらうとして
速度的にどうか以前に100近いswitch casepubなんて読みにくいし修正が発生した時にイラっとすること請け合いだと思うぞと blog.shos.info/archives/2014/08/csharp_ifswitchdictionary.html Dictionary<string,Action>を持っておくとか、多態性やリフレクションを利用するとかやりようはいくらでもあるが何が適切かは場合によるので自分の設計にどれが合うのかを考える必要があるね
- 818 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 03:18:07.65 ID:f6LeTzfn.net]
- なんかゴミが混入してるなすまん
- 819 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 03:20:45.91 ID:f6LeTzfn.net]
- Dictionary使うのは実装は楽なんだが、デバッグ時に何が実行されるかを追うのが面倒になるのが難点
- 820 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 10:43:43.65 ID:V7RdG6Gy.net]
- else if よりswitchの方が全然高速なのか…
c#のswitchってインデックス化とかで高速にそこに飛んでくれるのかね
- 821 名前:名前は開発中のものです。 mailto:sage [2015/12/27(日) 11:11:28.72 ID:wK6DIH8G.net]
- cでも多量のswitch caseは二分探索に最適化されるんじゃなかったかな
else ifはその都度
- 822 名前:式を評価しなきゃいけないからそういった最適化の恩恵はない []
- [ここ壊れてます]
|

|