2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【3Dゲームエンジン】Unity質問スレッド21

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
http://peace.2ch.net/test/read.cgi/gamedev/1441891966/

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・ユーザーガイド
 http://docs.unity3d.com/ja/current/Manual/UnityManualRestructured.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

前スレ
【3Dゲームエンジン】Unity質問スレッド20 [転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/gamedev/1444194744/

602 :585:2015/12/15(火) 23:19:26.28 ID:tajp4kV9.net
やっぱ>585の方法じゃダメだったかー。
それでうまくいくなら一番楽な方法だったのに。残念。

>>584
ブロックを大きくする(ボールを小さくする)ことで、隣のブロックの角に当たる確率を減らすとか、
必ず1マス以上あけてブロックを配置することで、変な方向に反射しても仕方ないとプレイヤーに思わせるとか、
更に姑息な方法はどうだろうか、ダメか。

603 :名前は開発中のものです。:2015/12/15(火) 23:39:43.60 ID:1PuSfyAW.net
>>601
floatってのは有効桁数が7桁だからあと1で六桁という数になると小数点以下は事実上1桁しか使えない。
座標0.1単位程度でしか動かなくなるってこと。

604 :名前は開発中のものです。:2015/12/16(水) 00:03:14.70 ID:j+S5csIr.net
uGuiでCanvas以下のレイヤーにマウスの位置に2Dオブジェクト生成しようと思ったのですが
Input.mousePositionで取得した値だと微妙にずれた座標が生成されてしまいます。
左下原点にして右上でタッチするほど座標がずれていくのですが、どうしたら正しい値を取得できるのでしょうか?

605 :名前は開発中のものです。:2015/12/16(水) 00:06:03.15 ID:eYf8fnNA.net
http://docs.unity3d.com/ScriptReference/RectTransformUtility.html
割と変換負荷あるからプロファイラーには注意してね

606 :名前は開発中のものです。:2015/12/16(水) 00:16:48.31 ID:2EXzHSA/.net
>>603
ありがとうございます。
なるほど有効桁数ですか。
本質的な問題のようなので
あまり大きな座標にならないように作りたいと思います。

607 :名前は開発中のものです。:2015/12/16(水) 00:40:38.94 ID:VAD6hGXi.net
Input.GetButtonについての質問なのですが、
例えばオート連射のような物を実装しているのですが、

ボタンを押下している状態で、
現在のステージをloadLevelでリロードすると、
ボタンを押しているのにも関わらず、
ボタンを押している事を判定してくれないのですが何故でしょうか
(日本語やばかったらすみません)

つまり、オート連射のボタンを押しっぱなしにしたまま、
ステージをリロードしても、そのままオート連射していて欲しいのですが、
どうしたら良いでしょうか

608 :名前は開発中のものです。:2015/12/16(水) 02:30:43.20 ID:YpuaDswn.net
>>607
どうやって連射の実装してるんだい?
フラグでやってるんならSceneが変わったときに連射用のフラグをいったん下ろしてやらなくては。

609 :名前は開発中のものです。:2015/12/16(水) 02:37:22.60 ID:f8gP/AkE.net
FixedJointでくっつけたゲームオブジェクトが、オブジェクトを動かすとバラバラになって高速で移動しながら飛んでいってしまいます。
RigidbodyのDragなどを高い数値に変更してもその現象は改善されないのですがなぜでしょうか…?

610 :名前は開発中のものです。:2015/12/16(水) 09:28:03.07 ID:kqjfOMz3.net
ゲームビュー(できれば任意のカメラ)の映像を一時的に静止画にして、
それをゲーム内で再利用する場合、どうやるのがスマートかな?

具体的な状況としては、
たとえばボス撃破の瞬間を切り取って、エンディングで表示させるとか。
楽に使えるなら、ポーズ画面なんかでも使いたいという人も居るかもしれない。

(1)Application.CaptureScreenshotで保存してから読み込む
(2)シーンの追加読み込みを行って、シーンをまるごと静止画っぽく表示する
(3)各オブジェクトの位置などを何らかの方法で保存しておき、再現する

というのをぱっと思いついたが、第4の選択肢は無いものかなって。

611 :名前は開発中のものです。:2015/12/16(水) 10:00:36.34 ID:Vb3Sl3S3.net
Texture2D.ReadPixelsでスクリーンからテクスチャに直接引っこ抜くという手はある
レンダーテクスチャがPro版でしか使えなかった頃はオフスクリーンレンダリングで割と使われていた手法ではある

http://docs.unity3d.com/jp/current/ScriptReference/Texture2D.ReadPixels.html

612 :名前は開発中のものです。:2015/12/16(水) 10:48:18.99 ID:LkcR1T/m.net
つか何でRender Texture使わないの?

613 :607:2015/12/16(水) 11:31:10.32 ID:VAD6hGXi.net
>>608

単純にGetButton("hoge")がtrueなら連射するようにしています

614 :名前は開発中のものです。:2015/12/16(水) 11:50:10.30 ID:HZkFOsWS.net
他人が失敗する様な環境を作った自分に非が無いとでも?

615 :名前は開発中のものです。:2015/12/16(水) 15:04:03.90 ID: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 ();
}
}
}

