【3Dゲームエンジン】Unity質問スレッド21 [転載禁止]©5ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2015/11/18(水) 00:53:16.90ID:6AegDlBRWindows/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/
0589名前は開発中のものです。
2015/12/15(火) 13:40:00.52ID:o8J25P/W恐らく>>585が言った通りもうひとつ上のブロックにも当たっててそこに
跳ね返ってるのだろう
つまり同時に複数のブロックと当たってる
そこで一案だがまずボールに当たったブロックをすべてプールする
そしてプールしたブロックの中からボールとの位置関係に照らし合わせて適切な
あたるブロックを選んでそれを消しながらボールを反射させるというのはどうか
0590名前は開発中のものです。
2015/12/15(火) 13:49:15.86ID:o8J25P/Wやっぱこの方法良くないね
先に上のブロックに当たった場合変な挙動になる
一つのブロックの上辺、下辺、左辺、右辺のどれに当たってるか検知するほうが
良いと思う
0591名前は開発中のものです。
2015/12/15(火) 14:57:28.55ID:Aeg7fYnaこれって隙間に見えないブロックを詰めてやれば解決するのかな
0592名前は開発中のものです。
2015/12/15(火) 15:53:04.81ID:1PuSfyAW速度を変えると大丈夫な場合があるのだとすれば
物理特性マネージャやタイムマネージャの設定を見直してやれば解決する場合もありうる
0593名前は開発中のものです。
2015/12/15(火) 16:37:29.85ID:PujoCYBK物理演算(ここでは当たってない)
↓
↓ここでBに当たるが判定はまだされない
↓
↓ここでAに当たるがこれはBにめり込んでいる状態
↓
物理演算(ABと当たった判定、Aが先に処理されてる)
実行環境の処理能力が許すなら>>592の言う通り判定の頻度を上げればある程度改善すると思う
厳密にやろうとすると同時に当たった場合にちょっと工夫が必要になるかな
0594名前は開発中のものです。
2015/12/15(火) 16:48:56.08ID:7/E0miQ5PCなら問題ないでしょ
0595名前は開発中のものです。
2015/12/15(火) 16:56:28.86ID:PujoCYBK0596584
2015/12/15(火) 18:46:18.90ID:dXUWUNx8>>594
0.01でマシにはなったんですが、続けているとやっぱりたまに発生します
精度を上げると確率減っていきました
>>595
そこらへんいろいろいじったのですが変わりませんでした。
Rigidbody2D版だとよくなったりしました(こっちも出るときは出る)
0597名前は開発中のものです。
2015/12/15(火) 20:00:34.18ID:X0IxInAKLightwaveでエンベロープとマテリアルを適用しまた、キーフレームでアニメーションをつけたモデルをFBXでunityにインポートし
vuForiaを利用してARで表示しようとしているのですが、
ビルドして実機で表示してみるとエンベロープとマテリアルが適用されていません。
Unity上でアニメーションを再生していた時は適用されていました。
理由がわかる方いましたら教えていただけますでしょうか。
0598名前は開発中のものです。
2015/12/15(火) 20:37:30.30ID:ilr73FjaSpriteRendererが複数集まってできているアニメーションするキャラクターがいますが、
このrootあたりにスクリプトをつけて一括で色変更ってできますか?
色反転や全体的に明るくするなどです。
無敵状態の表示などに使います。
シェーダーってこういうときに使うのかなと想像してますが・・・
0599名前は開発中のものです。
2015/12/15(火) 20:42:34.04ID:PX05T8Gm2Dのチュートリアルにまんまな例があった気がする
https://github.com/unity3d-jp-tutorials/2d-shooting-game/wiki
> 第11回-エネミーのHP、弾の攻撃力、アニメーションの追加
> 11.2 ダメージを受けた時の表現
0600名前は開発中のものです。
2015/12/15(火) 22:20:21.99ID:7/E0miQ5一括Color操作は自前でコンポーネントを作ったほうが楽だよ
親から一括でやるか、子からrootを見るかは実装次第で
0601名前は開発中のものです。
2015/12/15(火) 22:37:57.21ID:Pvh48dzj座標99999たとかでキャラコン貼り付けたcubeがカタカタするんですが
そういうものでしょうか。
0602585
2015/12/15(火) 23:19:26.28ID:tajp4kV9それでうまくいくなら一番楽な方法だったのに。残念。
>>584
ブロックを大きくする(ボールを小さくする)ことで、隣のブロックの角に当たる確率を減らすとか、
必ず1マス以上あけてブロックを配置することで、変な方向に反射しても仕方ないとプレイヤーに思わせるとか、
更に姑息な方法はどうだろうか、ダメか。
0603名前は開発中のものです。
2015/12/15(火) 23:39:43.60ID:1PuSfyAWfloatってのは有効桁数が7桁だからあと1で六桁という数になると小数点以下は事実上1桁しか使えない。
座標0.1単位程度でしか動かなくなるってこと。
0604名前は開発中のものです。
2015/12/16(水) 00:03:14.70ID:j+S5csIrInput.mousePositionで取得した値だと微妙にずれた座標が生成されてしまいます。
左下原点にして右上でタッチするほど座標がずれていくのですが、どうしたら正しい値を取得できるのでしょうか?
0605名前は開発中のものです。
2015/12/16(水) 00:06:03.15ID:eYf8fnNA割と変換負荷あるからプロファイラーには注意してね
0606名前は開発中のものです。
2015/12/16(水) 00:16:48.31ID:2EXzHSA/ありがとうございます。
なるほど有効桁数ですか。
本質的な問題のようなので
あまり大きな座標にならないように作りたいと思います。
0607名前は開発中のものです。
2015/12/16(水) 00:40:38.94ID:VAD6hGXi例えばオート連射のような物を実装しているのですが、
ボタンを押下している状態で、
現在のステージをloadLevelでリロードすると、
ボタンを押しているのにも関わらず、
ボタンを押している事を判定してくれないのですが何故でしょうか
(日本語やばかったらすみません)
つまり、オート連射のボタンを押しっぱなしにしたまま、
ステージをリロードしても、そのままオート連射していて欲しいのですが、
どうしたら良いでしょうか
0608名前は開発中のものです。
2015/12/16(水) 02:30:43.20ID:YpuaDswnどうやって連射の実装してるんだい?
フラグでやってるんならSceneが変わったときに連射用のフラグをいったん下ろしてやらなくては。
0609名前は開発中のものです。
2015/12/16(水) 02:37:22.60ID:f8gP/AkERigidbodyのDragなどを高い数値に変更してもその現象は改善されないのですがなぜでしょうか…?
0610名前は開発中のものです。
2015/12/16(水) 09:28:03.07ID:kqjfOMz3それをゲーム内で再利用する場合、どうやるのがスマートかな?
具体的な状況としては、
たとえばボス撃破の瞬間を切り取って、エンディングで表示させるとか。
楽に使えるなら、ポーズ画面なんかでも使いたいという人も居るかもしれない。
(1)Application.CaptureScreenshotで保存してから読み込む
(2)シーンの追加読み込みを行って、シーンをまるごと静止画っぽく表示する
(3)各オブジェクトの位置などを何らかの方法で保存しておき、再現する
というのをぱっと思いついたが、第4の選択肢は無いものかなって。
0611名前は開発中のものです。
2015/12/16(水) 10:00:36.34ID:Vb3Sl3S3レンダーテクスチャがPro版でしか使えなかった頃はオフスクリーンレンダリングで割と使われていた手法ではある
http://docs.unity3d.com/jp/current/ScriptReference/Texture2D.ReadPixels.html
0612名前は開発中のものです。
2015/12/16(水) 10:48:18.99ID:LkcR1T/m0613607
2015/12/16(水) 11:31:10.32ID:VAD6hGXi単純にGetButton("hoge")がtrueなら連射するようにしています
0614名前は開発中のものです。
2015/12/16(水) 11:50:10.30ID:HZkFOsWS0615名前は開発中のものです。
2015/12/16(水) 15:04:03.90ID:o0yPHZmnシーンが切り替わってから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 ();
}
}
}
0616名前は開発中のものです。
2015/12/16(水) 15:10:24.68ID:i1u9PnLVどうもif (timer > 2.0f) {の文で2.0f以降毎フレーム再生開始が掛かってる状態なんじゃないのか?
俺だったらtimerが2.0f超えた時点でフラグをオンにするという構成にする
0617名前は開発中のものです。
2015/12/16(水) 15:15:11.21ID:Vb3Sl3S3レンダリングを一回余計にまわさなきゃならんのと
個人的にTexture2Dの方が使い勝手がいいからだな
レンダーテクスチャでやる場合は以下でおk
任意のカメラ.targetTexture=renderTexture;
任意のカメラ.Render();
任意のカメラ.targetTexture=null;
0618名前は開発中のものです。
2015/12/16(水) 15:48:31.15ID:A3RTiMr9>>616の言ってる通りに
再生されないんじゃなくて何回も連続して再生されすぎててまともな音が出てないだけ
つかデバッグに仕方をまず覚えろ、playの下にDebug.Log(hoge);とか入れとけば何回も再生されてるのがわかるだろうに
0619名前は開発中のものです。
2015/12/16(水) 16:09:15.66ID:oULklXcL現在はLine Rendererで線を描画し、タッチされた座標をpolygon collider 2Dのpathに設定しようと考えて作業していましたが、うまくいきません。他になにか適切な方法はないでしょうか?
0620名前は開発中のものです。
2015/12/16(水) 16:53:23.91ID:Vb3Sl3S3上手く行かない時はどう上手く行かないか書かないとエスパー回答しか出来んよ
推測するに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
0621名前は開発中のものです。
2015/12/16(水) 21:47:00.93ID:t4TQTjE8ありがとうございます
上手くいかない理由はおっしゃる通りの原因だと思います
Edge collider、試してみます
0622名前は開発中のものです。
2015/12/16(水) 21:52:38.12ID:7BgYgE6Rそもそも物理演算必要?
俺だったら進行方向に対して現在地から移動先へのCapsuleCast飛ばして
当たったコライダーとの放線使ってベクトル反転でやるかな
0623名前は開発中のものです。
2015/12/16(水) 22:09:03.18ID:ndTWa9K30624名前は開発中のものです。
2015/12/17(木) 01:00:33.35ID:9sQ34Jc8相性良くないよね
当たり判定はエンジンに頼るとしても玉の挙動は自分でコーディングした方がいい
0625名前は開発中のものです。
2015/12/17(木) 01:54:57.82ID:NVfT1vq4http://unity3d.com/jp/learn/tutorials/modules/beginner/live-training-archive/creating-a-breakout-game?playlist=17219
0626名前は開発中のものです。
2015/12/17(木) 02:25:48.51ID:i6ql7oPGGameウィンドウのDisplay 1タブが反応してしまいます。
Displayタブの非表示もしくは反応させないようにする方法は
ないのでしょうか?
0627名前は開発中のものです。
2015/12/17(木) 11:39:02.64ID:42EN6m0Tどなたかわかる方ご指摘お願いします><
void FixedUpdate(){
float x = Input.GetAxis (
0628名前は開発中のものです。
2015/12/17(木) 11:40:44.32ID:42EN6m0Tfloat x = Input.GetAxis ("Horizontal");
float y = Input.GetAxis ("Vertical");
Rigidbody rb = GetComponent<Rigidbody>();
rb.AddForce (Vector2.up * x);
}
0629名前は開発中のものです。
2015/12/17(木) 11:43:47.82ID:42EN6m0T連投申し訳ないです・・・
正しくはこちらです。
void FixedUpdate(){
float x = Input.GetAxis ("Horizontal");
float y = Input.GetAxis ("Vertical");
Rigidbody2D rb = GetComponent<Rigidbody2D>();
rb.AddForce (x,y);
}
0630名前は開発中のものです。
2015/12/17(木) 12:29:43.51ID:9sQ34Jc8GetComponentってgameobject.GetComponent無しで呼び出せたっけ?
俺はそうしてるけど
エラーメッセージも書いてくれよ
0631610
2015/12/17(木) 14:03:48.31ID:5ZD2RIjVありがとうございます。
ずっとscreenshotやcaptureといった単語で調べていたため
それらのメソッドに辿りつけませんでした。お恥ずかしい。
0632名前は開発中のものです。
2015/12/17(木) 15:53:38.78ID:H/PVOEMJRigidbody2D.AddForce の引数はVector2とForceModeだから引数の型が違うって言われてるんじゃない?
エラーメッセージと公式のリファレンスは読む習慣付けた方がいいよ
0633名前は開発中のものです。
2015/12/17(木) 16:39:56.32ID:NVfT1vq4突っ込みどころが多すぎだけど多分こんな感じでうごかしたかったんじゃね
その状態ならひたすらチュートリアルやるのが一番の近道だよ
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));
}
0634名前は開発中のものです。
2015/12/17(木) 17:11:46.11ID:ObBFCLHNその書き方で間違っているのは
rb.AddForce (x,y);
の部分で
rb.AddForce(new Vector2(x,y));
と書かねばならないってだけ。
GetComponentはgameObjectなしでも使える。
GameObjectとComponentはObjectから派生してそれぞれが
GetComponentを設けているので両者は本来同じではない(実際には同じだろうが)
0635名前は開発中のものです。
2015/12/17(木) 17:37:47.81ID:0OdKeQMj0636名前は開発中のものです。
2015/12/17(木) 17:46:22.58ID:ObBFCLHN言語の勉強から始めろ…
Vector3はUnityEngineで定義された構造体だ。
newはそのクラス、もしくは構造体のインスタンスを作る、ということだ。
インスタンスってのは何かっていうとメモリ上にその形式に沿って領域を確保するってことだ
0637名前は開発中のものです。
2015/12/17(木) 19:55:08.25ID:0OdKeQMjすいませんC#の勉強してから出直してきます・・・
0638名前は開発中のものです。
2015/12/17(木) 20:13:39.37ID:lGOuvxAK返事遅くなって申し訳ない
Debag.Logしてみたら何度も再生されてたみたいです。616さんの言ってるようにフラグをオンにする形で上手くいきました。
ありがとうございます。
0639名前は開発中のものです。
2015/12/17(木) 20:19:49.64ID:H/PVOEMJなんというか見たまんまなんだけどな
new Vector3(1,1,1);
↓
新しい3次元ベクトルを(1,1,1)で作る
C#の絵本あたりでざっくりと概念を理解するのがいいかもね
APIの使い方は知らなくてもリファレンス見れば何とかなるが
概念が理解出来てないと応用が効かないしソース読んでも理解出来ないから
効率良く学習するには基本的な概念を理解すること
これさえ身についていれば他の言語やゲームエンジンに移っても苦労しない
0640607
2015/12/17(木) 20:46:23.59ID:/vN0R3NP誰かおねがいしますー
0641名前は開発中のものです。
2015/12/17(木) 21:11:58.46ID:0OdKeQMj自分も新しいベクトルを作るって言うのはなんとなくわかるんですけど次のプログラムがいまいち納得いかないんですよね
void Update () {
var v = new Vector3 (0.1f, 0.1f, 0.1f);
transform.Rotate (v);
}
これだと0.1度の位置でピタッと止まりそうなんですけどオブジェクトがゆっくり回転するんですよね・・・
0642名前は開発中のものです。
2015/12/17(木) 21:16:51.56ID:ObBFCLHNそれはRotate()っていう「回転させる関数」にその値を渡しているからだ…
だから毎フレーム回転する。
transform.rotation.eulerAngles=v;
ってやれば0.1度になる
0643名前は開発中のものです。
2015/12/17(木) 21:58:44.76ID:0OdKeQMj0644名前は開発中のものです。
2015/12/17(木) 22:07:57.57ID:H/PVOEMJなるほど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
ここもざっくり見ておくといい
0645名前は開発中のものです。
2015/12/17(木) 22:31:26.52ID:NVfT1vq4その例ではvar v = new Vector3 (0.1f, 0.1f, 0.1f); は毎回同じ値しか生まないからUpdateでやる意味はないな
あとC#でvarは止めようぜw
0646名前は開発中のものです。
2015/12/17(木) 22:42:18.10ID:CLdinnogもうちょっと関数とか定義とか調べてみたほうがいいねw
とくに、あれ?と思ったときこそ念入りに
0647名前は開発中のものです。
2015/12/17(木) 22:43:24.00ID:0OdKeQMjありがとうございますマニュアルとか初めて知った・・・
>>645
すいませんネットで見つけたものをコピペしただけだったので・・・
varはバリューの略?だとかってに思ってるんですがC#だと何がいけないんでしょうか?
0648名前は開発中のものです。
2015/12/17(木) 22:44:58.16ID:5ZD2RIjV0649名前は開発中のものです。
2015/12/17(木) 22:49:26.89ID:CLdinnogちょうどC#スレでも話題になってたけど最近はvarが主流になりつつある(らしい)
まあ公式のC#プログラミングガイドで推奨されてたりもするし
0650名前は開発中のものです。
2015/12/17(木) 22:50:46.47ID:0OdKeQMj変数とか書いてあるの見て勝手にfloat見たいなもんと勘違いしてたみたいだ・・・
0651名前は開発中のものです。
2015/12/17(木) 22:51:23.35ID:CLdinnog公式のC#プログラミングガイド
↓
MSDNのC#プログラミングガイド
0652名前は開発中のものです。
2015/12/17(木) 22:57:39.91ID:CLdinnog変数宣言時に、「代入する値を参照して型を決める」のがvarだから、
「float見たいなもん」という点では間違ってはいないと思う
変数宣言時に代入するのが文字列ならstringとしてコンパイル時に型を決定してくれる
0653名前は開発中のものです。
2015/12/17(木) 23:09:58.46ID:H/PVOEMJC#で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
あとで読んでわかりにくいコードは無駄な手間を増やすから避けるべきというお話
0654名前は開発中のものです。
2015/12/17(木) 23:22:47.87ID:42EN6m0T色々なご指摘ありがとうございます…
new Vector2() で動くようになりました!
なぜ書かないといけなかったのかを考えたいと思います。
ありがとうございました
0655名前は開発中のものです。
2015/12/17(木) 23:47:01.98ID:0OdKeQMjけど>>653見たいに人間には片別が付きにくい場合もあるからそこのへんは気をつけて使えよってことか
0656名前は開発中のものです。
2015/12/17(木) 23:56:05.25ID:CLdinnogかなり意味違うから気をつけて
自分の中では後者の意味で書いたんだろうけど他の人にとっては別の意味になるよw
0657名前は開発中のものです。
2015/12/18(金) 00:10:10.65ID:Q3Oo75qC先程からprofilerを眺めているのですが
structをKeyにもつジェネリックなdictionaryのtrygetvalueを呼んだ時にdefaultcompareでgc.collectが走ってしまい結構なオーバーヘッドになっています。
これはdictionaryを使う上で避けられないものなんでしょうか?
ちなみにstruct側はEqualをオーバーライドして等価判断を実装してます。
unityの質問というよりはc#な気がしますが
お願い致します。
0658名前は開発中のものです。
2015/12/18(金) 00:10:40.79ID:B6RkM70a型見てどういう働きさせるか考えるし。
0659名前は開発中のものです。
2015/12/18(金) 00:18:39.03ID:y4yBucq8これも違和感あるけど
0660名前は開発中のものです。
2015/12/18(金) 09:40:30.69ID:uooFc2ruGetHashCodeはオーバーライドした?
Dictionary<TKey,TValue>の場合キーマッチングにHashCodeを使う
構造体GetHashCodeはobject型のを使う訳だけど値型で明示的な実装がされていない場合これにはボックス化が必要になる
キーマッチングが呼ばれるたびにobject型へのボックス化が走るからオーバーヘッドが大きいんだと思う
ボックス化せずにキーマッチングが出来るようGetHashCodeをオーバーライドすればかなりパフォーマンスが違って来ると思うよ
0661名前は開発中のものです。
2015/12/18(金) 10:34:13.62ID:B6RkM70aどなたかわかりませんかね
0662名前は開発中のものです。
2015/12/18(金) 12:09:00.66ID:Q3Oo75qCありがとうございます、なるほどボクシングですか。。
gethascodeはオーバーライドしてましたが
equalはobject引数のやつでした。
dictionaryのコンストラクターにジェネリックのコンペアラーを作って指定しとけばボクシングなしで比較させられるイメージなんでしょうかね。帰宅したら試してみます。
0663名前は開発中のものです。
2015/12/18(金) 12:11:09.10ID:gwBKg3dxnewなら型が一目瞭然だし、
関数の戻り値で代入なら書いてもいいけど、インテリセンスが効くんだから全く必要ない。
0664名前は開発中のものです。
2015/12/18(金) 12:46:50.67ID:uooFc2ru答えが貰えないのは答えがわからんからでなく質問がわからんからだからw
要求するエスパーのレベルが高すぎなんだよ
少し問題を切り分ける努力と情報がないとなんとも言えない
まずレベルをロードした後にInputからボタンの状態は正しく取れてるのか?取れてないならロード前の値を死なないオブジェクトにキャッシュするなどして回避しろ
次にレベルをロードした際に前のシーンの中身が破棄されて参照が切れてたりしないかチェック
レベルがロードされた際に破棄される古いインスタンスを参照していた場合、レベルがロードされた時に参照をとり直さなきゃならん、推測だがここが怪しい
エラーを吐いてるのかどうかすらわからん、実装も全くわからんでは答えられんのも仕方ないだろ
0665名前は開発中のものです。
2015/12/18(金) 13:28:08.07ID:ZJssySOSUnity5.3.0 のMac版をインストールしたところ、UIの文字がつぶれてしまって使えません。
具体的には、
つ ttp://www.dotup.org/uploda/www.dotup.org658569.png
上図のようになってしまったのですが、これを直す方法を知りませんでしょうか?
検索してみましたが、monoDevelopの文字化け対策ばかりヒットしてしまい、解決法が発見できません。
もう、いい加減ハゲそうです…
【環境】
MacOSX 10.9.5
メモリ8GB
iMac2010年モデル
お願いします
0666名前は開発中のものです。
2015/12/18(金) 15:50:46.63ID:gwBKg3dx0667名前は開発中のものです。
2015/12/18(金) 15:54:23.89ID:LlLoZF5i基本的にUnityにはエディタUIのフォントを選んだりサイズを調整したりという手段はない。
つまりOS側の何らかの設定をそのまま使ってるということ。
MacはよくわからんからよくわからんがMacOS側の何かをいじるしかないだろう
0668名前は開発中のものです。
2015/12/18(金) 17:40:17.08ID:uooFc2ruUnityはエディタの改変は割と自由に出来るのもいいところ
https://github.com/anchan828/ChangeEditorFonts
0669名前は開発中のものです。
2015/12/18(金) 19:46:53.46ID:vovoyLY6とりあえず5.2にしてみたら?
それでも変わらなければハード側の問題だろ
0670名前は開発中のものです。
2015/12/18(金) 21:17:02.68ID:eC4OHSbcapkインストールできなく無い?
0671661
2015/12/19(土) 06:18:02.26ID:YGsi/2htすすすみません〜
ありがとうございます。試してみます。
Update(){
Debug.log( Input.GetButton("hoge"));
}
とあった時に、普段はhogeボタン押している間はtrueになりますが、
hogeを押したまま、loadlevelでシーンを読み込むと、
hogeを押したままなのに、falseになってしまうという感じです。
(getButtonは押すという過程が無いと反応しない?)
0672名前は開発中のものです。
2015/12/19(土) 08:35:09.54ID:3jFWitgFまさに>>664がエスパーした通りだったな
0673名前は開発中のものです。
2015/12/19(土) 14:01:49.13ID:DxhqkfnXhttp://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
0674名前は開発中のものです。
2015/12/19(土) 19:16:41.13ID:BNrflbDtmacのunity上ではなんの問題もなく動作するんですがandroidで動かすと
画像が乱れます
http://m.imgur.com/GvbFeuz.jpg
これが普通の状態でパーティクルやオブジェクトを生成すると
http://m.imgur.com/9APIc0N.jpg
こうなります
関係無い部分が乱れてるのがおわかりでしょうか?
どうしたら乱れないように出来るかわかりますでしょうか?
unityは5.3でandroidはnexus9を使っています
0675名前は開発中のものです。
2015/12/19(土) 19:32:53.04ID:GPbneO/a目が痛くなるような画像貼るな
0676名前は開発中のものです。
2015/12/19(土) 19:55:20.13ID:BNrflbDt申し訳ありません
やり直しました
http://m.imgur.com/oTtkUfG.jpg
これが正常な画面で
http://m.imgur.com/vByNAi2.jpg
これが乱れた画面です
枠の部分がおかしくなってるのがおわかりでしょうか?
0677名前は開発中のものです。
2015/12/19(土) 20:08:40.65ID:KkGdz7krごめん、どこがおかしいのかわかんないけど
ピクセルパーフェクトで作ってるから自動的にサイズ調整してくれないってこと?
0678名前は開発中のものです。
2015/12/19(土) 20:39:13.89ID:BNrflbDtフィールドの上部と左右にスロープ気味の枠を設置してるんですけど下の画像では透けて見えたり
変なところに三角形のポリゴンが出たりしてるんですけどわかりませんか?
動いてる画面だと凄くガチャガチャとした変な感じになります
0679名前は開発中のものです。
2015/12/19(土) 21:54:58.14ID:esdi3SKN描画されてないポリゴンがあるのは説明されなくてもわかるがこれだけではなんとも判断つかんね
正面の斜面を見る限り面は2つの三角ポリゴンに分割されているが片方の三角だけが描画されてる
よく見ると裏目側のポリゴンが描画されてるがこれはスロープがボックス状の面を構成していると想像するなら本来裏向きで描画されないポリゴンのはずだ
ここから考えると、何らかの理由でポリゴンの面裏がおかしくなってると推測できるがこの画像からわかるのはここまでだな
あと一枚のポリゴンがえらくでかいのはちと気になる
0680名前は開発中のものです。
2015/12/19(土) 22:11:18.50ID:BNrflbDtビルトインのブロックを使ってるだけなのでポリゴンのモデルがおかしいとは考えにくいのですが・・
>あと一枚のポリゴンがえらくでかいのはちと気になる
さっき試しにブロックを複数に分割して作ってみたのですが結果は同じでした
0681名前は開発中のものです。
2015/12/19(土) 23:16:47.00ID:BNrflbDtパーティクルを表示させる時scaleをいじってたのが悪かったみたいです
scaleをいじるのをやめたら正常に表示されました
0682名前は開発中のものです。
2015/12/20(日) 16:55:49.34ID:kKby6yTSPrefab化した時にスクリプトでpublic 変数で指定したものが一部noneになってインスタンス化してもnoneのままなのですが
これはどういう規則があるんでしょうか?
例えばチュートリアルのsuvival shooterでplayerをPrebabにするとPlayerHealthのHealth SliderとDamage Image がnoneになります
audioclipのDeath Clipは指定されたのが残っています
Prefabに直接Health SliderとDamage Imageを指定しようとしても侵入禁止マークが出てできません
こういった場合は一般的にどうやって指定するのがいいんでしょうか?
0683名前は開発中のものです。
2015/12/20(日) 18:35:21.92ID:oUuZ6MJBいつも通りチュートリアル見ずにエスパーするが
Prefabはヒエラルキーに存在しないからヒエラルキーにあるインスタンスはPrefabでは保持出来ない、アセットにあるものの参照は維持される
ヒエラルキーにあるものを参照したければInstantinateした後でスクリプトで参照をセットするといい
0684名前は開発中のものです。
2015/12/20(日) 19:02:45.82ID:kKby6yTSやっぱりスクリプトでやるのが普通なんですね
安易にヒエラルヒーにある他のGameObjectをPublicで参照するのは止めたほうがいいのかな
とりあえずFindかFindWithTagで地道に参照します
0685名前は開発中のものです。
2015/12/20(日) 21:43:31.06ID:sxkN/Mdb今Photon使って複数人対戦のアクションゲームを作成してまして、
カメラの描画範囲外はポジションの同期せず、範囲内に入ったら同期みたいなことをしようとしてはいるんですけど、
OnWillRenderObjectでカメラの範囲を見るのはわかるのですが同期するしないの設定ってスクリプトから変更することって可能なんでしょうか?
調べてみてもそういう記述が見つからなかったので・・・
ちなみにUnityのバージョンは5.0.4です
(他の方法がありましたらご指南いただければ幸いです m(_ _)m)
0686名前は開発中のものです。
2015/12/20(日) 22:06:52.53ID:Sx2eIhW10687名前は開発中のものです。
2015/12/20(日) 22:26:27.37ID:oUuZ6MJB動作環境がWindows7 SP1以上とあるから無理
0688名前は開発中のものです。
2015/12/21(月) 01:03:14.21ID:HVuMnboW乗ると流されるコンベアのようなギミックを作りたいのですが
transform.Rotateで回転させても、スプライトの画像だけが回転して
コライダー自体は回転していないようでした
このギミックを表現するにはどうしたらいいでしょうか?
■ このスレッドは過去ログ倉庫に格納されています