15/12/11 00:04:15.22 /Tfpm4AI.net
これからandroid向けで物理エンジンを駆使したゲームを作ろうと思ってるんですが
android機器で物理エンジンはどのくらいのスペックで動作するのか知りたいです
例えば「nexus7の2012年版で○○個のオブジェクトを動かしてもサクサク動く」
みたいな感じで教えてもらえないでしょうか?
527:名前は開発中のものです。
15/12/11 00:11:49.26 auUWvctk.net
ちょうど2012Nexus7手元にあるけどさ
2D数十個でもサクサクいかん時はいかんよ。テクスチャやフィルレートとかなんでもボトルネックになり得るところだし
2012Nexus7なんてそれこそuGUI要求が多いだけでもモタつくときはモタる
常時60fpsじゃないとだめなのか(※これはほぼ無理ゲー)、たまに30fps切っても平気なのかとか、細かい基準出して欲しいかな
528:名前は開発中のものです。
15/12/11 00:21:23.33 /Tfpm4AI.net
>>513
そうですね
できるだけ30fpsは維持したいです
ゲーム内容は大雑把に言えば3dゲームでオブジェクトの山に弾をぶつけて山を崩すようなものを予定してます
オブジェクトの数が多ければ多いほど楽しくなると思うのですが
529:名前は開発中のものです。
15/12/11 00:26:59.56 yLemPvqT.net
rigidbodyを付けた球を坂から転がして、その後に摩擦係数を設定したPhysicMaterialを付けた平面を転がるような配置をしました。
しかし、球が止まりません。摩擦がきていないような挙動です。
どうすれば摩擦を有効にして球を止めることができるのか教えてください。
530:名前は開発中のものです。
15/12/11 00:32:17.67 x+AP/k/7.net
PCゲームばっかやってて60FPS以上を見慣れてると
自分の作ったスマホゲーを30FPSに落とした時きつい
カックカクでゲームにならんって感じてしまうんだよ
一般のスマホゲーマー達はそう感じない事に期待してそのままリリースするが
531:名前は開発中のものです。
15/12/11 00:51:15.98 x+AP/k/7.net
>>514
Unityで作られたその手のアプリをいくつかiPhone5Sで遊んだ事あるけど
重くて遊べたもんじゃないのばっかだったな
弾ける瞬間は1FPSも出てなかったり
まぁ無駄なコーディングで足引っ張ってそうなインディーばかりだったけど
物理コライダ持ってるオブジェクトが20個程度でそんなもんだったけど
参考にはならんと思う
ボーリングアプリくらい30分で作れるだろうしまずPCでどんくらい出るのか作ってみたら?
Androidにリリースするんなら実機持ってるんだろうし
532:名前は開発中のものです。
15/12/11 01:01:15.99 /Tfpm4AI.net
>>517
返答ありがとうございます
5sって結構新しいのにそんなに厳しいんですか
これは本格的に作り始める前に自分で色々テストした方が良さそうですね
533:名前は開発中のものです。
15/12/11 02:04:11.46 2yOpPUBV.net
5.3にしたらユニティちゃんのCandy Rock Starが変になったんだけど
多分ConfettiのParticle Systemが問題だと思うのだがどう直せばいいか判らん
同様の症状で直した人いる?
534:名前は開発中のものです。
15/12/11 04:40:44.87 06Jnt7l7.net
せめて人が読んで理解できる文章を書けよ
だから嫌われるんだよ
535:名前は開発中のものです。
15/12/11 08:47:20.23 Az4gv7hK.net
5.3にしてから、プロジェクト選択画面で真っ黒(正確には濃いグレー)になってしまった。
同じようにそこから先に勧めないって人いる?
URLリンク(forum.unity3d.com)
状況的にこれに似てる気がする。32ビット版Windowsでしか起こってないぽい?
でも自分の英語力&Unity知識では後半さっぱり分からん。
とりあえずエクスプローラからシーンファイル(*.unity)をダブルクリックすれば、
Preferencesでプロジェクト選択画面を出す設定にしてても飛ばして起動できるのは確認した。
また、最初から飛ばす設定にしてれば問題なく起動するぽい。
536:名前は開発中のものです。
15/12/11 14:27:13.90 aGJdRLUp.net
>>518
似たようなものがない時は大体が「できない」からだと思ったほうがいい
物理演算てそもそも重たいものだから
537:名前は開発中のものです。
15/12/11 15:50:37.61 zm6mejj3.net
>>521
俺も焦ったが
URLリンク(forum.unity3d.com)
フォーラムの
URLリンク(mega.nz)
をダウンロードして中身の
unityeditor-cloud-hub-0.0.1.tgz
unity-editor-home-0.0.7.tgz
解凍して
それぞれのpackageの中身を
cloudはC:\Users\<ユーザー>\AppData\Roaming\Unity\Packages
homeの方はC:\Users\<ユーザー>\AppData\Roaming\Unity\Packages\node_modules\unity-editor-home
に配置してまた再起動すれば例のログイン画面が出てくる
node_modules\unity-editor-homeが無ければ自分で作る
まあここの連中は向こうのも日本法人の連中もゴミ見たな奴しか居ないわ
糞見たいなイベントなんかしてないでさっさとドキュメントの翻訳をしろよ クズが
538:名前は開発中のものです。
15/12/11 15:53:26.99 /Tfpm4AI.net
>>522
実は今日検証用のミニゲームを作って試してみたんですがnexus7の2012バーションで
実にサクサク動きました
ブロックオブジェクトを100個位表示して爆発動作させてみてもfpsは40くらいで
一定を保っています
サクサクにならないゲームってひょっとしてメッシュコライダとか重いものを
使ってるんじゃないですかね?
俺のゲームはブロックとか球などのビルトインコライダで事足りるので十分いけると
思います
これから本格的に作り始めようと思ってます
539:名前は開発中のものです。
15/12/11 15:55:04.54 zm6mejj3.net
おれも頑張ってサクサク作るわ
まあ今年は殆どはMAxでの作業になるが
540:名前は開発中のものです。
15/12/11 16:51:51.73 Az4gv7hK.net
>>523
さんくす! 表示されるようになった!
お前さんも32ビットだったりする?
541:名前は開発中のものです。
15/12/11 17:12:49.02 NWaqo9Yy.net
>>526
俺も32ビットのタブレットにインストールしたらなったけど無事解決
542:名前は開発中のものです。
15/12/11 17:15:21.25 zm6mejj3.net
>>526
だね 7の32
これ32bitでまだ導入してない人は 修正版が出るまで待った方がいいかもしれない
543:名前は開発中のものです。
15/12/11 23:02:51.18 TNWJHdul.net
質問です。
ラジコン操作をさせようと思って、ネットで見つけたコードを参考に以下のように組みました。
プレイヤーが前(Z方向)を向いている時は上下キーで前進、後退するんですが
左右で向きを変えると、変えた向きの分だけ前進・後退の角度がズレてしまいます。
具体的に言うと、右に20度回転してから上キーを押すと、PLから見て右20度に進むようになり、
右に90度回転した状態から上キーを押すと真横(右)に横滑りするようになります。
ラジコン操作にしたいので、向きを変えても前に進んでほしいのですが・・・
なぜそんなことになってしまうのか、お知恵をお貸しいただければm(_ _)m
void Update () {
if (Input.GetKey(KeyCode.RightArrow)){
this.transform.Rotate(new Vector3(0, 1f,0));
}
if (Input.GetKey(KeyCode.LeftArrow)){
this.transform.Rotate(new Vector3(0, -1f,0));
}
if (Input.GetKey(KeyCode.UpArrow)){
this.transform.Translate(this.transform.forward * 0.05f);
}
if (Input.GetKey(KeyCode.DownArrow)){
this.transform.Translate(this.transform.forward * -0.05f);
}
}
544:名前は開発中のものです。
15/12/11 23:29:59.99 Az4gv7hK.net
言いたいことはわかるが、
「プレイヤーから見て右20度に進む」だと、「正しいじゃん?」と思ってしまうw
545:529
15/12/12 00:01:49.97 OCSYJa91.net
>>530
図解できれば伝わりやすいのですが;
つまり想定している方向からズレる、ぞのズレる角度が変えた方向の角度と一致する、ということですね。
向きを20度変えたのに、進む方向は40度変わっとるやんけ!という
546:名前は開発中のものです。
15/12/12 00:14:36.58 2plOXWN4.net
>>529
まずRotateはnew vector3いらずに
Rotate(0,1,0)で良くなかったっけ?
ゲームアプリ20個以上リリースしても、たった一ヶ月Unity触らなかっただけでそんな事さえも忘れてしまってる自分が悲しい
547:名前は開発中のものです。
15/12/12 00:22:09.87 2plOXWN4.net
>>529
で前進後退においても
Translateはもともとローカル軸だった気がするので
transform.Translate(0,0,0.5f)で真っ直ぐ進まないかな?
548:529
15/12/12 00:25:11.16 OCSYJa91.net
>>532
ほんとだ、new vector3無くてもいけますね。
症状はまったく変わらないですが・・・
ちなみに新しいプロジェクトにキューブ1個だけ置いて>>529のスクリプトつけても症状は同じでした。
何がいけないんだろう・・・
549:名前は開発中のものです。
15/12/12 00:29:24.46 yC1kWMxQ.net
>>529
this.transform.Translate(this.transform.forward * 0.05f);
は
this.transform.Translate(Vector3.forward * 0.05f);
にするかもしくは
this.transform.Translate(this.transform.forward * 0.05f, Space.World);
にする。
550:529
15/12/12 00:30:54.36 OCSYJa91.net
>>533
それでいけました!
もともとローカルのものをローカル指定したから角度が2重にかかってたとかですかね・・・
とにかく
this.transform.Translate(this.transform.forward * 0.05f);
の部分を
this.transform.Translate(0,0,0.05f);
にしたらちゃんと正面に進むようになりました!
助かったありがとう!!
551:529
15/12/12 00:34:20.31 OCSYJa91.net
>>535
ありがとうございます、
this.transform.Translate(Vector3.forward * 0.05f);
でもしっかりいけますね!
うーん、こんな単純なスクリプトでも理解するのは難しいもんですね…
552:名前は開発中のものです。
15/12/12 00:34:21.77 2plOXWN4.net
>>536
良かったねえ
Time.DeltaTimeするのを忘れないようにね
別の環境で遊ぶ時に高速になったり低速になったりしちゃうよ
553:名前は開発中のものです。
15/12/12 00:35:37.88 yC1kWMxQ.net
つーか、
this.transform.Rotate(Vector3.up*rotSpeed*Time.deltaTime);
とか
this.transform.Translate(Vector3.forward *moveSpeed*Time.deltaTime);
とかそういう表現にした方がいいかとは思うがなぁ…
554:529
15/12/12 00:36:04.64 OCSYJa91.net
>>538
ありがとうです、*Time.DeltaTimeとかにするんでしたっけ…
それは手元の入門書にも書いてあったのでそれ見ながら入れておきます!
555:529
15/12/12 00:37:49.04 OCSYJa91.net
>>539
こんなに書き方が色々あるなんて・・・
全部メモっておいて調べてみます、ありがとうです!
556:名前は開発中のものです。
15/12/12 00:47:17.51 2plOXWN4.net
まぁゆくゆくはRigidbodyで動かしたりもするようになるだろうけど、少しずつ
557:分かっていけば良いと思うよ あ、ここもこうすれば後々便利だ!とかそんな風に気付いていく喜びを楽しみつつね 敵のとかAI作ってて脳がほとんど溶けたのも良い思い出だわ
558:名前は開発中のものです。
15/12/12 04:46:34.69 LX2Avmx5.net
残念ながら論点はそこじゃねえんだ
「漢字は一文字から意味をなすが、アルファベットは数文字必要」
って書けば日本語化の価値に気づけるか?
559:名前は開発中のものです。
15/12/12 13:18:20.61 3GGIAwvU.net
Transoform関連はサンプルアセットのThirdPersoncharacterのスクリプトを徹底的に見れば良く判る
更に適当なアセットで戦闘時の前を向いたまま左右やバックの動きをカメラとの関連で理解して
最後にanimationでRootMotionの有無による違いを理解すればゲームで思った通りに動かせるようになる
560:名前は開発中のものです。
15/12/12 16:42:34.69 NPVAYdih.net
5.3にしてみて気のせいかもしれないんだけどさあ
インスペクターでオブジェクトを見ると、貼り付けられたスクリプトの項目がすべてグレーアウトしてる
これって前からこうだったっけ・・・・?
561:名前は開発中のものです。
15/12/12 23:19:06.90 6cVhaj81.net
unityを4.6から5.2.3f1にバージョンアップしたところ、Scenceが開けなくなりました。
開こうとすると「Merge scenes」というのがはじまるのですがどのボタンを押しても結局開けません。
エラーログは下記です。
Error running semantic merge
UnityEditorInternal.
InternalEditorUtility:INTERNAL_CALL_SceneViewDrag(Object, Vector3&, Vector2&, Boolean)
UnityEditorInternal.InternalEditorUtility:SceneViewDrag(Object, Vector3, Vector2, Boolean)
(at C:/buildslave/unity/build/artifacts/generated/common/editor/InternalEditorUtilityBindings.gen.cs:250)
UnityEditor.DockArea:OnGUI()
ちなみにCドライブ直下に[buildslave]のフォルダなど無く、なんのエラーかもわかりません。
解決方法わかる方いらっしゃったら助けていただけませんでしょうか。
562:名前は開発中のものです。
15/12/12 23:54:00.78 pnfEa23s.net
Unity5.3.0f4にアップデートしたのですが、
今まで(5.2系列)上手く行っていたWebGLのゲームのロードに失敗するようになりました。
chromeのコンソールで見るとこんなエラーが出ており、
─────────────
* Failed to load resource: the server responded with a status of 404 (Not Found)
URLリンク(hogehoge.com) ←Build.jsは、実際にはBuild.jsgzという圧縮ファイルになっている
Invoking error handler due to UnityLoader.js:1
Uncaught unknown compression method
─────────────
「
Uncaught unknown compression method」でググると
Apacheの設定で解凍失敗してるんでは?的な記事があって
httpd.confなどをその通りに設定したのですが改善しません。
自分で作っていた過去のビルド分を見なおしたところ、
そもそも前のバージョンでもjs等の圧縮は行われており
それは問題なく解凍できていたようです。
急に挙動が変わった原因は恐らく↓だと思うのですが、改善方法がわかりません。
Unity WebGLはサーバー側で圧縮の設定がされていない場合でも、自分で適切に圧縮をハンドリングするようになりました。
URLリンク(blogs.unity3d.com)
なにか改善策や問題点心当たりありましたら、ご教示お願いしますm(_ _)m
563:名前は開発中のものです。
15/12/13 00:22:59.55 uiR6M1Lf.net
変な話ですまんがなんでバージョン上げたの
これまでのバージョン使いなよ
Unityわりと気楽にトラブル起こすよ
Android用のresフォルダ認識しなくなったのとか記憶に新しいところだ
サポートで解決できなかったから広告SDK側をAndroid Plugin形式に改造したったよ
その後パッチバージョン出たけど
564:名前は開発中のものです。
15/12/13 00:31:44.57 5sytrhgf.net
そういうもんなんですか。。
WebGLはビルド対象にしようと思っているのと、今後出る2D強化に期待してるので
アップデートはしていきたい気がしています…
公式のコミュニティでWebGLで検索もしたんですが、
特にそういう話題なかったんで恐らく環境依存なのかな?と思うのですが
同じ境遇の方いらっしゃいませんでしょうかorz
565:名前は開発中のものです。
15/12/13 00:46:50.76 uiR6M1Lf.net
今後の2D強化というとロードマップで来年June予定の奴かな?RPGツクール的なのとかSmartSprite
あれはすでにPro版あライセンスで触れるんだけど、まだまだ製品に使えるものになってないアルファ版だと思って問題ないよ
566:名前は開発中のものです。
15/12/13 01:27:05.37 UxISlOla.net
具体的にどんなのだろう。
あとはタイルマップも気になってるんだけども…
567:名前は開発中のものです。
15/12/13 02:18:50.42 T1PVLqMJ.net
新しくついたIn App Billingを試した人いる?
個人の俺は住所氏名をストアでさらすの嫌だから課金システムをつける気はないけど、いつかやってみたい機能ではある
568:名前は開発中のものです。
15/12/13 18:33:33.10 JGp8cZyt.net
URLリンク(i.imgur.com)
画像のような空白のエラーメッセージが出て、何もできなくなってしまいました。
同じような症状を経験した方はいらっしゃいますか?
Unityを再インストールしてもダメでした。
別のプロジェクトからスクリプトファイルをインポートしたらこうなったような気がします。
ググっても解決策は見つかりませんでした。
569:名前は開発中のものです。
15/12/13 19:18:36.57 yWkumFwQ.net
インポートしたスクリプトが悪いとめぼしをつけてるならインポート前に戻せばいいんじゃね
570:名前は開発中のものです。
15/12/13 19:21:59.61 JGp8cZyt.net
>>554
返信ありがとうございます。
スクリプトを削除しても再起動してもエラーは消えませんでした。
571:名前は開発中のものです。
15/12/13 22:00:25.82 nrWSMJOj.net
ソース管理システム使えとは言わんがバックアップはこまめにしとこうぜ。
インポート前のプロジェクトがそのまま残ってないなら、最終的には新しくプロジェクト作って少しずつ移植かな。
572:名前は開発中のものです。
15/12/13 22:22:57.67 UxISlOla.net
Dropboxの同期フォルダに突っ込んでおくだけでもだいぶ違うね
573:名前は開発中のものです。
15/12/13 23:31:58.39 HGfclpxH.net
質問です。
player_win_x64.pdb
player_win_x64_s.pdb
上記のファイルって何でしょうか?
エンドユーザーの環境に入れないとダメですか?
574:名前は開発中のものです。
15/12/14 00:59:45.74 H2lQWtd2.net
URLリンク(stackoverflow.com)
デバッグ用途のデータなのでエンドユーザに配布する必要はないよ
575:名前は開発中のものです。
15/12/14 01:09:48.37 GIlDuD45.net
enemy.csを作成して敵キャラクターのオブジェクトに貼り付けた場合を想定してほしいのですが
この場合、ゲームコントローラー等からすべての敵キャラクターの同じメンバ関数を呼ぶにはどうすればいいのでしょうか?
576:名前は開発中のものです。
15/12/14 01:16:30.04 H2lQWtd2.net
俺なら単にforeachで回すよ
あとEnemyManager.csみたいな敵キャラクター全体の管理クラス作ってそいつに全ての敵キャラクターを管理させる
ゲームコントローラからは管理クラスのメソッド呼ぶだけ
577:名前は開発中のものです。
15/12/14 01:17:18.34 W90jgNlN.net
BroadcastMessage!
578:名前は開発中のものです。
15/12/14 01:23:24.13 uyCW8aeP.net
このブロックとブロックの間の黒い線を消したいんだが
何をどうすればよいんでしょうか。
Standardのシェーダーに適当なテクスチャくっつけて
uvずらして切り貼りしてるかんじなんです
URLリンク(i.imgur.com)
だれかエスパーお願いしますうう
579:558
15/12/14 01:39:50.84 RTi2ffUX.net
>>559
ありがとうございました。
580:名前は開発中のものです。
15/12/14 01:55:16.42 GIlDuD45.net
>>561
ありがとうございます
オブジェクトを取得するのはやはり、毎回GameObject.Findで探してやる感じになるのですか?
581:名前は開発中のものです。
15/12/14 02:55:22.94 pzkPucZv.net
まあ>>561のやり方でちゃんと管理するのがいいのだが
単純な話であればenemy.csに
void Update(){
if(Input.GetKeyDown(Keycode.A)MethodA();
}
void MethodA(){
}
とか書いておけばそれでも呼べる。
ちゃんと管理するっていうのは生成も廃棄もちゃんと管理するってことだ。
>>561が想定しているのは恐らくManageEnemy.csというクラスをシングルトンで作っておいて
その中に例えばパブリックメンバとしてList<enemy> enemyListとかをもっておくとか追加削除メソッドをもって
enemy.csで
void Awake(){
ManageEnemy.instance.enemyList.Add(this);
}
void OnDestroy(){
ManegeEnemy,instance.enemyList.Remove(this);
}
と書いておくとかもっといえばEnemyを生成するのは必ずUnitManagerとかのクラスを通して行い
廃棄もそれを通して行うみたいな話ではあろうと思う。
582:名前は開発中のものです。
15/12/14 04:08:56.91 ronnLmNu.net
逆にゲームコントローラのイベントに敵キャラがハンドラを登録する方法もある
583:名無しさん@そうだ選挙に行こう
15/12/14 15:34:23.80 sO33dj3S.net
某書籍を買ったのですが、update関数の中でnew Vector3を使っています。
毎フレームnewするのは一見遅くなる気がしますが、unityではこれ普通に使いますか?
584:名無しさん@そうだ選挙に行こう
15/12/14 15:48:13.55 aVVKebKg.net
C#だと普通
つか説明用のコードでそこまでシビアなことはしないし
最適化でどうなるか気になるなら実測してみては
585:名無しさん@そうだ選挙に行こう
15/12/14 16:27:13.97 oYRBr8uT.net
Vectorを一時的に使う時にnewするのって抵抗あるよね
俺も最初はそう思ってた
いつからか面倒臭くなって今は当たり前に使ってるけども
別に気にする必要はなかったと思うね
586:名無しさん@そうだ選挙に行こう
15/12/14 16:30:06.33 H+L3QWh3.net
Vector3はstructだからなぁ
587:名無しさん@そうだ選挙に行こう
15/12/14 16:32:35.86 30LNT+hD.net
Updateでnew Vector3だと?
どんな動きを期待してんだ、普通にFixedUpdate使えよ
588:名無しさん@そうだ選挙に行こう
15/12/14 18:37:35.29 H+L3QWh3.net
>>572
物理演算に干渉しないのであればUpdateでなんの問題もないしむしろFixedUpdateに書くべきじゃない
589:名無しさん@そうだ選挙に行こう
15/12/14 19:02:45.96 DiZBL98b.net
そんな事は初めて3日の初心者でも知ってるだろ
ゲームではrigidbody使う基本から覚えたほうがいい
590:名無しさん@そうだ選挙に行こう
15/12/14 19:33:31.97 sPRe/DZw.net
FixedUpdateの存在に気づいたの、いつだったかな…
591:名無しさん@そうだ選挙に行こう
15/12/14 19:35:00.10 H+L3QWh3.net
元のVector3をnewすることによるオーバーヘッドとFixedUpdateに何の関係もないからどうでもいいか
Vector3はstruct=値型だから変数に代入した時点で値の複製によるオーバーヘッドが発生する
だからnewだけを気にしててもあまり意味がないって事な
592:名前は開発中のものです。
15/12/14 20:43:31.62 x0H1eQQZ.net
>>563
きっちり切り抜こうとしてない?
マップチップみたいな画像を切り抜こうとして同じ症状が起きた気が。
一回り大きく描いておくか、一回り小さく切り抜くか、切り抜かず1枚のテクスチャを用意するか。
3DのUVの仕様だったと思うけど。違ったらスマソ
593:名前は開発中のものです。
15/12/14 21:11:49.95 grDto/Iy.net
Unityに関係ない質問ですが、みなさんは
594:名前は開発中のものです。
15/12/14 21:35:14.97 cdIsw3/o.net
FixedUpdateの話に便乗して質問
RigidBodyにFixedUpdateを使うのはいいとしてinput系がよくわからない
Input.GetAxisはマニュアルではUpdateで普通に使われててWEB記事の中にはUpdateがいいとか書いてあるものさえ
あるけどチュートリアルのスクリプトではFixedUpdateで使ってる場合が多い、どっちでもいいのか?
あとシューティングとかジャンプとかInput.GetButtonDownはFixedUpdateと別にわざわざUpdateでしてる
ちょっと作って見た程度ではどっちも大差ないんだよなあ、決まりがよく判らん?
595:名前は開発中のものです。
15/12/14 22:01:33.06 pzkPucZv.net
>>579
Inputの各値は基本的にはUpdate()単位で更新されている。
URLリンク(docs.unity3d.com)
"Note also that the Input flags are not reset until "Update()", so its suggested you make all the Input Calls in the Update Loop."
インプットのフラグはUpdate()までクリアされないことに注意。インプットコールの全てはUpdateループの中で行うべきことを示しています。
つまりそのサイクルのUpdate()が終わった時点で更新される。
なのでFixedUpdate()で使うのには注意が必要で
例えばキーを押したとき一回実行したい場合に
if(Input.GetkeyDown(Keycode.A)MethodA();
なんかをFixedUpdate()に書いてしまうと場合によっては二度実行されて意図してない結果になりうる。
Input.GetAxis()なんかはそういう意味ではFixedUpate()内で使っても危険は少なそうではある。
596:名前は開発中のものです。
15/12/14 22:41:56.11 uyCW8aeP.net
>>577
おおお、ありがとうございますううう。それでした!
一枚テクスチャにしてもちょっと小さく切り抜いた場合でも
つなぎ目消せました
URLリンク(imgur.com)
597:名前は開発中のものです。
15/12/14 23:03:28.13 5rWvx7gs.net
>>511
亀だけどサンクス
何となくわかったわ
598:名前は開発中のものです。
15/12/14 23:16:18.52 nTj0Sz3S.net
↑
わかってない
599:名前は開発中のものです。
15/12/15 02:52:33.57 nZT54pCP.net
ブロック崩しを作っていて、
跳ね返ったりブロック消すところはできたのですが、
いざブロックをたくさん設置してみると
上に跳ね返らず、→の処で下に戻ってしまうのです。
こっちにこない
↓
\ ■■■■
\■■■■
→/■■■■
/ ■■■■
\ ■■■■
\
○スタート
球の速度を変えると上に行く時もあるのですが、
速度を変える以外に何か回避方法ありますか?
600:名前は開発中のものです。
15/12/15 03:15:30.59 tajp4kV9.net
>>584
おそらく、その1つ上のブロックの角にボールが当たってるんだろうな。
ブロックを消さない場合も、同じように想定しない方向に跳ね返る?
それで発生しないなら、もしかすると「当たった瞬間には消さない」という姑息な手段で
問題が解決するかもしれない、
601:名前は開発中のものです。
15/12/15 08:08:41.08 66uXxktO.net
admobuに関して質問よろしいでしょうか?
カメラだけの最小構成のサンプルプロジェクトでバナーを表示させるとでるのに
実際のアプリに組み込むとでません。
これって何かのアセットがいたずらしてたり画面の外に表示されてたりとかそういう可能性ってありますか?
解決法はどうしたらよいでしょうか?
602:名前は開発中のものです。
15/12/15 10:07:44.89 uyndtwRG.net
>>568
transformのメンバ変数は直接書き換えることが出来ない。
vector3の値を変える時はvector3同士でないといけないから、こういう書き方になる。
603:584
15/12/15 13:23:33.44 dXUWUNx8.net
>>585
ブロック消さないようにしても軌道は同じでした
604:名前は開発中のものです。
15/12/15 13:40:00.52 o8J25P/W.net
>>588
恐らく>>585が言った通りもうひとつ上のブロックにも当たっててそこに
跳ね返ってるのだろう
つまり同時に複数のブロックと当たってる
そこで一案だがまずボールに当たったブロックをすべてプールする
そしてプールしたブロックの中からボールとの位置関係に照らし合わせて適切な
あたるブロックを選んでそれを消しながらボールを反射させるというのはどうか
605:名前は開発中のものです。
15/12/15 13:49:15.86 o8J25P/W.net
>>589
やっぱこの方法良くないね
先に上のブロックに当たった場合変な挙動になる
一つのブロックの上辺、下辺、左辺、右辺のどれに当たってるか検知するほうが
良いと思う
606:名前は開発中のものです。
15/12/15 14:57:28.55 Aeg7fYna.net
ブロック崩しの問題って、ブロックとブロックの間に隙間があるから起きてる問題なんだよね?
これって隙間に見えないブロックを詰めてやれば解決するのかな
607:名前は開発中のものです。
15/12/15 15:53:04.81 1PuSfyAW.net
隙間があるからよりもむしろ計算精度や頻度の問題だろう。
速度を変えると大丈夫な場合があるのだとすれば
物理特性マネージャやタイムマネージャの設定を見直してやれば解決する場合もありうる
608:名前は開発中のものです。
15/12/15 16:37:29.85 PujoCYBK.net
当たり判定の間隔と処理順の問題やね、図にすると以下の様な感じ縦軸は時間
物理演算(ここでは当たってない)
↓
↓ここでBに当たるが判定はまだされない
↓
↓ここでAに当たるがこれはBにめり込んでいる状態
↓
物理演算(ABと当たった判定、Aが先に処理されてる)
実行環境の処理能力が許すなら>>592の言う通り判定の頻度を上げればある程度改善すると思う
厳密にやろうとすると同時に当たった場合にちょっと工夫が必要になるかな
609:名前は開発中のものです。
15/12/15 16:48:56.08 7/E0miQ5.net
Edit->ProjectSettings->Time->FixedTimesetp を0.01 (100fps)あたりにすればいいんじゃね
PCなら問題ないでしょ
610:名前は開発中のものです。
15/12/15 16:56:28.86 PujoCYBK.net
Collision Detectionの変更で解消したりしないかねこれ
611:584
15/12/15 18:46:18.90 dXUWUNx8.net
みなさんありがとうございます。
>>594
0.01でマシにはなったんですが、続けているとやっぱりたまに発生します
精度を上げると確率減っていきました
>>595
そこらへんいろいろいじったのですが変わりませんでした。
Rigidbody2D版だとよくなったりしました(こっちも出るときは出る)
612:名前は開発中のものです。
15/12/15 20:00:34.18 X0IxInAK.net
質問です。
Lightwaveでエンベロープとマテリアルを適用しまた、キーフレームでアニメーションをつけたモデルをFBXでunityにインポートし
vuForiaを利用してARで表示しようとしているのですが、
ビルドして実機で表示してみるとエンベロープとマテリアルが適用されていません。
Unity上でアニメーションを再生していた時は適用されていました。
理由がわかる方いましたら教えていただけますでしょうか。
613:名前は開発中のものです。
15/12/15 20:37:30.30 ilr73Fja.net
2Dゲーム制作しています。
SpriteRendererが複数集まってできているアニメーションするキャラクターがいますが、
このrootあたりにスクリプトをつけて一括で色変更ってできますか?
色反転や全体的に明るくするなどです。
無敵状態の表示などに使います。
シェーダーってこういうときに使うのかなと想像してますが・・・
614:名前は開発中のものです。
15/12/15 20:42:34.04 PX05T8Gm.net
>>598
2Dのチュートリアルにまんまな例があった気がする
URLリンク(github.com)
> 第11回-エネミーのHP、弾の攻撃力、アニメーションの追加
> 11.2 ダメージを受けた時の表現
615:名前は開発中のものです。
15/12/15 22:20:21.99 7/E0miQ5.net
>>598
一括Color操作は自前でコンポーネントを作ったほうが楽だよ
親から一括でやるか、子からrootを見るかは実装次第で
616:名前は開発中のものです。
15/12/15 22:37:57.21 Pvh48dzj.net
今晩は。毎度お世話になっております。
座標99999たとかでキャラコン貼り付けたcubeがカタカタするんですが
そういうものでしょうか。
617:585
15/12/15 23:19:26.28 tajp4kV9.net
やっぱ>585の方法じゃダメだったかー。
それでうまくいくなら一番楽な方法だったのに。残念。
>>584
ブロックを大きくする(ボールを小さくする)ことで、隣のブロックの角に当たる確率を減らすとか、
必ず1マス以上あけてブロックを配置することで、変な方向に反射しても仕方ないとプレイヤーに思わせるとか、
更に姑息な方法はどうだろうか、ダメか。
618:名前は開発中のものです。
15/12/15 23:39:43.60 1PuSfyAW.net
>>601
floatってのは有効桁数が7桁だからあと1で六桁という数になると小数点以下は事実上1桁しか使えない。
座標0.1単位程度でしか動かなくなるってこと。
619:名前は開発中のものです。
15/12/16 00:03:14.70 j+S5csIr.net
uGuiでCanvas以下のレイヤーにマウスの位置に2Dオブジェクト生成しようと思ったのですが
Input.mousePositionで取得した値だと微妙にずれた座標が生成されてしまいます。
左下原点にして右上でタッチするほど座標がずれていくのですが、どうしたら正しい値を取得できるのでしょうか?
620:名前は開発中のものです。
15/12/16 00:06:03.15 eYf8fnNA.net
URLリンク(docs.unity3d.com)
割と変換負荷あるからプロファイラーには注意してね
621:名前は開発中のものです。
15/12/16 00:16:48.31 2EXzHSA/.net
>>603
ありがとうございます。
なるほど有効桁数ですか。
本質的な問題のようなので
あまり大きな座標にならないように作りたいと思います。
622:名前は開発中のものです。
15/12/16 00:40:38.94 VAD6hGXi.net
Input.GetButtonについての質問なのですが、
例えばオート連射�
623:フような物を実装しているのですが、 ボタンを押下している状態で、 現在のステージをloadLevelでリロードすると、 ボタンを押しているのにも関わらず、 ボタンを押している事を判定してくれないのですが何故でしょうか (日本語やばかったらすみません) つまり、オート連射のボタンを押しっぱなしにしたまま、 ステージをリロードしても、そのままオート連射していて欲しいのですが、 どうしたら良いでしょうか
624:名前は開発中のものです。
15/12/16 02:30:43.20 YpuaDswn.net
>>607
どうやって連射の実装してるんだい?
フラグでやってるんならSceneが変わったときに連射用のフラグをいったん下ろしてやらなくては。
625:名前は開発中のものです。
15/12/16 02:37:22.60 f8gP/AkE.net
FixedJointでくっつけたゲームオブジェクトが、オブジェクトを動かすとバラバラになって高速で移動しながら飛んでいってしまいます。
RigidbodyのDragなどを高い数値に変更してもその現象は改善されないのですがなぜでしょうか…?
626:名前は開発中のものです。
15/12/16 09:28:03.07 kqjfOMz3.net
ゲームビュー(できれば任意のカメラ)の映像を一時的に静止画にして、
それをゲーム内で再利用する場合、どうやるのがスマートかな?
具体的な状況としては、
たとえばボス撃破の瞬間を切り取って、エンディングで表示させるとか。
楽に使えるなら、ポーズ画面なんかでも使いたいという人も居るかもしれない。
(1)Application.CaptureScreenshotで保存してから読み込む
(2)シーンの追加読み込みを行って、シーンをまるごと静止画っぽく表示する
(3)各オブジェクトの位置などを何らかの方法で保存しておき、再現する
というのをぱっと思いついたが、第4の選択肢は無いものかなって。
627:名前は開発中のものです。
15/12/16 10:00:36.34 Vb3Sl3S3.net
Texture2D.ReadPixelsでスクリーンからテクスチャに直接引っこ抜くという手はある
レンダーテクスチャがPro版でしか使えなかった頃はオフスクリーンレンダリングで割と使われていた手法ではある
URLリンク(docs.unity3d.com)
628:名前は開発中のものです。
15/12/16 10:48:18.99 LkcR1T/m.net
つか何でRender Texture使わないの?
629:607
15/12/16 11:31:10.32 VAD6hGXi.net
>>608
単純にGetButton("hoge")がtrueなら連射するようにしています
630:名前は開発中のものです。
15/12/16 11:50:10.30 HZkFOsWS.net
他人が失敗する様な環境を作った自分に非が無いとでも?
631:名前は開発中のものです。
15/12/16 15:04:03.90 o0yPHZmn.net
どなたか教えてください。
シーンが切り替わってから2秒後にBGMを流したく、以下のようなスクリプトを書いたのですが、
再生されません。どこか間違っているのでしょうか?
unity5.2.3f1を使っています。
float timer;
AudioSource audioSource;
void Start () {
audioSource = gameObject.GetComponent<AudioSource>();
timer = 0;
}
void Update () {
timer += Time.deltaTime;
if (timer > 2.0f) {
for(int i =0; i < 1; i++){
audioSource.Play ();
}
}
}
632:名前は開発中のものです。
15/12/16 15:10:24.68 i1u9PnLV.net
>>615
どうもif (timer > 2.0f) {の文で2.0f以降毎フレーム再生開始が掛かってる状態なんじゃないのか?
俺だったらtimerが2.0f超えた時点でフラグをオンにするという構成にする
633:名前は開発中のものです。
15/12/16 15:15:11.21 Vb3Sl3S3.net
>>612
レンダリングを一回余計にまわさなきゃならんのと
個人的にTexture2Dの方が使い勝手がいいからだな
レンダーテクスチャでやる場合は以下でおk
任意のカメラ.targetTexture=renderTexture;
任意のカメラ.Render();
任意のカメラ.targetTexture=null;
634:名前は開発中のものです。
15/12/16 15:48:31.15 A3RTiMr9.net
>>615
>>616の言ってる通りに
再生されないんじゃなくて何回も連続して再生されすぎててまともな音が出てないだけ
つかデバッグに仕方をまず覚えろ、playの下にDebug.Log(hoge);とか入れとけば何回も再生されてるのがわかるだろうに
635:名前は開発中のものです。
15/12/16 16:09:15.66 oULklXcL.net
Liicaが出しているアプリ「Q」のようにタッチの軌跡をオブジェクト化して表示し、そこに動的にcolliderをアタッチしたいと考えています。
現在はLine Rendererで線を描画し、タッチされた座標をpolygon collider 2Dのpathに設定しようと考えて作業していましたが、うまくいきません。他になにか適切な方法はないでしょうか?
636:名前は開発中のものです。
15/12/16 16:53:23.91 Vb3Sl3S3.net
>>619
上手く行かない時はどう上手く行かないか書かないとエスパー回答しか出来んよ
推測するにPolygon Collider 2D は閉じたパス(面)である必要があるが、タッチした点は開いたパス(線)だから上手く行かないんだと思うわ
タッチした点pの左右に線の太さの1/2だけずらした点p1,p2を算出して、描画された線を囲む様なパスを生成すればいいんでない?
まあEdge Collider 2D使うと幸せになれるかもしれない
URLリンク(docs.unity3d.com)
URLリンク(docs.unity3d.com)
637:名前は開発中のものです。
15/12/16 21:47:00.93 t4TQTjE8.net
>>620
ありがとうございます
上手くいかない理由はおっしゃる通りの原因だと思います
Edge collider、試してみます
638:名前は開発中のものです。
15/12/16 21:52:38.12 7BgYgE6R.net
>>584
そもそも物理演算必要?
俺だったら進行方向に対して現在地から移動先へのCapsuleCast飛ばして
当たったコライダーとの放線使ってベクトル反転でやるかな
639:名前は開発中のものです。
15/12/16 22:09:03.18 ndTWa9K3.net
物理いらないならもうパズルゲームみたいにセルを2次元配列化で管理した方が手軽に望んだ挙動作れると思うよ
640:名前は開発中のものです。
15/12/17 01:00:33.35 9sQ34Jc8.net
unityいじり始めて大抵みんなブロック崩し作ると思うけどブロック崩しって物理演算と
相性良くないよね
当たり判定はエンジンに頼るとしても玉の挙動は自分でコーディングした方がいい
641:名前は開発中のものです。
15/12/17 01:54:57.82 NVfT1vq4.net
ブロック崩しなら本家の公式にあるこれが一番判りやすいよ
URLリンク(unity3d.com)
642:名前は開発中のものです。
15/12/17 02:25:48.51 i6ql7oPG.net
Unityでenterキーを押すと
GameウィンドウのDisplay 1タブが反応してしまいます。
Displayタブの非表示もしくは反応させないようにする方法は
ないのでしょうか?
643:名前は開発中のものです。
15/12/17 11:39:02.64 42EN6m0T.net
公式の3Dの真似をして以下のコードを書くとエラーになります・・。
どなたかわかる方ご指摘お願いします><
void FixedUpdate(){
float x = Input.GetAxis (
644:名前は開発中のものです。
15/12/17 11:40:44.32 42EN6m0T.net
void FixedUpdate(){
float x = Input.GetAxis ("Horizontal");
float y = Input.GetAxis ("Vertical");
Rigidbody rb = GetComponent<Rigidbody>();
rb.AddForce (Vector2.up * x);
}
645:名前は開発中のものです。
15/12/17 11:43:47.82 42EN6m0T.net
627,628です。
連投申し訳ないです・・・
正しくはこちらです。
void FixedUpdate(){
float x = Input.GetAxis ("Horizontal");
float y = Input.GetAxis ("Vertical");
Rigidbody2D rb = GetComponent<Rigidbody2D>();
rb.AddForce (x,y);
}
646:名前は開発中のものです。
15/12/17 12:29:43.51 9sQ34Jc8.net
>>629
GetComponentってgameobject.GetComponent無しで呼び出せたっけ?
俺はそうしてるけど
エラーメッセージも書いてくれよ
647:610
15/12/17 14:03:48.31 5ZD2RIjV.net
>>611>>612>>617
ありがとうございます。
ずっとscreenshotやcaptureといった単語で調べていたため
それらのメソッドに辿りつけませんでした。お恥ずかしい。
648:名前は開発中のものです。
15/12/17 15:53:38.78 H/PVOEMJ.net
>>629
Rigidbody2D.AddForce の引数はVector2とForceModeだから引数の型が違うって言われてるんじゃない?
エラーメッセージと公式のリファレンスは読む習慣付けた方がいいよ
649:名前は開発中のものです。
15/12/17 16:39:56.32 NVfT1vq4.net
>>629
突っ込みどころが多すぎだけど多分こんな感じでうごかしたかったんじゃね
その状態ならひたすらチュートリアルやるのが一番の近道だよ
public Rigidbody2D rb;
void Start() {
rb = GetComponent<Rigidbody2D>();
}
void FixedUpdate() {
float x = Input.GetAxis ("Horizontal");
float y = Input.GetAxis ("Vertical");
rb.velocity = new Vector2 (x,y);
// rb.AddForce(new Vector2 (x,y));
}
650:名前は開発中のものです。
15/12/17 17:11:46.11 ObBFCLHN.net
>>629
その書き方で間違っているのは
rb.AddForce (x,y);
の部分で
rb.AddForce(new Vector2(x,y));
と書かねばならないってだけ。
GetComponentはgameObjectなしでも使える。
GameObjectとComponentはObjectから派生してそれぞれが
GetComponentを設けているので両者は本来同じではない(実際には同じだろうが)
651:名前は開発中のものです。
15/12/17 17:37:47.81 0OdKeQMj.net
非常に初歩的な質問で申し訳ないのですが、new Vector3(1.1.1)とは毎フレームごとに()の中の値を加算していくということであってるんでしょうか?
652:名前は開発中のものです。
15/12/17 17:46:22.58 ObBFCLHN.net
>>635
言語の勉強から始めろ…
Vector3はUnityEngineで定義された構造体だ。
newはそのクラス、もしくは構造体のインスタンスを作る、ということだ。
インスタンスってのは何かっていうとメモリ上にその形式に沿って領域を確保するってことだ
653:名前は開発中のものです。
15/12/17 19:55:08.25 0OdKeQMj.net
>>636
すいませんC#の勉強してから出直してきます・・・
654:名前は開発中のものです。
15/12/17 20:13:39.37 lGOuvxAK.net
>>616、>>618
返事遅くなって申し訳ない
Debag.Logしてみたら何度も再生されてたみたいです。616さんの言ってるようにフラグをオンにする形で上手くいきました。
ありがとうございます。
655:名前は開発中のものです。
15/12/17 20:19:49.64 H/PVOEMJ.net
>>635
なんというか見たまんまなんだけどな
new Vector3(1,1,1);
↓
新しい3次元ベクトルを(1,1,1)で作る
C#の絵本あたりでざっくりと概念を理解するのがいいかもね
APIの使い方は知らなくてもリファレンス見れば何とかなるが
概念が理解出来てないと応用が効かないしソース読んでも理解出来ないから
効率良く学習するには基本的な概念を理解すること
これさえ身についていれば他の言語やゲームエンジンに移っても苦労しない
656:607
15/12/17 20:46:23.59 /vN0R3NP.net
>>613
誰かおねがいしますー
657:名前は開発中のものです。
15/12/17 21:11:58.46 0OdKeQMj.net
>>639
自分も新しいベクトルを作るって言うのはなんとなくわかるんですけど次のプログラムがいまいち納得いかないんですよね
void Update () {
var v = new Vector3 (0.1f, 0.1f, 0.1f);
transform.Rotate (v);
}
これだと0.1度の位置でピタッと止まりそうなんですけどオブジェクトがゆっくり回転するんですよね・・・
658:名前は開発中のものです。
15/12/17 21:16:51.56 ObBFCLHN.net
>>641
それはRotate()っていう「回転させる関数」にその値を渡しているからだ…
だから毎フレーム回転する。
transform.rotation.eulerAngles=v;
ってやれば0.1度になる
659:名前は開発中のものです。
15/12/17 21:58:44.76 0OdKeQMj.net
えーっと、つまり毎フレームごとに()の中の値とそれの元になったVector3を破棄(メモリ開放?)するからnew関数を使って毎回作り直すってことですかね?
660:名前は開発中のものです。
15/12/17 22:07:57.57 H/PVOEMJ.net
>>641
なるほどUpdateが毎フレーム呼ばれる関数だってとこを理解してないんだな
void Update () {//毎フレーム
var v = new Vector3 (0.1f, 0.1f, 0.1f);
transform.Rotate (v);//vだけ回転する
}
仮に60FPSで実行されていれば毎秒60回これが実行されるってことだからそりゃ
661:あぐるぐる回るだろ http://docs.unity3d.com/ja/current/ScriptReference/MonoBehaviour.html ここのメッセージの項目の一番下 http://docs.unity3d.com/ja/current/Manual/ExecutionOrder.html ここもざっくり見ておくといい
662:名前は開発中のものです。
15/12/17 22:31:26.52 NVfT1vq4.net
まあスクリプトマニュアルにある例文スクリプトを動かしてみるのが一番だな
その例ではvar v = new Vector3 (0.1f, 0.1f, 0.1f); は毎回同じ値しか生まないからUpdateでやる意味はないな
あとC#でvarは止めようぜw
663:名前は開発中のものです。
15/12/17 22:42:18.10 CLdinnog.net
>>641
もうちょっと関数とか定義とか調べてみたほうがいいねw
とくに、あれ?と思ったときこそ念入りに
664:名前は開発中のものです。
15/12/17 22:43:24.00 0OdKeQMj.net
>>644
ありがとうございますマニュアルとか初めて知った・・・
>>645
すいませんネットで見つけたものをコピペしただけだったので・・・
varはバリューの略?だとかってに思ってるんですがC#だと何がいけないんでしょうか?
665:名前は開発中のものです。
15/12/17 22:44:58.16 5ZD2RIjV.net
ば、value……
666:名前は開発中のものです。
15/12/17 22:49:26.89 CLdinnog.net
>>645
ちょうどC#スレでも話題になってたけど最近はvarが主流になりつつある(らしい)
まあ公式のC#プログラミングガイドで推奨されてたりもするし
667:名前は開発中のものです。
15/12/17 22:50:46.47 0OdKeQMj.net
やばい恥ずかしさで死にそう
変数とか書いてあるの見て勝手にfloat見たいなもんと勘違いしてたみたいだ・・・
668:名前は開発中のものです。
15/12/17 22:51:23.35 CLdinnog.net
訂正
公式のC#プログラミングガイド
↓
MSDNのC#プログラミングガイド
669:名前は開発中のものです。
15/12/17 22:57:39.91 CLdinnog.net
>>650
変数宣言時に、「代入する値を参照して型を決める」のがvarだから、
「float見たいなもん」という点では間違ってはいないと思う
変数宣言時に代入するのが文字列ならstringとしてコンパイル時に型を決定してくれる
670:名前は開発中のものです。
15/12/17 23:09:58.46 H/PVOEMJ.net
>>647
C#でvar使うなってのもかなり偏った考え方なので鵜呑みにしない様にw
特に今回のような右辺を見れば誰が見てもVector3だということが明らかな場合はvar使う方がいい
例えば仕様変更でVector3をVector2に変更する場合を考えると
明示的型宣言の場合右辺左辺の両方を変更する必要があるがvarの場合右辺のみの変更で済む
誰が見てもわかる場合には冗長なコードを書くと読みにくさの原因になるからvarでいい
逆に関数の戻り値など型が一見してわからない場合はvarで受けてしまうとその変数の型が何かを理解しにくくなるから明示的型宣言した方がいい
var v=getValue(); //型がわからん
数値リテラルなども誤読を生みやすいからvarは避けた方がいい、例えば…
var a=3;
var b=.3;
var c=3f;
var d=3l;
上からint,double,float,longだがこうなるともう嫌がらせに近いw
あとで読んでわかりにくいコードは無駄な手間を増やすから避けるべきというお話
671:名前は開発中のものです。
15/12/17 23:22:47.87 42EN6m0T.net
629です。
色々なご指摘ありがとうございます…
new Vector2() で動くようになりました!
なぜ書かないといけなかったのかを考えたいと思います。
ありがとうございました
672:名前は開発中のものです。
15/12/17 23:47:01.98 0OdKeQMj.net
つまりvarは機械側が空気読んで変数の変わりをやってくれる
けど>>653見たいに人間には片別が付きにくい場合もあるからそこのへんは気をつけて使えよってことか
673:名前は開発中のものです。
15/12/17 23:56:05.25 CLdinnog.net
「変数の代わり」じゃなく「変数の型の決定」な
かなり意味違うから気をつけて
自分の中では後者の意味で書いたんだろうけど他の人にとっては別の意味になるよw
674:名前は開発中のものです。
15/12/18 00:10:10.65 Q3Oo75qC.net
みなさん今晩は。
先程からprofilerを眺めているのですが
structをKeyにもつジェネリックなdictionaryのtrygetvalueを呼んだ時にdefaultcompareでgc.collectが走ってしまい結構なオーバーヘッドになっています。
これはdictionaryを使う上で避けられないものなんでしょうか?
ちなみにstruct側はEqualをオーバーライドして等価判断を実装してます。
unityの質問というよりはc#な気がしますが
お願い致します。
675:名前は開発中のものです。
15/12/18 00:10:40.79 B6RkM70a.net
型推論はコード見てて分かり難いからあんまり好きじゃないなー。
型見てどういう働きさせるか考えるし。
676:名前は開発中のものです。
15/12/18 00:18:39.03 y4yBucq8.net
代わりと書くなら、「型指定の代わりをやってくれる」かな
これも違和感あるけど
677:名前は開発中のものです。
15/12/18 09:40:30.69 uooFc2ru.net
>>657
GetHashCodeはオーバーライドした?
Dictionary<TKey,TValue>の場合キーマッチングにHashCodeを使う
構造体GetHashCodeはobject型のを使う訳だけど値型で明示的な実装がされていない場合これにはボックス化が必要になる
キーマッチングが呼ばれるたびにobject型へのボックス化が走るからオーバーヘッドが大きいんだと思う
ボックス化せずにキーマッチングが出来るようGetHashCodeをオーバーライドすればかなりパフォーマンスが違って来ると思うよ
678:名前は開発中のものです。
15/12/18 10:34:13.62 B6RkM70a.net
>>607
どなたかわかりませんかね
679:名前は開発中のものです。
15/12/18 12:09:00.66 Q3Oo75qC.net
>>660
ありがとうございます、なるほどボクシングですか。。
gethascodeはオーバーライドしてましたが
equalはobject引数のやつでした。
dictionaryのコンストラクターにジェネリックのコンペアラーを作って指定しとけばボクシングなしで比較させられるイメージなんでしょうかね。帰宅したら試してみます。
680:名前は開発中のものです。
15/12/18 12:11:09.10 gwBKg3dx.net
>>658
newなら型が一目瞭然だし、
関数の戻り値で代入なら書いてもいいけど、インテリセンスが効くんだから全く必要ない。
681:名前は開発中のものです。
15/12/18 12:46:50.67 uooFc2ru.net
>>661
答えが貰えないのは答えがわからんからでなく質問がわからんからだからw
要求するエスパーのレベルが高すぎなんだよ
少し問題を切り分ける努力と情報がないとなんとも言えない
まずレベルをロードした後にInputからボタンの状態は正しく取れてるのか?取れてないならロード前の値を死なないオブジェクトにキャッシュするなどして回避しろ
次にレベルをロードした際に前のシーンの中身が破棄されて参照が切れてたりしないかチェック
レベルがロードされた際に破棄される古いインスタンスを参照していた場合、レベルがロードされた時に参照をとり直さなきゃならん、推測だがここが怪しい
エラーを吐いてるのかどうかすらわからん、実装も全くわからんでは答えられんのも仕方ないだろ
682:名前は開発中のものです。
15/12/18 13:28:08.07 ZJssySOS.net
助けてください!
Unity5.3.0 のMac版をインストールしたところ、UIの文字がつぶれてしまって使えません。
具体的には、
つ URLリンク(www.dotup.org)
上図のようになってしまったのですが、これを直す方法を知りませんでしょうか?
検索してみましたが、monoDevelopの文字化け対策ばかりヒットしてしまい、解決法が発見できません。
もう、いい加減ハゲそうです…
【環境】
MacOSX 10.9.5
メモリ8GB
iMac2010年モデル
お願いします
683:名前は開発中のものです。
15/12/18 15:50:46.63 gwBKg3dx.net
unityのフォーラム使え
684:名前は開発中のものです。
15/12/18 15:54:23.89 LlLoZF5i.net
>>665
基本的にUnityにはエディタUIのフォントを選んだりサイズを調整したりという手段はない。
つまりOS側の何らかの設定をそのまま使ってるということ。
MacはよくわからんからよくわからんがMacOS側の何かをいじるしかないだろう
685:名前は開発中のものです。
15/12/18 17:40:17.08 uooFc2ru.net
中身全く見てないがこんな事してる奴はいるらしい
Unityはエディタの改変は割と自由に出来るのもいいところ
URLリンク(github.com)
686:名前は開発中のものです。
15/12/18 19:46:53.46 vovoyLY6.net
>>665
とりあえず5.2にしてみたら?
それでも変わらなければハード側の問題だろ
687:名前は開発中のものです。
15/12/18 21:17:02.68 eC4OHSbc.net
どなたかAndroid6以上使ってる人いますか?
apkインストールできなく無い?
688:661
15/12/19 06:18:02.26 YGsi/2ht.net
>>664
すすすみません~
ありがとうございます。試してみます。
Update(){
Debug.log( Input.GetButton("hoge"));
}
とあった時に、普段はhogeボタン押している間はtrueになりますが、
hogeを押したまま、loadlevelでシーンを読み込むと、
hogeを押したままなのに、falseになってしまうという感じです。
(getButtonは押すという過程が無いと反応しない?)
689:名前は開発中のものです。
15/12/19 08:35:09.54 3jFWitgF.net
>>671
まさに>>664がエスパーした通りだったな
690:名前は開発中のものです。
15/12/19 14:01:49.13 DxhqkfnX
691:.net
692:名前は開発中のものです。
15/12/19 19:16:41.13 BNrflbDt.net
今androidでゲームを作ってるんですが困った状態に直面してます
macのunity上ではなんの問題もなく動作するんですがandroidで動かすと
画像が乱れます
URLリンク(m.imgur.com)
これが普通の状態でパーティクルやオブジェクトを生成すると
URLリンク(m.imgur.com)
こうなります
関係無い部分が乱れてるのがおわかりでしょうか?
どうしたら乱れないように出来るかわかりますでしょうか?
unityは5.3でandroidはnexus9を使っています
693:名前は開発中のものです。
15/12/19 19:32:53.04 GPbneO/a.net
スクショの撮り方からやり直せ
目が痛くなるような画像貼るな
694:名前は開発中のものです。
15/12/19 19:55:20.13 BNrflbDt.net
>>675
申し訳ありません
やり直しました
URLリンク(m.imgur.com)
これが正常な画面で
URLリンク(m.imgur.com)
これが乱れた画面です
枠の部分がおかしくなってるのがおわかりでしょうか?
695:名前は開発中のものです。
15/12/19 20:08:40.65 KkGdz7kr.net
>>676
ごめん、どこがおかしいのかわかんないけど
ピクセルパーフェクトで作ってるから自動的にサイズ調整してくれないってこと?
696:名前は開発中のものです。
15/12/19 20:39:13.89 BNrflbDt.net
>>677
フィールドの上部と左右にスロープ気味の枠を設置してるんですけど下の画像では透けて見えたり
変なところに三角形のポリゴンが出たりしてるんですけどわかりませんか?
動いてる画面だと凄くガチャガチャとした変な感じになります
697:名前は開発中のものです。
15/12/19 21:54:58.14 esdi3SKN.net
>>676
描画されてないポリゴンがあるのは説明されなくてもわかるがこれだけではなんとも判断つかんね
正面の斜面を見る限り面は2つの三角ポリゴンに分割されているが片方の三角だけが描画されてる
よく見ると裏目側のポリゴンが描画されてるがこれはスロープがボックス状の面を構成していると想像するなら本来裏向きで描画されないポリゴンのはずだ
ここから考えると、何らかの理由でポリゴンの面裏がおかしくなってると推測できるがこの画像からわかるのはここまでだな
あと一枚のポリゴンがえらくでかいのはちと気になる
698:名前は開発中のものです。
15/12/19 22:11:18.50 BNrflbDt.net
>>679
ビルトインのブロックを使ってるだけなのでポリゴンのモデルがおかしいとは考えにくいのですが・・
>あと一枚のポリゴンがえらくでかいのはちと気になる
さっき試しにブロックを複数に分割して作ってみたのですが結果は同じでした
699:名前は開発中のものです。
15/12/19 23:16:47.00 BNrflbDt.net
自己解決しましたー
パーティクルを表示させる時scaleをいじってたのが悪かったみたいです
scaleをいじるのをやめたら正常に表示されました
700:名前は開発中のものです。
15/12/20 16:55:49.34 kKby6yTS.net
Prefabsについて質問
Prefab化した時にスクリプトでpublic 変数で指定したものが一部noneになってインスタンス化してもnoneのままなのですが
これはどういう規則があるんでしょうか?
例えばチュートリアルのsuvival shooterでplayerをPrebabにするとPlayerHealthのHealth SliderとDamage Image がnoneになります
audioclipのDeath Clipは指定されたのが残っています
Prefabに直接Health SliderとDamage Imageを指定しようとしても侵入禁止マークが出てできません
こういった場合は一般的にどうやって指定するのがいいんでしょうか?
701:名前は開発中のものです。
15/12/20 18:35:21.92 oUuZ6MJB.net
>>682
いつも通りチュートリアル見ずにエスパーするが
Prefabはヒエラルキーに存在しないからヒエラルキーにあるインスタンスはPrefabでは保持出来ない、アセットにあるものの参照は維持される
ヒエラルキーにあるものを参照したければInstantinateした後でスクリプトで参照をセットするといい
702:名前は開発中のものです。
15/12/20 19:02:45.82 kKby6yTS.net
早速ありがとうございました
やっぱりスクリプトでやるのが普通なんですね
安易にヒエラルヒーにある他のGameObjectをPublicで参照するのは止めたほうがいいのかな
とりあえずFindかFindWithTagで地道に参照します
703:名前は開発中のものです。
15/12/20 21:43:31.06 sxkN/Mdb.net
時代遅れ感が半端じゃない質問ですが・・・・
今Photon使って複数人対戦のアクションゲームを作成してまして、
カメラの描画範囲外はポジションの同期せず、範囲内に入ったら同期みたいなことをしようとしてはいるんですけど、
OnWillRenderObjectでカメラの範囲を見るのはわかるのですが同期するしないの設定ってスクリプトから変更することって可能なんでしょうか?
調べてみてもそういう記述が見つからなかったので・・・
ちなみにUnityのバージョンは5.0.4です
(他の方法がありましたらご指南いただければ幸いです m(_ _)m)
704:名前は開発中のものです。
15/12/20 22:06:52.53 Sx2eIhW1.net
unity5.3を32bitVistaで起動させる方法ってないですかね?
705:名前は開発中のものです。
15/12/20 22:26:27.37 oUuZ6MJB.net
>>686
動作環境がWindows7 SP1以上とあるから無理
706:名前は開発中のものです。
15/12/21 01:03:14.21 HVuMnboW.net
Unityで2Dの横スクロールアクションゲームを作っています
乗ると流されるコンベアのようなギミックを作りたいのですが
transform.Rotateで回転させても、スプライトの画像だけが回転して
コライダー自体は回転していないようでした
このギミックを表現するにはどうしたらいいでしょうか?
707:名前は開発中のものです。
15/12/21 02:20:26.38 Ybtucx/E.net
>>688
コリジョンもちゃんと回転はしてるはず。
boxコライダーを仮でつけてみたらわかると思う。
回転させてさらに座標も移動させないといけないよ。
オブジェクトは回転だけしても進まない。
物理で力を加えたら回転も移動もするけど、思い通りに動かすのはちょっと慣れないといけない。
708:名前は開発中のものです。
15/12/21 12:27:34.28 IMaaS1Ne.net
>>665
MacOSX10.9.5を使っているけど
こっちも同じ文字化けする。
5.3.1にしても変わらないので5.2を使っている
709:名前は開発中のものです。
15/12/21 16:19:18.73 00UsknoA.net
Resourcesファイルにcsソースを入れた場合使えなくなるの?
Resourcesファイル内のプレハブとセットでcsソースを一緒に入れれば
見やすいからそうしたいんだかどうなの?
710:名前は開発中のものです。
15/12/21 17:26:44.93 76aWrUGL.net
android6.0に対応させるにはsdkマネージャーから6.0をダウンロードしたら自動で反映されるのでしょうか?
playerSettingを見ると選択できないのでうまくできてないように思えますが何かほかの手順が必要ですか?
711:名前は開発中のものです。
15/12/21 20:06:33.52 jcVDj2Nz.net
すみません音の再生についての質問です。
リバーブのかかった音源を以下の様にループさせたいと思っています。
時間の流れ→
音音音残響
□□□音音音残響
□□□□□□音音音残響
ループするべき長さ(length)はわかっているのですが、
このlengthのタイミングでループする方法と、ループした時に過去の音を消さない方法がわかりません。
よろしくお願いします。
712:名前は開発中のものです。
15/12/21 21:04:53.33 r9cjdiXD.net
音源にリバーブが含まれてるならどうしようもないだろ
713:名前は開発中のものです。
15/12/21 21:11:41.51 FIXEWsvQ.net
DTMスレかと思ったらUnityスレだった。自作BGMならループ先にも残響音が含まれるように完全ループで作るしかないけど素材なら無理だろ。
あと洋ゲーやれば分かるけどきっちりループするBGMが流れるのって和ゲーやチップチューンくらい。
残響とか含まれてるインストゥルメンタル音源はきっちりループせずにアウトフェードしてからまた最初からってのが普通だよ
714:名前は開発中のものです。
15/12/21 21:12:18.18 4ywppTKb
715:.net
716:名前は開発中のものです。
15/12/21 21:24:15.40 CnyXX6yb.net
>>693
そういうことしたいんなら、イントロからループ直前までのファイルと
ループする部分のファイル2つに分ける
で、最初にイントロからループ直前まで流してメインファイルに切り替えて
あとはループさせる
これなら残響音あっても成り立つ
Unityで出来るかは知らんが
717:名前は開発中のものです。
15/12/21 21:31:45.60 fSY+Htxz.net
>>691
Resourcesは入れたデータそのものが入る場所だからソースコード入れてもソースのママだぞ、コンパイル対象にならんのだ
718:名前は開発中のものです。
15/12/21 22:01:15.53 VTzw7brd.net
>>693
単純に>>696が正解、5からは無料で便利なAudio Mixerが使える
719:名前は開発中のものです。
15/12/22 00:36:17.24 WeDSI8vw.net
テキストファイルを独自拡張子で扱いたいのですができますか?
text.luaとかにしたいです
720:名前は開発中のものです。
15/12/22 01:05:48.40 OzXRBG3G.net
今androidで色々テストしてるのですがわからない事があります
今簡単なアニメーションをanimationウインドウで作ってオブジェクトを
動かしてるのですがunity上で実行しても普通に表示されるのですがandroid上で
実行させたらオブジェクトが表示されなくなります
動かすアニメーションと止まっているアニメーションを交互に作動させてるのですが
動いてる方でオブジェクトが消えます
つまり点滅状態になってる状態です
これは一体どういう事なんでしょうか?
721:名前は開発中のものです。
15/12/22 07:35:05.53 DtR0hO5a.net
>>700
URLリンク(docs.unity3d.com)
もちろんオフィシャルのドキュメント見た上での質問なんだよね?
もしかしたら StreamingAssets ならできる気もしなくもないけど、やったことないからわからん
722:691
15/12/22 11:00:12.63 ctbQFKPU.net
>>698
Resources内のデータはコンパイル対象にならないから
csソースは使えないってことでOK?
723:665
15/12/22 16:03:42.05 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:名前は開発中のものです。
15/12/22 16:16:51.81 cYA+N/u4.net
>>703
Resourcesフォルダに入れたものは生のデータとして扱われるからコンパイルが必要なものは入れても意味が無いのだよ。
Resources,Plugins,Standard Asset,Streaming Assetsの4つのフォルダは扱いがそれぞれ特殊なんでちゃんとドキュメント読んで理解しないとめんどくさい事になるよ
725:名前は開発中のものです。
15/12/22 17:25:20.37 ZXsrrg+T.net
5.3からAndroidのナビゲーションバー強制非表示になったけど、なんとかして出す方法ってある?
AndroidManifestのthemeとかいじってみたんだけど変わらなくてお手上げなんだ……。
726:名前は開発中のものです。
15/12/22 18:37:36.49 ctbQFKPU.net
>>698 >>705
サンクス
助かる
727:名前は開発中のものです。
15/12/22 18:41:28.75 ctbQFKPU.net
動的にプレハブのオブジェクトを生成して
そのオブジェクトにCanvasのサイズなど
上の階層のデータを取得する方法を教えて下さい
宜しくお願いします
728:名前は開発中のものです。
15/12/22 23:37:31.20 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:名前は開発中のものです。
15/12/23 00:17:07.19 mn9r6TJY.net
>>689
ご回答ありがとうございます!
コリジョンの回転は自分の誤解でした
現在はOnCollisionStay2Dでプレイヤーを動かしてとりあえず形としては解決しました
座標の移動という方法も調べてみたいと思います
730:名前は開発中のものです。
15/12/23 02:45:27.25 qUs7Km3p.net
PC用にビルドしたアプリケーションが起動出来ないのですが原因をどなたか知らないでしょうか…?
他の人にゲームを配布してプレイしてもらったところ無事に起動からゲームまでスムーズに出来ているようなのですが、自分のPCだと起動の辞典でできません。
exeファイルをダブルクリックしても読み込み状態を延々と続けたままになってしまいます
731:名前は開発中のものです。
15/12/23 02:53:39.96 BgHDeNsk.net
そんな古い壊れたパソコンは買換えような
732:名前は開発中のものです。
15/12/23 03:52:47.89 6SUXlka0.net
>>706
URLリンク(docs.unity3d.com)
これをfalseにすればいい
Android4.2までしか持ってなくて指摘されるまで知らなかったよ…
733:名前は開発中のものです。
15/12/23 04:22:31.95 qUs7Km3p.net
>>712
ゲーミングPCなのでスペック的もそこまで悪くないはずですが…
734:名前は開発中のものです。
15/12/23 16:04:13.12 qUs7Km3p.net
自己解決しました
原因はアイコンに使っていた画像だったようです
その画像を削除してみたところ無事に起動することができました
それでも自分のPCでは起動できないのに他人のPCでは起動できるのは未だにわかっていません…
735:名前は開発中のものです。
15/12/23 18:00:46.62 mpmfVyIv.net
ゲーミングPCをうたってるやつなんて、
スペックに無知な奴を騙すためにところどころ変なパーツつけてるぞ
20万円のPCに350Wの電源が付いてたなんて珍しくない
あんまり信用するなよ
736:名前は開発中のものです。
15/12/23 18:09:27.31 H0W75H/X.net
そのアイコン復活させるとまた同じ症状出る?
737:名前は開発中のものです。
15/12/23 18:48:49.94 qUs7Km3p.net
>>717
同じ症状でます
738:名前は開発中のものです。
15/12/23 19:30:41.11 eV/cz9Fn.net
非同期処理について質問です。
WWWクラスでサーバのAPIを叩いて、進行に必要なデータを取ってこようとしています(シナリオテキストとか)
───────
private string url = "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:名前は開発中のものです。
15/12/23 20:19:50.71 ex60S9BN.net
>>719
WWW使うなら概ねそれで問題ないと思う
通信前にApplication.internetReachabilityをチェック
WWWはIDisposableを実装してるからusingステートメントを使う
WWW.errorのチェックはループ抜けた後でいいかも
740:名前は開発中のものです。
15/12/23 20:42:37.42 eV/cz9Fn.net
>>720
ありがとうございます!
usingすごく参考になりました
errorについてはググってみたんですが、
どうもエラー終了した時にisDoneがtrueになってくれないようです
741:名前は開発中のものです。
15/12/23 22:49:24.68 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:名前は開発中のものです。
15/12/23 23:11:12.20 eV/cz9Fn.net
>>722
ありがとうございます
マニュアルとか読み直してたんですが、
isDoneとerrorの関係に関する資料がないんですよね…
ちょっとそれでやってみます!
743:名前は開発中のものです。
15/12/24 01:24:08.84 fVyPsAlC.net
全くの初心者なのですが、unityで作られた海外産のゲームをどうにかして日本語化することは出来ませんか?
744:名前は開発中のものです。
15/12/24 02:50:08.08 9xWq61T/.net
作者が日本語化を想定しないで作ったゲームを日本語化できる
超便利機能がUnityにあるかと言うことなら
そんなものはない
745:名前は開発中のものです。
15/12/24 03:00:15.31 b6nnDWP+.net
どうにかしてってレスの時点で草生えるw
746:名前は開発中のものです。
15/12/24 03:00:54.91 6r6456TK.net
ゲームに限らない話だけど、フレームワークによっては
文字列を外部ファイルに置いて読み込むのがスタンダードになってるものもあるらしいけど
Unityは、少なくとも標準ではそうじゃないからねぇ
747:名前は開発中のものです。
15/12/24 03:17:36.09 fVyPsAlC.net
文字列を日本語にしてフォント入れればどうにかなると思ってましたが甘かったようです
assetsファイルを開いたりしても見つからなかったので聞いてみたんですが駄目みたいですね…
ありがとうございました
748:693
15/12/24 03:49:11.47 1lQtknuT.net
>>694 >>695 >>696 >>697 >>699
遅くなりましたが回答ありがとうございました。
一応AudioSourceを複数用意して、ループのタイミングでもう一つという方針にしてみようかなと思います。
ただ、正確にn秒後に再生という処理がUnityでどうやるのか、ちょっとわかりません
749:名前は開発中のものです。
15/12/24 07:47:12.45 0vOVQYTb.net
Androidアプリで文字入力する際に画面全体が縮小されて
Unityデフォルトの青い背景が丸見えになっとる
いつの間にこの仕様になったのか知らんけど、この挙動やめれないかな?
750:名前は開発中のものです。
15/12/24 08:48:36.09 8tygBO8v.net
>>729
再生中のAudioSourceは現在の再生タイムを取れるはずだから、それをUpdateなりで監視してループのタイミングで再生すればいいんじゃない?
751:名前は開発中のものです。
15/12/24 13:12:26.08 DmqVAdXz.net
ユニティちゃんのCRSではanimationイベントを利用してaudio.play()呼び出してタイミング合わせてるね
752:名前は開発中のものです。
15/12/24 14:29:48.87 5azEH8wD.net
PUNのPhotonViewによるオブジェクトの表示を同期するやり方が分かりません
マスタークライアントが置いたオブジェクトを、他のプレイヤーの画面でも表示したいです
オブジェクト(Prefab)を作りのコンポにPhotonViewを追加
↓
オブジェクトのコンポにPhotonTransformを追加
↓
PhotonViewのObserverにPhotonTransformをアタッチ
↓
ルームに入ったあとマスタークライアントか判定してマスタークライアントならオブジェクトをInstantiateしてシーンに置く
上記方法をやってもマスタークライアント意外のプレイヤーの画面に表示されませんでした
間違いがあれば、教えて下さい
753:名前は開発中のものです。
15/12/24 15:12:15.83 J+FUoPhB.net
prefabはresourcesに、みたいなのなかったっけ
エラーとか出てない?
754:名前は開発中のものです。
15/12/24 15:38:51.33 6r6456TK.net
重力をあれやこれや弄りたいとかで
重力処理を自前での実装しなきゃならんとする。
とりあえず通常の重力と同じ挙動をさせたいとき
やり方って以下の方法で問題ないよね?
試した限りでは通常の重力と同じように動いて見えたが、細かい挙動はよくわからん
1. useGravityやgravityScaleを調整して重力の影響を無効化
2. Physics.gravityやPhysics2D.gravityの値(Vector3型/Vector2型)を取ってくる
3. FixedUpdate()の中でAddFoce()する。
755:名前は開発中のものです。
15/12/24 15:40:43.89 5azEH8wD.net
>>734
エラーは出ません
マスタークライアントの画面には正常に表示されます
PUNによる同期しないのであれば何の問題もないです
なので単にPhotonViewによる同期ができてない(手順ミス、やり方が間違っている等)のかと思います
756:名前は開発中のものです。
15/12/24 16:34:10.56 V8y/g7ct.net
>>735
AddForce()するのはいいがForceModeによっては全然違う動きになる事に注意
デフォルトはForceMode.ForceだからForceMode.Accelerationを明示的に指定しないとダメだと思うぞと
757:693
15/12/24 19:12:31.14 1lQtknuT.net
>>731
Updateのタイミングだと精度が低くて、
結構ずれずれなので、どうしゆかなーという感じです
758:名前は開発中のものです。
15/12/24 20:19:25.62 USbMBm3z.net
>>738
targetFrameRate の値を上げる、もしくはFixedUpdateの分解能を上げても遅延が気になるならUnityの標準機能だけじゃ難しいかもね
759:名前は開発中のものです。
15/12/24 20:31:55.51 3F4M1Qd0.net
4.6から5への移行です
再生中、rigidbodyのついた
760:GameObjectをSetActive(false)するメソッドが実行されると、 エディタごと落ちます。ログもエラーも出ません。 5のrigidbody関係で、ヒントでも些細なことでも何でもいいので情報くださいませ。 5のrigidbody周りは大量のバグが報告されていて、これもうゲームを作るとか以前の根本的な問題になってきそうなんですけど・・・w
761:名前は開発中のものです。
15/12/24 22:28:33.63 V8y/g7ct.net
>>738
それ多分呼ぶタイミングの問題じゃなくて呼んでから再生されるまでの遅延の問題じゃない?
762:名前は開発中のものです。
15/12/25 01:15:39.54 8Iucprok.net
マウスでクリックした画面上のゲームオブジェクトの座標やらスプライトやらの
情報を取得する方法って
・オブジェクトにButtonコンポをつけてOnClick()を使ってとる
・RayCastでとる
の2つが考えられるとおもうんですが、どっちが良いとか
どういう風に使い分けるべきとか、アドバイスが欲しいです
個人的にはButtonだと色んなオブジェクトにつけて回る必要があるし
付け忘れるとバグるので、RayCastで取る方がいいのかなと考えてますが、正しいですか?
763:名前は開発中のものです。
15/12/25 03:02:56.40 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:名前は開発中のものです。
15/12/25 05:00:02.85 8Iucprok.net
>>743
ありがとうございます
ButtonのOnClickって内部的にはRayCastを飛ばして評価してるって事ですか?
765:ネットワークエンジニア(プロ)です
15/12/25 08:40:29.64 lbZ74yN6.net
>>733
instantiateはunityのapiじゃなくて、photonのapiを使ってる?
766:693
15/12/25 08:52:05.37 A95/sZ+u.net
>>739
>>741
ありがとうございます。
FixedUpdateの周期上げるのは負荷になりそうな気もしますね。
UpdateでPlayするタイミングを上手く指定出来るん?
767:名前は開発中のものです。
15/12/25 09:40:11.41 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:名前は開発中のものです。
15/12/25 14:59:20.96 qIHjPLip.net
>>737
ありがとう、そういえばそうだった
手打ちだったかわ忘れてた
すげぇ今更だけど
ForceMode2Dの方にAccelerationやVelocityChangeは無いんだな
769:名前は開発中のものです。
15/12/25 17:56:33.86 B+X3y53z.net
どれにもあたってない場合の判定ってどうやればいいんでしょうか
マップチップでマップを作る2Dアクションで、地面との接地判定でジャンプ可否をできるようにしたいんですが
地面を1チップ毎に判定を用意し
キャラクターの足元にisTriggerで接地チェック用の判定を用意しました。
足元判定側からOnTriggerExit2Dを呼び出して離れた瞬間にチェックするようにしてましたが
地面接地したまま横移動した際に、前乗っていたブロックから判定が外れる際にも呼ばれてしまい、接地フラグが一瞬空中判定になってしまいます。
考え方が悪いのか、複数対象に対しての判定チェック方法があるのか、アドバイスお願いします。
770:名前は開発中のものです。
15/12/25 18:18:19.95 CtbAOxqw.net
接地フラグを用意すればいい
接地したらON、ジャンプしたらOFF
771:名前は開発中のものです。
15/12/25 18:25:31.75 pherXl+8.net
>>749
タグ付けといてコリジョンのタグが地面だったら、とかにすればいいんじゃね
772:名前は開発中のものです。
15/12/25 18:28:41.29 CtbAOxqw.net
あ、これだと落ちるとき困るのか
773:名前は開発中のものです。
15/12/25 19:10:58.52 CtbAOxqw.net
下方向に速度があれば落下中と判断するとか
774:名前は開発中のものです。
15/12/25 19:35:12.48 pherXl+8.net
そうか、ブロックってそういうことか。だったらコライダーのリスト作って
EnterしたらAdd,ExitしたらRemoveしてCountがゼロになったらどこにも当たってない、
とかでいいんじゃね
775:名前は開発中のものです。
15/12/25 20:25:54.70 cUBPDpkG.net
>>754
ありがとうございます、接地カウントの方法ならいけそうです、早速試してみます。
776:名前は開発中のものです。
15/12/25 20:35:39.90 LAUwLpIR.net
接地判定だけならリスト持たんでもintでカウントしておけばいいような気がする
777:名前は開発中のものです。
15/12/25 20:50:53.23 pherXl+8.net
単純なカウントで大丈夫そうならそれでもいいし
何かうまくいかないようならContainsで確認してAddすればいいかなと。
リストが長くなるとアレだけど数個程度までならそれほど負荷にもならないだろうし
778:名前は開発中のものです。
15/12/25 21:04:29.26 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:名前は開発中のものです。
15/12/25 21:37:23.33 qiT6tQcX.net
空中かどうかの判定はジャンプや落下(下方向の判定がなくなったとき)にフラグ持たせて、
ジャンプはジャンプ、接地は接地で処理を考えたほうが柔軟でいいんじゃないかな
これならジャンプ中や落下中に横から接したときの挙動もとりやすい
780:740
15/12/25 22:05:34.23 FiwShDy7.net
もっとヤバイバグだった
gameObjectの1番使用頻度の高いあるメソッドを特定の呼び出し方をするだけで100%クラッシュする、、、
報告上がってんのに中の人もスルー&沈黙www
一ヶ月たつけどもう開発会社何社か潰れてんじゃねーかな、、、w
781:名前は開発中のものです。
15/12/25 22:36:35.86 LAUwLpIR.net
>>760
質問じゃないなら本スレ行けよw
外部エンジン使ってる以上エンジン側にバグが混入するのなんか折り込み済みなのが普通だし、進行中のプロジェクトで安易にエンジンのバージョンをあげる事はあり得ない
実際仕事では未だ4.6も現役だし5系もバージョン違いで2つ入れてある
バージョン管理使わないというのもあり得ないから5に移行するにしてもブランチ切ってあるだろ
そういう最低限の安全対策も取れない所ならバグがなくても潰れるから安心していいw
勿体ぶった言い方をして煽るのは結構だがその程度で会社が潰れるとか言ってると素人丸出しで全く説得力がなくなるから気をつけた方がいいぞ
782:740
15/12/25 22:50:32.61 FiwShDy7.net
わかった気をつけるw
783:名前は開発中のものです。
15/12/25 22:51:19.10 UeCgI7Yq.net
5系4つ入れてるw
Androidのresフォルダが認識しないという壮絶な不具合あったときは胃がおかしくなるかと思ったよ
784:名前は開発中のものです。
15/12/25 22:57:43.03 GE3m8j15.net
今晩は。ちょっと聞きたいのですが
メッシュの動的生成をしていてmesh.colorsに
適当な値をセットしても反映される様子がありません。
もしかしてstandard shaderでは設定しても反映されない?普通は反映される?
初歩的な質問で申し訳ありませんがよろしくお願いします。
785:名前は開発中のものです。
15/12/26 00:48:46.66 d/yX6nUB.net
そのままでは反映されない。
シェーダにちょっと書き足す程度で反映されるようになるよ。
786:名前は開発中のものです。
15/12/26 02:37:11.63 DlkIHce8.net
UnityでC#のコードを書いた場合、どういう仕組みでiOSやAndroidで動いているのですか?
今までどのプラットフォームのmonoもフリーウエアとして公開されていると思い込んでいたため不思議に思っていませんでした
しかし、monoのiOS/Android版にあたるものはフリーで公開されていないと知って驚いています
Uniryは一体どのようにこの有料の壁を乗り越えて動いているのでしょうか?
787:名前は開発中のものです。
15/12/26 03:07:01.64 Q61tu/ro.net
Monoって.NET Frameworkの互換ソフトウェアのほうか
788:名前は開発中のものです。
15/12/26 07:45:40.02 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:名前は開発中のものです。
15/12/26 08:34:57.65 7/5f2376.net
>>768
.ToString(
790:名前は開発中のものです。
15/12/26 08:36:54.53 7/5f2376.net
なぜか本文が盛大に削られていた
しかも肝心な部分に入る前に・・・
>>768
ToString("00") で可能です。
791:名前は開発中のものです。
15/12/26 08:52:48.72 iSBjtkxw.net
>>770
ありがとうございます、できました!
そんなオーバーロードがあったなんて知りませんでした
792:名前は開発中のものです。
15/12/26 10:50:15.71 raK1t1yt.net
一人称視
793:点で、ダンボール箱の中から外を覗いているような感じにしたいんですが ダンボール箱のモデル内にカメラを設置してもダンボールが透けて外が見えてしまうんですが どうすればいいでしょうか??一人称視点はできているとおもいます。
794:名前は開発中のものです。
15/12/26 11:19:11.61 hqMElhSq.net
>>765
ありがとうございます。
なんとなく難しいなーと避けてたんですが
シェーダーのなかを眺めてみます。
795:名前は開発中のものです。
15/12/26 11:44:01.40 d/yX6nUB.net
>>772
ダンボールの内側のモデルを作る。
もしくはシェーダをダブルサイデッドに書き換える
796:名前は開発中のものです。
15/12/26 12:05:43.85 J2t5CeZp.net
>>766
普通にオープンソースなんじゃない?
Monoが有料という話がどこから出たのか知りたい
797:名前は開発中のものです。
15/12/26 12:39:33.51 I9x0dbOD.net
>>774
ありがとうございます!
シェーダを変えたらできました!
798:名前は開発中のものです。
15/12/26 12:51:11.14 DlkIHce8.net
>>775
確かにMono自体はオープンソースかつフリーで配られています
ただ、iOS向けの変換ツールやAndroid向けのランタイムは(体験版や機能限定版をのぞいて)有料のものしかないように見えてしまいますが・・・・その認識が間違えているのでしょうか
799:名前は開発中のものです。
15/12/26 12:59:10.15 d/yX6nUB.net
その有料の変換ツールを作ったところに変換ツールが作れるなら
Unity内部で同じようなもの作っていても何の不思議もないのではなかろうかw
800:名前は開発中のものです。
15/12/26 14:07:10.95 DlkIHce8.net
不思議じゃないにしても現実にはどうやってるのか気になるな
801:名前は開発中のものです。
15/12/26 14:18:30.39 uHnSRUEn.net
それゲーム開発板のUnityスレッドで聞いて
答えが得られると思ってたりする?
802:名前は開発中のものです。
15/12/26 14:53:32.59 d/yX6nUB.net
実際どういう手法で変換してるかはソースコードでも見るしかないよなぁ
Unityはそこまでは公開してないからどうにもならんが。
でもUE4なら全部公開してるからどういう手法が有り得るのかとかはアレ見ればわかるよ
803:名前は開発中のものです。
15/12/26 15:28:42.44 Qa7PpWsr.net
>>766
最近だとIL2CPPという、名前の通り「monoのILをc++コードに変換する」技術が使われてる
あとは環境ネイティヴでコンパイルするだけ
変換方法の詳細は公開されてないけど、cppになったコード自体はxcode出力したら一応読めるよ。難読化状態だけど
804:名前は開発中のものです。
15/12/26 16:08:33.20 f8fQjKcC.net
5.3になってパーティクルシステム大きく変わったのか
いろんなアセットでエラー吐きまくる
定型的な修正手順とかあったら教えてくれ
5.2.4にしておくのが無難か
805:名前は開発中のものです。
15/12/26 23:06:31.47 DlkIHce8.net
>>782
そういう仕組みだったのですか
ありがとうございます
不思議で仕方ありませんでした
806:名前は開発中のものです。
15/12/26 23:21:29.31 JOqtY8Wq.net
それで納得すんのかよw
IL2CPPはUnity5で採用された技術でそれ以前だってiOS用には出力できたし
Androidの方はどうなるんだとかそのIL2CPPの中身はどうなってんだとか色々あんだろw
名前さえついてりゃ納得するってなんなんだよw
807:名前は開発中のものです。
15/12/27 00:09:58.61 YtOJwDdp.net
気持ちは良くわかるけど、どの段階でスッキリするのかは各々次第ってことだな
808:名前は開発中のものです。
15/12/27 00:21:43.69 QK+lQHzY.net
質問というか相談というか雑談というか
unityの非同期処理調べてみると、ライブラリがいくつかあるみたいなんだけど
みなさん何使ってますか
Spicy Pixel Concurrency Kit
URLリンク(www.assetstore.unity3d.com)
Iterator Tasks is a iterator-based coroutine class library.
URLリンク(github.com)
説明
URLリンク(www.slideshare.net)
809:名前は開発中のものです。
15/12/27 00:54:30.77 CnMTlenQ.net
設計についての質問なんですがRayCastがヒットしたオブジェクトの種類(タグ名)によって
個別の処理をしたいのですが、メッセージループみたいにまずRayCastがヒットしたオブジェクト種類を
判定するクラスを作って、そのクラスでswitch,case書きまくってオブジェクトのタグ名で判定して
切り分けた先のcase文の中でそれぞれの機能を提供するメソッドをコールするっていう設計は大丈夫でしょうか?
100近いcase文を書くっていうのが設計としておかしいのでは?と不安です
810:名前は開発中のものです。
15/12/27 01:11:18.00 V7RdG6Gy.net
>>788
case文って基本的に上から条件探して降りてくるだけなので
100個もケースあるってことは100番目のケースに至る場合
100回if文を経由するのと同じになる。
たまに使われるものならともかく頻繁に使う処理としてはどうなんだろうな~という
感じはする。
例えばだがそれに対する処理を定義するスクリプトを貼り付けておいて
ヒットしたらそれをGetComponentして実行する、とかの方が現実的ではないか、って気がする。
単純なものならSendMessageでもいい。
BaseClassで実行する関数を定義しておいて現状タグで判定して分けるその処理は
タイプに応じてオーバーライドする。
共通する処理の部分は小分けにしてBaseClass内でprotectedなりpublicなりで定義しておけばいいし。
811:名前は開発中のものです。
15/12/27 01:30:25.19 wK6DIH8G.net
>>787
解答としてズレてるの承知ながらUniRxは一度試してほしいかな
812:名前は開発中のものです。
15/12/27 01:53:26.74 CnMTlenQ.net
>>789
>例えばだがそれに対する処理を定義するスクリプトを貼り付けておいて
>ヒットしたらそれをGetComponentして実行する、とかの方が現実的ではないか、って気がする。
「ヒットしたらそれをゲトコンして」のあたりの具体的なイメージがよく分からないのですが
どうやってゲトコンするイメージでしょうか?
どの道Rayのヒット判定は必要ですよね?
すみません、ちょっとよく頂いたレスの内容が理解できていません
100近くもswitch,caseを書くのがまずい、(Rayヒット判定するクラスを)分割しろ、という事でしょうか?
813:名前は開発中のものです。
15/12/27 02:00:06.23 QK+lQHzY.net
>>790
どもです
Unity勉強中で、大体材料揃ってきたので
今基幹技術?の選定中というか調査中でして…
UniRxって私の検索ワードでは出てきてなかったのでありがたいです!
814:名前は開発中のものです。
15/12/27 02:18:25.85 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:名前は開発中のものです。
15/12/27 02:34:14.82 CnMTlenQ.net
>>793
なるほど・・・なんとなくですが分かりました
ありがとうございました
816:名前は開発中のものです。
15/12/27 03:10:37.82 34BqQyRM.net
>>794
もっとシンプルに文字列がKeyのdictionaryに関数登録して呼び出すのも有りな気もするけどね
817:名前は開発中のものです。
15/12/27 03:17:30.52 f6LeTzfn.net
switchとif文の処理速度についてはリンク先でも見てもらうとして
速度的にどうか以前に100近いswitch casepubなんて読みにくいし修正が発生した時にイラっとすること請け合いだと思うぞと
URLリンク(blog.shos.info)
Dictionary<string,Action>を持っておくとか、多態性やリフレクションを利用するとかやりようはいくらでもあるが何が適切かは場合によるので自分の設計にどれが合うのかを考える必要があるね
818:名前は開発中のものです。
15/12/27 03:18:07.65 f6LeTzfn.net
なんかゴミが混入してるなすまん
819:名前は開発中のものです。
15/12/27 03:20:45.91 f6LeTzfn.net
Dictionary使うのは実装は楽なんだが、デバッグ時に何が実行されるかを追うのが面倒になるのが難点
820:名前は開発中のものです。
15/12/27 10:43:43.65 V7RdG6Gy.net
else if よりswitchの方が全然高速なのか…
c#のswitchってインデックス化とかで高速にそこに飛んでくれるのかね
821:名前は開発中のものです。
15/12/27 11:11:28.72 wK6DIH8G.net
cでも多量のswitch caseは二分探索に最適化されるんじゃなかったかな
else ifはその都度
822:式を評価しなきゃいけないからそういった最適化の恩恵はない
823:名前は開発中のものです。
15/12/27 12:10:21.54 ahWZwfbp.net
ifは条件自体が自由に書けるから最適化が難しいでしょ
switchは特定の値に対する評価だけだから最適化ができる
難しい話じゃないって