トップページgamedev
1002コメント381KB

【3Dゲームエンジン】Unity質問スレッド20 [転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2015/10/07(水) 14:12:24.62ID:NEa3zEWO
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が建てて下さい。

■前スレ
Unity5質問スレ [転載禁止](c)2ch.net
http://peace.2ch.net/test/read.cgi/gamedev/1436359073/

■本スレ
【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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0002名前は開発中のものです。2015/10/07(水) 15:05:09.92ID:IuEuv3p4
>>1
0003名前は開発中のものです。2015/10/07(水) 15:30:14.75ID:fN6OI0C/
サンゲツです。
0004名前は開発中のものです。2015/10/07(水) 15:48:14.57ID:H12k9m6P
おつ

そろそろ質問のテンプレ的なものが欲しいね
無駄が少なく円滑にやり取りできる空気を作れてもいい頃
0005名前は開発中のものです。2015/10/07(水) 16:01:47.42ID:BVQP7JPr
> 作れてもいい頃
さっさと作れよ能なしw
0006名前は開発中のものです。2015/10/07(水) 16:04:41.99ID:gu5txXpw
必要なのはテンプレよりも、どっちかっていうとFAQなイメージ
0007名前は開発中のものです。2015/10/07(水) 17:41:39.51ID:oNq0WAv0
Unity Adsをつけようと思ってたんだけど、これWiFi接続時以外で使ったら大迷惑かな?
0008名前は開発中のものです。2015/10/07(水) 20:47:12.74ID:bLebZZF7
>>7
wifiの時だけ出すとか?

…できるのか知らんけど
0009名前は開発中のものです。2015/10/07(水) 22:26:09.65ID:N69Dej8B
>>7
アド止めるために課金させるのが吉
ゲーム自体がある程度おもしろければ課金してくれる(広告が邪魔だからと言う批評も来るけど)
今って宣伝で話題にならないとインストールしてももらえないから無料枠のゲームとかだと大概がこの手のだよ
あとはサーバログイン必須でアイテム販売系
0010名前は開発中のものです。2015/10/07(水) 22:27:38.58ID:N69Dej8B
補足:国内だったら通信費的にはもう迷惑ってのは無い(スマフォで従量課金な契約自体が無理なので:OSアップデートだけで死亡とかあり得ない)
0011名前は開発中のものです。2015/10/07(水) 22:37:16.02ID:n2uoMFtd
すみません、string xが文字列「input key」かどうか?の判定文ってどう書けばいいですかね?

x == "input key"だと半角スペースが認識しないので
x == "input" + "/s" + "key"とか書いてみたんですがダメでした
0012名前は開発中のものです。2015/10/07(水) 22:51:24.02ID:/wXaUuCM
アイテム課金とかは税金の書類とか作ってAppleに登録とかいるんでしょ?
0013名前は開発中のものです。2015/10/07(水) 22:54:08.29ID:bLebZZF7
>>11

え?普通に通ったよ

void Start ()
{
string x = "input key";
if(x== "input key")
{
Debug.Log("ok");
}
}
0014名前は開発中のものです。2015/10/07(水) 23:00:14.53ID:bLebZZF7
1時間以上ググってわかりませんでした。のでここで聞かせて下さい。

ボタン(UnityEngine.UI.Button)を作ってあり、その参照を取得したいのです。

ボタン自身のスクリプトからだと下記3つがあればボタンの参照を取得できるのですが、
using UnityEngine.UI;
private Button btn;
this.btn = gameObject.GetComponent<Button>();

しかし、他のオブジェクトに付与してあるスクリプトからそのボタンの参照を取得する方法がわかりません。
先輩方、どうが御教示願います。
0015名前は開発中のものです。2015/10/07(水) 23:07:03.09ID:bLebZZF7
>>14

大変申し訳ないです。いま自己解決致しました。
英語サイトならありました。


play = GameObject.Find("Play").GetComponent<Button>();

http://answers.unity3d.com/questions/869129/unity-46-convert-gameobject-into-a-uibutton.html
0016名前は開発中のものです。2015/10/07(水) 23:07:46.37ID:n2uoMFtd
>>13
マジですか・・・
ということは多分違うところに問題があるんですね
ありがとうございました
0017名前は開発中のものです。2015/10/08(木) 00:29:33.38ID:YiRhI7bx
Photon Animator Viewについてなんですが

設定を弄ってもTriggerの同期が上手くいかず
この際全部Boolに変えてしまおうかと考えているんですが
現状はTriggerの同期は難しいですか?
0018名前は開発中のものです。2015/10/08(木) 03:28:56.69ID:RNrhCNdW
GameObjectをsorting layerでZ値に関係なく描画するにはどうすれば良いですか?
0019名前は開発中のものです。2015/10/08(木) 03:58:43.51ID:iECiW2NC
レイヤーマネージャで優先したいもの用のSortingLayerを作る
http://docs.unity3d.com/ja/current/Manual/class-TagManager.html
レイヤーはマネージャの中でドラッグアンドドロップで上下を入れ替えられる。
上のものほど優先して描画される。
Z値に関係なく前に出したいものについてはスプライトレンダラーでそのSortingLayerを指定する
http://docs.unity3d.com/ja/current/Manual/class-SpriteRenderer.html

ということではなく?
0020192015/10/08(木) 04:10:58.83ID:RNrhCNdW
スプライトレンダラーじゃなくて3DオブジェクトのMeshRendereからソートできます?
0021182015/10/08(木) 04:11:46.07ID:RNrhCNdW
>>19
レス番とアンカー間違えた
0022名前は開発中のものです。2015/10/08(木) 04:18:36.15ID:iLMryQEv
UnityエディターのUpdateチェックしてずっとバージョン5.2でやってると長い間ずっと思ってたら、5.1のままだった
不覚…
0023名前は開発中のものです。2015/10/08(木) 04:27:43.14ID:iECiW2NC
>>20
ああ、こういうことか
ttp://tsubakit1.hateblo.jp/entry/2015/01/05/233000
0024182015/10/08(木) 04:46:39.44ID:RNrhCNdW
>>23
うーん・・・最初それやてたんだけど

a.GetComponent<Renderer>().sortingLayerName = "Layer1";
b.GetComponent<Renderer>().sortingLayerName = "Layer2";

これでbが手前に来ない。。。
0025182015/10/08(木) 04:54:59.30ID:RNrhCNdW
なんとなくだけどシェーダー内でワールドpositionやってるからっぽい・・・
0026名前は開発中のものです。2015/10/08(木) 05:07:03.49ID:iECiW2NC
>>24
それが有効になるのはそのページに書いてあるけど
シェーダーがトランスペアレントやアルファブレンドの場合だ。
0027名前は開発中のものです。2015/10/08(木) 09:49:10.94ID:gP5j5Jbu
ちょっとくだらない質問なんですが、
床だけのマップを作ってそこにCubeをプレイヤーとして配置させたんですが
CharacterControlとリジットボディを付けて参考書通りにスクリプト書いたら
見事にゲッダン!するんですこれはCharacterControllerの坂を上る機能と
下に落っこちるリジッドボディの重力判定が関係しているのでしょうか?

UnityはVer5です
0028名前は開発中のものです。2015/10/08(木) 12:46:02.32ID:iLMryQEv
>>27
ゲッダンが解読出来ないのだが…
0029名前は開発中のものです。2015/10/08(木) 15:36:27.50ID:/FhkuLU4
ブルブル震えるとか、そういった意味のニコニコ用語だった気がする
0030名前は開発中のものです。2015/10/08(木) 15:38:23.17ID:TZUY7ywR
要するにハマッて動かなくなってるのかな?
場合分けして原因探らないとなんとも
0031名前は開発中のものです。2015/10/08(木) 15:44:02.70ID:/FhkuLU4
接地周りの値がズレてるのかな。
isGroundedの値はどうなってる? 高速で切り替わってる感じ?
0032名前は開発中のものです。2015/10/08(木) 16:02:15.65ID:UaFHtTMo
>>27
床を厚みのあるオブジェクトにしなさい。
0033名前は開発中のものです。2015/10/08(木) 16:13:56.75ID:/FhkuLU4
例えば、ゲームオブジェクトにスクリプトファイルをアタッチしたとき、
そのインスペクターに以下の表示が出てきますよね?

  Script  [ScriptName]◎

スクリプト名の右側にある丸ボタンを押すと、
「Select Monoscript」というウィンドウ(正式な名称は分かりません)が表示され、
そこにスクリプトの名前がズラっと並びます。

さて、プロジェクトビューのAssetsフォルダにおいて、各スクリプトをフォルダ分けして管理してます。
例えば以下の様な感じです。

  + Assets/
    + Scripts/
      + Players/
        - Mario.cs
      + Enemies/
        - Goomba.cs
        - Paratroopa.cs
        - Luigi.cs

このフォルダ分けを、先のSelect Monoscriptsのウィンドウにも適用させるこは可能でしょうか。
出来ない場合、皆さんはどのように管理してますか。
スクリプト以外のファイルでも同様です。
0034名前は開発中のものです。2015/10/08(木) 17:16:22.28ID:SxCBaw1x
>>33
> 可能でしょうか。
できない

>どのように管理してますか。
「管理」が何を指してるかわからんけどProjectタブが
フォルダ構成をそのまま表示してるので問題がない
ドラッグもできるし◎を押すことがあまりない
探したいファイルの名前が分かっていればProjectタブの検索が早いからそっちでやる
0035名前は開発中のものです。2015/10/08(木) 17:25:06.67ID:/FhkuLU4
一時期、Player_Mario.csみたいなファイル名にしてたこともあるんだけど
やっぱりそれはそれで冗長でなあ。

>>34
なるほど、「そもそも使わない」のね
ありがとう

自分の場合、アタッチ先のプレハブを選択してても
操作ミスでスクリプトをクリックしてしまい、インスペクターがスクリプトのそれになってしまうことが多くて。
まあ気をつけるしかないか。
0036名前は開発中のものです。2015/10/08(木) 17:59:22.29ID:pf4BBmjA
>>27です。is Kinematic
0037名前は開発中のものです。2015/10/08(木) 18:01:14.69ID:pf4BBmjA
>>36誤爆しました・・・
プレイヤーのリジットボディにisKinematicを付けたら問題なく?動くようになりました

>>31
それどこで見れますか・・・マニュアル見ても乗ってなくてわからないです
>>32
試してみます
0038名前は開発中のものです。2015/10/08(木) 18:16:51.25ID:/FhkuLU4
思いっきり載ってる
http://docs.unity3d.com/ScriptReference/CharacterController.html
0039名前は開発中のものです。2015/10/08(木) 20:24:05.45ID:m7LbYpNp
どうでもいい事だけど
テラシュールブログの人って本業よりもブログそのもので稼いでいるのかな?
親切丁寧な説明で結構時間かかるだろうに頻繁な更新しているし
でも広告とか無いよね、うーんわからん

UNITYの達人ならアプリよりもツルハシ商売(UNITY教室とか)したほうが確実に稼げそう
0040名前は開発中のものです。2015/10/08(木) 20:30:49.87ID:pf4BBmjA
>>38
ここで「Ground」で検索したら出てこなかったんですよ・・・
http://docs.unity3d.com/ja/current/Manual/index.html
検索ガバガバで申し訳ない

早速試してみたところ、リジットボディ付き(is KInematic無し)でやると
移動するとき以外は宙に浮いている感じでした(移動中も浮いたり着地をしたりを繰り返していました)
これはやっぱりキャラクターの初期座標が悪いのでしょうか?
0041名前は開発中のものです。2015/10/08(木) 20:57:05.60ID:iECiW2NC
>>40
RigidBodyってのは何か、っていうと要するに衝突や重力の作用に応じて
モノを動かす、っていうコンポーネントなんだよ。
そしてCharactorControllerはRigidBodyに代わって独自にモノを動かす。
http://docs.unity3d.com/ja/current/ScriptReference/CharacterController.html
"CharacterController は Rigidbdy による処理を持たなくてもコリジョンによって簡単に動きの制限を行うことが可能です"

だからその両方がついていると処理のタイミングによっては二重に動作が行われる場合がある。
衝突処理とはどういうものかっていうと基本的には「めり込んだらめり込まないところまで戻す」ってことだ。
それが二重に行われれば二倍戻る。だから浮く。
何故二重に行われない場合があるのかというと恐らくだがFixedUpdateとUpdateの周期の違いが生じた場合だろう。
0042名前は開発中のものです。2015/10/08(木) 21:05:58.25ID:pf4BBmjA
>>41
なるほど・・・。リジッドボディは連鎖的に動かすときに用いて、
CharacterControllerはまるで超能力の如く(あるいはゲーム的に)動かすために使うってことですね
最後の1行はよくわかりませんが、とにかく今はリジットボディとCharacterControllerを一緒に使ってはいけないと覚えておきます

いろいろありがとうございました
0043名前は開発中のものです。2015/10/08(木) 21:08:55.21ID:TZUY7ywR
FixedUpdateとUpdateの違いはわりと重要だから、適当に検索して理解した方が良いぞ
0044名前は開発中のものです。2015/10/08(木) 21:33:59.10ID:pf4BBmjA
>>43
さっそく調べてみました
前者は一定周期で必ず呼ばれるアップデートで、
後者は何かしたら呼び出すアップデート・・・?
ネトゲの定期アプデと臨時メンテみたいなもんですかね、コレ
0045名前は開発中のものです。2015/10/08(木) 21:46:50.57ID:TZUY7ywR
>>44
Updateはフレーム毎に呼び出されるから、仮に30FPSだとしたら秒間30回よばれる
フレーム依存なのでわりと揺らぎがあるとも言える
FixedUpdateはフレーム依存ではなく、こちらが指定したタイミング毎で呼び出される
0046名前は開発中のものです。2015/10/08(木) 22:23:40.14ID:1FynqgHK
>フレーム依存なのでわりと揺らぎがあるとも言える

この理由、俺もよく分かってないんだけど、
フレームはPCスペックや環境によって違うから、で合ってる?
0047名前は開発中のものです。2015/10/08(木) 22:35:40.04ID:TZUY7ywR
あってる
フレーム固定してしまえばまた話は変わってくるけども、開発環境とプレイ実機ではFPS違うし、実機も個体差・種類差あるからね
この問題はUpdate関数だけでなく色々なところで関係してくるから面倒よね(´・ω・`)
0048名前は開発中のものです。2015/10/09(金) 00:40:00.53ID:W3PumFfF
>>12
亀レスでややスレチかもだけどいらないよ
こないだ個人でアカウント作ったけど銀行口座登録までオンラインで完了したよ。まだリリース前だけどSoomla使った実機テストまで完了してる
法人だとDUNSナンバー割り振られてないと面倒があったかな
0049名前は開発中のものです。2015/10/09(金) 01:26:22.35ID:R5Iclk7I
Unity5.3から課金機能がつく予定らしいし、課金アプリデビューしようと思ってはいるけど・・・・
iTunesStoreはカード名義がそのまま公開される名前になるとか各所のブログで見ちゃってためらってしまう
0050名前は開発中のものです。2015/10/09(金) 02:00:41.62ID:W3PumFfF
そこは商売として割り切らなきゃね
どの道アプリ内課金するなら特商法に基づく表記で名前出すのが筋なんだし
0051名前は開発中のものです。2015/10/09(金) 02:18:13.36ID:v+qLy9Xa
という事は芸人みたいに仮の名前にすれば良いのか
無理だろうけど
0052名前は開発中のものです。2015/10/09(金) 02:22:23.94ID:R5Iclk7I
>>50
確かに匿名で商売するなんてあり得ないか
ただ本名でググられたときにどんなアプリを作ってるかばれちゃうのがやや気になってしまう
アプリで食っていけるのならいいけど他の仕事に影響が出ると生活ができなくなるから悩んじゃうね
0053名前は開発中のものです。2015/10/09(金) 02:26:26.84ID:+rJpoLSl
https://developer.apple.com/support/enrollment/jp/
事務所登録して会社としてAppStoreに登録できないかとおもったけどダメかー
氏名をStoreに表示する。例外はないと明記されてるしダメだね
0054名前は開発中のものです。2015/10/09(金) 03:45:36.96ID:peGtMUtl
企業でも代表名は本名必要だしな
0055名前は開発中のものです。2015/10/09(金) 05:57:55.54ID:HMq2j7wK
特定のオブジェクトの位置(座標)にシーン開始時に自動でマウスカーソルを自動で合わせる処理
ってどう書けばいいですかね?

Start()メソッドに
var t = new Point(0, 0);
System.Windows.Forms.Cursor.Position = t;

こう書くと何かアセンブリ関連のエラーがズラッと出てきて
一つ一つ解消する自信がなかったので諦めました・・・。
0056名前は開発中のものです。2015/10/09(金) 06:27:39.67ID:Io5KqEnu
>>55
http://answers.unity3d.com/questions/9408/set-cursor-position.html
0057名前は開発中のものです。2015/10/09(金) 06:59:14.48ID:HMq2j7wK
>>56
ありがとうございます。
「アセンブリに追加する」って、「AssetフォルダにDLLを突っ込む」って事ですよね?
0058名前は開発中のものです。2015/10/09(金) 07:14:30.63ID:Io5KqEnu
>>57
ttp://docs.unity3d.com/ja/current/Manual/PluginsForDesktop.html
やってみないとわからんが前に出したページにも書いてあるがこれは
プラットフォーム依存の処理になるので多分この辺。
そしてWindows以外では動かない。
基本的にその操作は「よく使いそうな処理なのにUnityではできない」ものの代表的な例だ
0059名前は開発中のものです。2015/10/09(金) 08:22:47.57ID:i7l8LcC2
タダでもう一枚カード作れるから、子供の名前で作るのは有りかな。
0060名前は開発中のものです。2015/10/09(金) 13:42:58.60ID:bMi6+gqh
uGUIを使用してチャットログを作成しようとしています。
テラシュールブログさんのスクロールビューを基にスライド部分を作成しているのですが、スライドさせると文字の表示順がおかしくなったりしてしまいます。
以下の部分をUpdate内で動かして、位置の判定をしています。

while (AnchoredPosition - m_diffPreFramePosiiton < 0 ) {
if (nameList.Count == m_instantateItemCount){
m_diffPreFramePosiiton -= ItemScale;
break;
}
var item = m_itemList [0];
var lastItem = m_itemList[m_instantateItemCount - 1];
var pos = lastItem.anchoredPosition.y;
float height = lastItem.FindChild("Message").GetComponent<RectTransform>().rect.height;
pos -= height;
item.anchoredPosition = new Vector2 (0, pos);
m_itemList.RemoveAt (0);
m_itemList.Add (item);

m_diffPreFramePosiiton -= height;

onUpdateItem.Invoke (m_currentItemNo + m_instantateItemCount, item.gameObject);

m_currentItemNo ++;

}
続きます
0061名前は開発中のものです。2015/10/09(金) 13:43:44.09ID:bMi6+gqh
while (AnchoredPosition- m_diffPreFramePosiiton > 0) {
var item = m_itemList [m_instantateItemCount - 1];
var firstItem = m_itemList [0];
var pos = firstItem.anchoredPosition.y;
float height = firstItem.FindChild("Message").GetComponent<RectTransform>().rect.height;
pos += height;
item.anchoredPosition = new Vector2 (0, pos);
m_itemList.RemoveAt (m_instantateItemCount - 1);
m_itemList.Insert (0, item);

m_diffPreFramePosiiton += height;

if(m_currentItemNo > 0)
m_currentItemNo --;

onUpdateItem.Invoke (m_currentItemNo, item.gameObject);
}
0062名前は開発中のものです。2015/10/09(金) 14:45:16.03ID:jQQoftWg
> 逆に言えば熟練すれば高給契約社員も夢じゃない
高w給w契w約w社w員www
夢なのにみみっち過ぎるところがまた
0063名前は開発中のものです。2015/10/09(金) 15:47:07.48ID:MF9N0RRM
恒久契約社員かもしれんぞ…

でどこの誤爆?
0064名前は開発中のものです。2015/10/09(金) 16:08:22.64ID:HMq2j7wK
>>58
難しい・・・
ありがとうございます、参考にします
0065名前は開発中のものです。2015/10/09(金) 17:41:13.97ID:bU12Fwfr
最初に3dを選んでプロジェクトを作った場合、2dを選んだ時と同じようなシーンは作れないのでしょうか?
今、3dのゲームを作っているのですが、ステージセレクト画面やタイトル画面は2dで作りたいと思っています。
ですが、スカイボックスの表示が消えずに困っています。
どなたか初心者にも分かるように説明していただけませんか?
0066名前は開発中のものです。2015/10/09(金) 19:10:12.12ID:vyGCS0Tb
Window - Lighiting - Skybox を None
0067名前は開発中のものです。2015/10/09(金) 21:58:20.74ID:ju//h2+a
カタカナで書くと四角いスイカのイメージが頭にわく
■ このスレッドは過去ログ倉庫に格納されています