616 :名前は開発中のものです。:2015/12/16(水) 15:10:24.68 ID:i1u9PnLV.net
>>615
どうもif (timer > 2.0f) {の文で2.0f以降毎フレーム再生開始が掛かってる状態なんじゃないのか?
俺だったらtimerが2.0f超えた時点でフラグをオンにするという構成にする

617 :名前は開発中のものです。:2015/12/16(水) 15:15:11.21 ID:Vb3Sl3S3.net
>>612
レンダリングを一回余計にまわさなきゃならんのと
個人的にTexture2Dの方が使い勝手がいいからだな

レンダーテクスチャでやる場合は以下でおk

任意のカメラ.targetTexture=renderTexture;
任意のカメラ.Render();
任意のカメラ.targetTexture=null;

618 :名前は開発中のものです。:2015/12/16(水) 15:48:31.15 ID:A3RTiMr9.net
>>615
>>616の言ってる通りに
再生されないんじゃなくて何回も連続して再生されすぎててまともな音が出てないだけ
つかデバッグに仕方をまず覚えろ、playの下にDebug.Log(hoge);とか入れとけば何回も再生されてるのがわかるだろうに

619 :名前は開発中のものです。:2015/12/16(水) 16:09:15.66 ID:oULklXcL.net
Liicaが出しているアプリ「Q」のようにタッチの軌跡をオブジェクト化して表示し、そこに動的にcolliderをアタッチしたいと考えています。

現在はLine Rendererで線を描画し、タッチされた座標をpolygon collider 2Dのpathに設定しようと考えて作業していましたが、うまくいきません。他になにか適切な方法はないでしょうか?

620 :名前は開発中のものです。:2015/12/16(水) 16:53:23.91 ID:Vb3Sl3S3.net
>>619
上手く行かない時はどう上手く行かないか書かないとエスパー回答しか出来んよ

推測するにPolygon Collider 2D は閉じたパス(面)である必要があるが、タッチした点は開いたパス(線)だから上手く行かないんだと思うわ
タッチした点pの左右に線の太さの1/2だけずらした点p1,p2を算出して、描画された線を囲む様なパスを生成すればいいんでない?
まあEdge Collider 2D使うと幸せになれるかもしれない

http://docs.unity3d.com/ja/current/Manual/class-EdgeCollider2D.html
http://docs.unity3d.com/ja/current/Manual/class-PolygonCollider2D.html

621 :名前は開発中のものです。:2015/12/16(水) 21:47:00.93 ID:t4TQTjE8.net
>>620
ありがとうございます
上手くいかない理由はおっしゃる通りの原因だと思います

Edge collider、試してみます

622 :名前は開発中のものです。:2015/12/16(水) 21:52:38.12 ID:7BgYgE6R.net
>>584
そもそも物理演算必要?

俺だったら進行方向に対して現在地から移動先へのCapsuleCast飛ばして
当たったコライダーとの放線使ってベクトル反転でやるかな

623 :名前は開発中のものです。:2015/12/16(水) 22:09:03.18 ID:ndTWa9K3.net
物理いらないならもうパズルゲームみたいにセルを2次元配列化で管理した方が手軽に望んだ挙動作れると思うよ

624 :名前は開発中のものです。:2015/12/17(木) 01:00:33.35 ID:9sQ34Jc8.net
unityいじり始めて大抵みんなブロック崩し作ると思うけどブロック崩しって物理演算と
相性良くないよね
当たり判定はエンジンに頼るとしても玉の挙動は自分でコーディングした方がいい

625 :名前は開発中のものです。:2015/12/17(木) 01:54:57.82 ID:NVfT1vq4.net
ブロック崩しなら本家の公式にあるこれが一番判りやすいよ
http://unity3d.com/jp/learn/tutorials/modules/beginner/live-training-archive/creating-a-breakout-game?playlist=17219

626 :名前は開発中のものです。:2015/12/17(木) 02:25:48.51 ID:i6ql7oPG.net
Unityでenterキーを押すと
GameウィンドウのDisplay 1タブが反応してしまいます。

Displayタブの非表示もしくは反応させないようにする方法は
ないのでしょうか?

627 :名前は開発中のものです。:2015/12/17(木) 11:39:02.64 ID:42EN6m0T.net
公式の3Dの真似をして以下のコードを書くとエラーになります・・。
どなたかわかる方ご指摘お願いします><

void FixedUpdate(){
float x = Input.GetAxis (

628 :名前は開発中のものです。:2015/12/17(木) 11:40:44.32 ID:42EN6m0T.net
void FixedUpdate(){
float x = Input.GetAxis ("Horizontal");
float y = Input.GetAxis ("Vertical");
Rigidbody rb = GetComponent<Rigidbody>();
rb.AddForce (Vector2.up * x);
}

629 :名前は開発中のものです。:2015/12/17(木) 11:43:47.82 ID:42EN6m0T.net
627,628です。
連投申し訳ないです・・・
正しくはこちらです。

void FixedUpdate(){
float x = Input.GetAxis ("Horizontal");
float y = Input.GetAxis ("Vertical");
Rigidbody2D rb = GetComponent<Rigidbody2D>();
rb.AddForce (x,y);
}

630 :名前は開発中のものです。:2015/12/17(木) 12:29:43.51 ID:9sQ34Jc8.net
>>629
GetComponentってgameobject.GetComponent無しで呼び出せたっけ?
俺はそうしてるけど
エラーメッセージも書いてくれよ

631 :610:2015/12/17(木) 14:03:48.31 ID:5ZD2RIjV.net
>>611>>612>>617
ありがとうございます。
ずっとscreenshotやcaptureといった単語で調べていたため
それらのメソッドに辿りつけませんでした。お恥ずかしい。

632 :名前は開発中のものです。:2015/12/17(木) 15:53:38.78 ID:H/PVOEMJ.net
>>629
Rigidbody2D.AddForce の引数はVector2とForceModeだから引数の型が違うって言われてるんじゃない?
エラーメッセージと公式のリファレンスは読む習慣付けた方がいいよ

633 :名前は開発中のものです。:2015/12/17(木) 16:39:56.32 ID: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));
}

634 :名前は開発中のものです。:2015/12/17(木) 17:11:46.11 ID:ObBFCLHN.net
>>629
その書き方で間違っているのは
rb.AddForce (x,y);
の部分で
rb.AddForce(new Vector2(x,y));
と書かねばならないってだけ。

GetComponentはgameObjectなしでも使える。
GameObjectとComponentはObjectから派生してそれぞれが
GetComponentを設けているので両者は本来同じではない(実際には同じだろうが)

635 :名前は開発中のものです。:2015/12/17(木) 17:37:47.81 ID:0OdKeQMj.net
非常に初歩的な質問で申し訳ないのですが、new Vector3(1.1.1)とは毎フレームごとに()の中の値を加算していくということであってるんでしょうか?

636 :名前は開発中のものです。:2015/12/17(木) 17:46:22.58 ID:ObBFCLHN.net
>>635
言語の勉強から始めろ…
Vector3はUnityEngineで定義された構造体だ。
newはそのクラス、もしくは構造体のインスタンスを作る、ということだ。
インスタンスってのは何かっていうとメモリ上にその形式に沿って領域を確保するってことだ

637 :名前は開発中のものです。:2015/12/17(木) 19:55:08.25 ID:0OdKeQMj.net
>>636
すいませんC#の勉強してから出直してきます・・・

638 :名前は開発中のものです。:2015/12/17(木) 20:13:39.37 ID:lGOuvxAK.net
>>616>>618
返事遅くなって申し訳ない
Debag.Logしてみたら何度も再生されてたみたいです。616さんの言ってるようにフラグをオンにする形で上手くいきました。
ありがとうございます。

639 :名前は開発中のものです。:2015/12/17(木) 20:19:49.64 ID:H/PVOEMJ.net
>>635
なんというか見たまんまなんだけどな
new Vector3(1,1,1);

新しい3次元ベクトルを(1,1,1)で作る

C#の絵本あたりでざっくりと概念を理解するのがいいかもね

APIの使い方は知らなくてもリファレンス見れば何とかなるが
概念が理解出来てないと応用が効かないしソース読んでも理解出来ないから
効率良く学習するには基本的な概念を理解すること

これさえ身についていれば他の言語やゲームエンジンに移っても苦労しない

640 :607:2015/12/17(木) 20:46:23.59 ID:/vN0R3NP.net
>>613
誰かおねがいしますー

641 :名前は開発中のものです。:2015/12/17(木) 21:11:58.46 ID:0OdKeQMj.net
>>639
自分も新しいベクトルを作るって言うのはなんとなくわかるんですけど次のプログラムがいまいち納得いかないんですよね
void Update () {
var v = new Vector3 (0.1f, 0.1f, 0.1f);
transform.Rotate (v);
}

これだと0.1度の位置でピタッと止まりそうなんですけどオブジェクトがゆっくり回転するんですよね・・・

642 :名前は開発中のものです。:2015/12/17(木) 21:16:51.56 ID:ObBFCLHN.net
>>641
それはRotate()っていう「回転させる関数」にその値を渡しているからだ…
だから毎フレーム回転する。
transform.rotation.eulerAngles=v;
ってやれば0.1度になる

643 :名前は開発中のものです。:2015/12/17(木) 21:58:44.76 ID:0OdKeQMj.net
えーっと、つまり毎フレームごとに()の中の値とそれの元になったVector3を破棄(メモリ開放?)するからnew関数を使って毎回作り直すってことですかね?

644 :名前は開発中のものです。:2015/12/17(木) 22:07:57.57 ID:H/PVOEMJ.net
>>641
なるほどUpdateが毎フレーム呼ばれる関数だってとこを理解してないんだな

void Update () {//毎フレーム
var v = new Vector3 (0.1f, 0.1f, 0.1f);
transform.Rotate (v);//vだけ回転する
}

仮に60FPSで実行されていれば毎秒60回これが実行されるってことだからそりゃあぐるぐる回るだろ
http://docs.unity3d.com/ja/current/ScriptReference/MonoBehaviour.html
ここのメッセージの項目の一番下
http://docs.unity3d.com/ja/current/Manual/ExecutionOrder.html
ここもざっくり見ておくといい

645 :名前は開発中のものです。:2015/12/17(木) 22:31:26.52 ID:NVfT1vq4.net
まあスクリプトマニュアルにある例文スクリプトを動かしてみるのが一番だな
その例ではvar v = new Vector3 (0.1f, 0.1f, 0.1f); は毎回同じ値しか生まないからUpdateでやる意味はないな
あとC#でvarは止めようぜw

646 :名前は開発中のものです。:2015/12/17(木) 22:42:18.10 ID:CLdinnog.net
>>641
もうちょっと関数とか定義とか調べてみたほうがいいねw
とくに、あれ?と思ったときこそ念入りに

647 :名前は開発中のものです。:2015/12/17(木) 22:43:24.00 ID:0OdKeQMj.net
>>644
ありがとうございますマニュアルとか初めて知った・・・
>>645
すいませんネットで見つけたものをコピペしただけだったので・・・
varはバリューの略?だとかってに思ってるんですがC#だと何がいけないんでしょうか?

648 :名前は開発中のものです。:2015/12/17(木) 22:44:58.16 ID:5ZD2RIjV.net
ば、value……

649 :名前は開発中のものです。:2015/12/17(木) 22:49:26.89 ID:CLdinnog.net
>>645
ちょうどC#スレでも話題になってたけど最近はvarが主流になりつつある(らしい)
まあ公式のC#プログラミングガイドで推奨されてたりもするし

650 :名前は開発中のものです。:2015/12/17(木) 22:50:46.47 ID:0OdKeQMj.net
やばい恥ずかしさで死にそう
変数とか書いてあるの見て勝手にfloat見たいなもんと勘違いしてたみたいだ・・・

651 :名前は開発中のものです。:2015/12/17(木) 22:51:23.35 ID:CLdinnog.net
訂正

公式のC#プログラミングガイド
 ↓
MSDNのC#プログラミングガイド

652 :名前は開発中のものです。:2015/12/17(木) 22:57:39.91 ID:CLdinnog.net
>>650
変数宣言時に、「代入する値を参照して型を決める」のがvarだから、
「float見たいなもん」という点では間違ってはいないと思う

変数宣言時に代入するのが文字列ならstringとしてコンパイル時に型を決定してくれる

653 :名前は開発中のものです。:2015/12/17(木) 23:09:58.46 ID: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
あとで読んでわかりにくいコードは無駄な手間を増やすから避けるべきというお話

654 :名前は開発中のものです。:2015/12/17(木) 23:22:47.87 ID:42EN6m0T.net
629です。

色々なご指摘ありがとうございます…
new Vector2() で動くようになりました!
なぜ書かないといけなかったのかを考えたいと思います。
ありがとうございました

655 :名前は開発中のものです。:2015/12/17(木) 23:47:01.98 ID:0OdKeQMj.net
つまりvarは機械側が空気読んで変数の変わりをやってくれる
けど>>653見たいに人間には片別が付きにくい場合もあるからそこのへんは気をつけて使えよってことか

656 :名前は開発中のものです。:2015/12/17(木) 23:56:05.25 ID:CLdinnog.net
「変数の代わり」じゃなく「変数の型の決定」な
かなり意味違うから気をつけて

自分の中では後者の意味で書いたんだろうけど他の人にとっては別の意味になるよw

657 :名前は開発中のものです。:2015/12/18(金) 00:10:10.65 ID:Q3Oo75qC.net
みなさん今晩は。
先程からprofilerを眺めているのですが
structをKeyにもつジェネリックなdictionaryのtrygetvalueを呼んだ時にdefaultcompareでgc.collectが走ってしまい結構なオーバーヘッドになっています。
これはdictionaryを使う上で避けられないものなんでしょうか?

ちなみにstruct側はEqualをオーバーライドして等価判断を実装してます。

unityの質問というよりはc#な気がしますが
お願い致します。

658 :名前は開発中のものです。:2015/12/18(金) 00:10:40.79 ID:B6RkM70a.net
型推論はコード見てて分かり難いからあんまり好きじゃないなー。
型見てどういう働きさせるか考えるし。

659 :名前は開発中のものです。:2015/12/18(金) 00:18:39.03 ID:y4yBucq8.net
代わりと書くなら、「型指定の代わりをやってくれる」かな
これも違和感あるけど

660 :名前は開発中のものです。:2015/12/18(金) 09:40:30.69 ID:uooFc2ru.net
>>657
GetHashCodeはオーバーライドした?
Dictionary<TKey,TValue>の場合キーマッチングにHashCodeを使う
構造体GetHashCodeはobject型のを使う訳だけど値型で明示的な実装がされていない場合これにはボックス化が必要になる

キーマッチングが呼ばれるたびにobject型へのボックス化が走るからオーバーヘッドが大きいんだと思う
ボックス化せずにキーマッチングが出来るようGetHashCodeをオーバーライドすればかなりパフォーマンスが違って来ると思うよ

661 :名前は開発中のものです。:2015/12/18(金) 10:34:13.62 ID:B6RkM70a.net
>>607
どなたかわかりませんかね

662 :名前は開発中のものです。:2015/12/18(金) 12:09:00.66 ID:Q3Oo75qC.net
>>660
ありがとうございます、なるほどボクシングですか。。
gethascodeはオーバーライドしてましたが
equalはobject引数のやつでした。
dictionaryのコンストラクターにジェネリックのコンペアラーを作って指定しとけばボクシングなしで比較させられるイメージなんでしょうかね。帰宅したら試してみます。

663 :名前は開発中のものです。:2015/12/18(金) 12:11:09.10 ID:gwBKg3dx.net
>>658
newなら型が一目瞭然だし、
関数の戻り値で代入なら書いてもいいけど、インテリセンスが効くんだから全く必要ない。

664 :名前は開発中のものです。:2015/12/18(金) 12:46:50.67 ID:uooFc2ru.net
>>661
答えが貰えないのは答えがわからんからでなく質問がわからんからだからw
要求するエスパーのレベルが高すぎなんだよ
少し問題を切り分ける努力と情報がないとなんとも言えない

まずレベルをロードした後にInputからボタンの状態は正しく取れてるのか?取れてないならロード前の値を死なないオブジェクトにキャッシュするなどして回避しろ

次にレベルをロードした際に前のシーンの中身が破棄されて参照が切れてたりしないかチェック
レベルがロードされた際に破棄される古いインスタンスを参照していた場合、レベルがロードされた時に参照をとり直さなきゃならん、推測だがここが怪しい

エラーを吐いてるのかどうかすらわからん、実装も全くわからんでは答えられんのも仕方ないだろ

665 :名前は開発中のものです。:2015/12/18(金) 13:28:08.07 ID:ZJssySOS.net
助けてください!
Unity5.3.0 のMac版をインストールしたところ、UIの文字がつぶれてしまって使えません。

具体的には、
つ ttp://www.dotup.org/uploda/www.dotup.org658569.png

上図のようになってしまったのですが、これを直す方法を知りませんでしょうか?
検索してみましたが、monoDevelopの文字化け対策ばかりヒットしてしまい、解決法が発見できません。
もう、いい加減ハゲそうです…

【環境】
MacOSX 10.9.5
メモリ8GB
iMac2010年モデル

お願いします

666 :名前は開発中のものです。:2015/12/18(金) 15:50:46.63 ID:gwBKg3dx.net
unityのフォーラム使え

667 :名前は開発中のものです。:2015/12/18(金) 15:54:23.89 ID:LlLoZF5i.net
>>665
基本的にUnityにはエディタUIのフォントを選んだりサイズを調整したりという手段はない。
つまりOS側の何らかの設定をそのまま使ってるということ。
MacはよくわからんからよくわからんがMacOS側の何かをいじるしかないだろう

668 :名前は開発中のものです。:2015/12/18(金) 17:40:17.08 ID:uooFc2ru.net
中身全く見てないがこんな事してる奴はいるらしい
Unityはエディタの改変は割と自由に出来るのもいいところ

https://github.com/anchan828/ChangeEditorFonts

669 :名前は開発中のものです。:2015/12/18(金) 19:46:53.46 ID:vovoyLY6.net
>>665
とりあえず5.2にしてみたら?
それでも変わらなければハード側の問題だろ

670 :名前は開発中のものです。:2015/12/18(金) 21:17:02.68 ID:eC4OHSbc.net
どなたかAndroid6以上使ってる人いますか?

apkインストールできなく無い?

671 :661:2015/12/19(土) 06:18:02.26 ID:YGsi/2ht.net
>>664
すすすみません〜
ありがとうございます。試してみます。

Update(){
Debug.log( Input.GetButton("hoge"));
}

とあった時に、普段はhogeボタン押している間はtrueになりますが、
hogeを押したまま、loadlevelでシーンを読み込むと、
hogeを押したままなのに、falseになってしまうという感じです。
(getButtonは押すという過程が無いと反応しない?)

672 :名前は開発中のものです。:2015/12/19(土) 08:35:09.54 ID:3jFWitgF.net
>>671
まさに>>664がエスパーした通りだったな

673 :名前は開発中のものです。:2015/12/19(土) 14:01:49.13 ID:DxhqkfnX.net
プログラマはMacを使ってるってマジ?
http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/

674 :名前は開発中のものです。:2015/12/19(土) 19:16:41.13 ID:BNrflbDt.net
今androidでゲームを作ってるんですが困った状態に直面してます
macのunity上ではなんの問題もなく動作するんですがandroidで動かすと
画像が乱れます
http://m.imgur.com/GvbFeuz.jpg
これが普通の状態でパーティクルやオブジェクトを生成すると
http://m.imgur.com/9APIc0N.jpg
こうなります
関係無い部分が乱れてるのがおわかりでしょうか?
どうしたら乱れないように出来るかわかりますでしょうか?
unityは5.3でandroidはnexus9を使っています

675 :名前は開発中のものです。:2015/12/19(土) 19:32:53.04 ID:GPbneO/a.net
スクショの撮り方からやり直せ
目が痛くなるような画像貼るな

676 :名前は開発中のものです。:2015/12/19(土) 19:55:20.13 ID:BNrflbDt.net
>>675
申し訳ありません
やり直しました
http://m.imgur.com/oTtkUfG.jpg
これが正常な画面で
http://m.imgur.com/vByNAi2.jpg
これが乱れた画面です
枠の部分がおかしくなってるのがおわかりでしょうか?

677 :名前は開発中のものです。:2015/12/19(土) 20:08:40.65 ID:KkGdz7kr.net
>>676
ごめん、どこがおかしいのかわかんないけど
ピクセルパーフェクトで作ってるから自動的にサイズ調整してくれないってこと?

678 :名前は開発中のものです。:2015/12/19(土) 20:39:13.89 ID:BNrflbDt.net
>>677
フィールドの上部と左右にスロープ気味の枠を設置してるんですけど下の画像では透けて見えたり
変なところに三角形のポリゴンが出たりしてるんですけどわかりませんか?
動いてる画面だと凄くガチャガチャとした変な感じになります

679 :名前は開発中のものです。:2015/12/19(土) 21:54:58.14 ID:esdi3SKN.net
>>676
描画されてないポリゴンがあるのは説明されなくてもわかるがこれだけではなんとも判断つかんね

正面の斜面を見る限り面は2つの三角ポリゴンに分割されているが片方の三角だけが描画されてる
よく見ると裏目側のポリゴンが描画されてるがこれはスロープがボックス状の面を構成していると想像するなら本来裏向きで描画されないポリゴンのはずだ

ここから考えると、何らかの理由でポリゴンの面裏がおかしくなってると推測できるがこの画像からわかるのはここまでだな

あと一枚のポリゴンがえらくでかいのはちと気になる

680 :名前は開発中のものです。:2015/12/19(土) 22:11:18.50 ID:BNrflbDt.net
>>679
ビルトインのブロックを使ってるだけなのでポリゴンのモデルがおかしいとは考えにくいのですが・・

>あと一枚のポリゴンがえらくでかいのはちと気になる
さっき試しにブロックを複数に分割して作ってみたのですが結果は同じでした

681 :名前は開発中のものです。:2015/12/19(土) 23:16:47.00 ID:BNrflbDt.net
自己解決しましたー
パーティクルを表示させる時scaleをいじってたのが悪かったみたいです
scaleをいじるのをやめたら正常に表示されました

682 :名前は開発中のものです。:2015/12/20(日) 16:55:49.34 ID: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を指定しようとしても侵入禁止マークが出てできません

こういった場合は一般的にどうやって指定するのがいいんでしょうか?

683 :名前は開発中のものです。:2015/12/20(日) 18:35:21.92 ID:oUuZ6MJB.net
>>682
いつも通りチュートリアル見ずにエスパーするが
Prefabはヒエラルキーに存在しないからヒエラルキーにあるインスタンスはPrefabでは保持出来ない、アセットにあるものの参照は維持される

ヒエラルキーにあるものを参照したければInstantinateした後でスクリプトで参照をセットするといい

684 :名前は開発中のものです。:2015/12/20(日) 19:02:45.82 ID:kKby6yTS.net
早速ありがとうございました
やっぱりスクリプトでやるのが普通なんですね
安易にヒエラルヒーにある他のGameObjectをPublicで参照するのは止めたほうがいいのかな
とりあえずFindかFindWithTagで地道に参照します

685 :名前は開発中のものです。:2015/12/20(日) 21:43:31.06 ID:sxkN/Mdb.net
時代遅れ感が半端じゃない質問ですが・・・・

今Photon使って複数人対戦のアクションゲームを作成してまして、
カメラの描画範囲外はポジションの同期せず、範囲内に入ったら同期みたいなことをしようとしてはいるんですけど、
OnWillRenderObjectでカメラの範囲を見るのはわかるのですが同期するしないの設定ってスクリプトから変更することって可能なんでしょうか?
調べてみてもそういう記述が見つからなかったので・・・

ちなみにUnityのバージョンは5.0.4です
(他の方法がありましたらご指南いただければ幸いです m(_ _)m)

686 :名前は開発中のものです。:2015/12/20(日) 22:06:52.53 ID:Sx2eIhW1.net
unity5.3を32bitVistaで起動させる方法ってないですかね?

687 :名前は開発中のものです。:2015/12/20(日) 22:26:27.37 ID:oUuZ6MJB.net
>>686
動作環境がWindows7 SP1以上とあるから無理

688 :名前は開発中のものです。:2015/12/21(月) 01:03:14.21 ID:HVuMnboW.net
Unityで2Dの横スクロールアクションゲームを作っています
乗ると流されるコンベアのようなギミックを作りたいのですが
transform.Rotateで回転させても、スプライトの画像だけが回転して
コライダー自体は回転していないようでした
このギミックを表現するにはどうしたらいいでしょうか?

689 :名前は開発中のものです。:2015/12/21(月) 02:20:26.38 ID:Ybtucx/E.net
>>688
コリジョンもちゃんと回転はしてるはず。
boxコライダーを仮でつけてみたらわかると思う。

回転させてさらに座標も移動させないといけないよ。
オブジェクトは回転だけしても進まない。

物理で力を加えたら回転も移動もするけど、思い通りに動かすのはちょっと慣れないといけない。

690 :名前は開発中のものです。:2015/12/21(月) 12:27:34.28 ID:IMaaS1Ne.net
>>665
MacOSX10.9.5を使っているけど
こっちも同じ文字化けする。
5.3.1にしても変わらないので5.2を使っている

691 :名前は開発中のものです。:2015/12/21(月) 16:19:18.73 ID:00UsknoA.net
Resourcesファイルにcsソースを入れた場合使えなくなるの?
Resourcesファイル内のプレハブとセットでcsソースを一緒に入れれば
見やすいからそうしたいんだかどうなの?

692 :名前は開発中のものです。:2015/12/21(月) 17:26:44.93 ID:76aWrUGL.net
android6.0に対応させるにはsdkマネージャーから6.0をダウンロードしたら自動で反映されるのでしょうか?
playerSettingを見ると選択できないのでうまくできてないように思えますが何かほかの手順が必要ですか?

693 :名前は開発中のものです。:2015/12/21(月) 20:06:33.52 ID:jcVDj2Nz.net
すみません音の再生についての質問です。
リバーブのかかった音源を以下の様にループさせたいと思っています。

時間の流れ→

音音音残響
□□□音音音残響
□□□□□□音音音残響

ループするべき長さ(length)はわかっているのですが、
このlengthのタイミングでループする方法と、ループした時に過去の音を消さない方法がわかりません。
よろしくお願いします。

694 :名前は開発中のものです。:2015/12/21(月) 21:04:53.33 ID:r9cjdiXD.net
音源にリバーブが含まれてるならどうしようもないだろ

695 :名前は開発中のものです。:2015/12/21(月) 21:11:41.51 ID:FIXEWsvQ.net
DTMスレかと思ったらUnityスレだった。自作BGMならループ先にも残響音が含まれるように完全ループで作るしかないけど素材なら無理だろ。
あと洋ゲーやれば分かるけどきっちりループするBGMが流れるのって和ゲーやチップチューンくらい。
残響とか含まれてるインストゥルメンタル音源はきっちりループせずにアウトフェードしてからまた最初からってのが普通だよ

696 :名前は開発中のものです。:2015/12/21(月) 21:12:18.18 ID:4ywppTKb.net
>>693
AudioSourceをいくつも作って再生するんじゃダメなん?

697 :名前は開発中のものです。:2015/12/21(月) 21:24:15.40 ID:CnyXX6yb.net
>>693
そういうことしたいんなら、イントロからループ直前までのファイルと
ループする部分のファイル2つに分ける
で、最初にイントロからループ直前まで流してメインファイルに切り替えて
あとはループさせる
これなら残響音あっても成り立つ
Unityで出来るかは知らんが

698 :名前は開発中のものです。:2015/12/21(月) 21:31:45.60 ID:fSY+Htxz.net
>>691
Resourcesは入れたデータそのものが入る場所だからソースコード入れてもソースのママだぞ、コンパイル対象にならんのだ

699 :名前は開発中のものです。:2015/12/21(月) 22:01:15.53 ID:VTzw7brd.net
>>693
単純に>>696が正解、5からは無料で便利なAudio Mixerが使える

700 :名前は開発中のものです。:2015/12/22(火) 00:36:17.24 ID:WeDSI8vw.net
テキストファイルを独自拡張子で扱いたいのですができますか?
text.luaとかにしたいです

701 :名前は開発中のものです。:2015/12/22(火) 01:05:48.40 ID:OzXRBG3G.net
今androidで色々テストしてるのですがわからない事があります
今簡単なアニメーションをanimationウインドウで作ってオブジェクトを
動かしてるのですがunity上で実行しても普通に表示されるのですがandroid上で
実行させたらオブジェクトが表示されなくなります
動かすアニメーションと止まっているアニメーションを交互に作動させてるのですが
動いてる方でオブジェクトが消えます
つまり点滅状態になってる状態です
これは一体どういう事なんでしょうか?

702 :名前は開発中のものです。:2015/12/22(火) 07:35:05.53 ID:DtR0hO5a.net
>>700
http://docs.unity3d.com/ja/current/Manual/class-TextAsset.html

もちろんオフィシャルのドキュメント見た上での質問なんだよね?

もしかしたら StreamingAssets ならできる気もしなくもないけど、やったことないからわからん

総レス数 1001
331 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
read.cgi ver.24052200