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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2016/01/11(月) 01:24:43.29ID:r4suKLTg
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質問スレッド21
http://peace.2ch.net/test/read.cgi/gamedev/1447775596/
0669名前は開発中のものです。2016/02/13(土) 07:18:50.84ID:lvzyLYYW
>>668
へえ
そしたら、数日だけ大急ぎでC#の基礎学んだらすぐにUnityでゲーム作りながら学びたいです
ありがとうございました
まあクラスとかインスタンスとかメソッドとかそう言うのが何かとか超基本的過ぎて誰も教えてくれないあたりを
いままでモデリングばっかりしてたからなぁ…
0670名前は開発中のものです。2016/02/13(土) 07:38:40.43ID:CPJuKEWG
>>666
まず何でアップグレードしたのよ
10にアップグレードしたら動作懸念材料が増えるのは分かりきってるじゃん
0671名前は開発中のものです。2016/02/13(土) 09:51:41.33ID:HN4gfjBX
別にいいんじゃね
人柱な方々の自由だろ
0672名前は開発中のものです。2016/02/13(土) 12:13:09.54ID:Nv1ZkVep
unity最近始めた初心者です
unityちゃんホームページでSDunityちゃんをダウンロードしてlocomotionとRaw Mocap Dataで動かせるようにしました
ジャンプも導入したのですが、空中で着地しジャンプモーションが終わった後に一気に地面に落ちるって感じになってしまいます
参考にしたサイトも載せておきます
https://thinkit.co.jp/story/2014/11/06/5372
0673名前は開発中のものです。2016/02/13(土) 12:16:26.20ID:Nv1ZkVep
段差の上から下にジャンプするときの話です
どうやったら自然になるか教えてください
0674名前は開発中のものです。2016/02/13(土) 12:29:42.08ID:aE8V45/Z
求む!上級エスパー
0675名前は開発中のものです。2016/02/13(土) 12:42:23.00ID:YsGh8PMT
>>672
可能性1
その説明サイトに書いていることを完全に完璧に一切どのような間違いもなく作業できていない。
これが出来ているかは君の手元にいるデータを見るしかない。
可能性2
そのサイトの説明が間違えている。
その記事は一年以上前のものでVer4の時代のもの。
デフォルトの設定が変更になっている、追加の設定が必要な場合はありうる。
可能性1を潰したらその人にFaceBookとかで聞けばいい。確かFBにいたはず。
0676名前は開発中のものです。2016/02/13(土) 12:42:34.99ID:o1eRhdUg
あらいぐまラスカルは1年かけて最後には自然に帰されたが、
原作ではたった3日の出来事だったという話
0677名前は開発中のものです。2016/02/13(土) 12:51:25.90ID:NqnwRr5Y
>>672
そのサイトのスクリプトが初心者用に簡単に書かれてて不十分なだけ
本来は接地判定とかしなきゃならない

rigidbodyならスタンダードアセットのサード・パーソンとかで見本になるんだけど
キャラコンのいい見本は知らんからググッてくれ
0678名前は開発中のものです。2016/02/13(土) 14:44:18.28ID:ASzMHWp4
>>653
そういうのは当たり判定でやっちゃダメだと思うぞ
落ち物系のパズルなんだろう?
落ちて状態が確定したら配列と同期とってそこで判断するようにしないとダメだよ。
0679名前は開発中のものです。2016/02/13(土) 15:41:07.77ID:EB3EsSA8
Unityとかやってる奴いのか(笑い)
0680名前は開発中のものです。2016/02/13(土) 15:53:43.59ID:RVXwk8Hf
http://i.imgur.com/A4ZMyMC.png

uGUIで作ったGameObjectを一旦prefab化したんですが、
冷静に考えるとシーン毎に常設するしないはっきり決まってるなと思って
シーンに再配置してprefabの方を消しました。

あとから気がついたのですが、prefabをヒエラルキービューに出した時の
「accept」とかのボタンがあった位置にmissingと出ていて、
名前が赤くなってしまいました。
これの直し方分かる方いませんでしょうかorz
06815712016/02/13(土) 15:58:41.99ID:4vB01Qrv
操作オブジェクトが数フレームめり込む、と相談した物です。
onCollisionEnter使って、お互いの座標とcolliderサイズから位置調整する形で落ち着きました。
スレの方法を試して見たけど、数フレームのめり込み自体は発生するので >>592 だと納得しました。
アドバイスありがとうございました。

レトロな2Dゲームも作れるんだろうけど、Unityは3D向けな印象。
0682名前は開発中のものです。2016/02/13(土) 16:02:25.81ID:RVXwk8Hf
>>680
自己解決、もう一回自らをprefab化することでmissing解消
その上でメニューからGameObject→Break Prefab Instanceし
prefabを改めて消してきちんと切り離すことが出来ました。
0683名前は開発中のものです。2016/02/13(土) 16:05:12.84ID:CO7unFEl
>>680
元のプレファブを削除したときになるから
それ自体をプレファブにすれば戻せるんじゃなかろうか

試しに空のGameObjectを作ってプレファブにして、
プレファブ削除したら同じようなことになるはず
で、その状態のHierarchyのをプレファブにすれば復活はできると思う

あと、元プレファブないのが複数Hierarchyにあるなら修正は注意しないといけないかな
0684名前は開発中のものです。2016/02/13(土) 16:06:25.87ID:CO7unFEl
oh... 書いているときに解決してましたか
0685名前は開発中のものです。2016/02/13(土) 16:13:07.74ID:RVXwk8Hf
>>683-684
ご指摘のとおりでしたありがとうございます!
0686名前は開発中のものです。2016/02/13(土) 23:44:21.79ID:o3tkHv6O
>>681
設計思想みたいなモノは
やっぱどこかに残るよね
0687名前は開発中のものです。2016/02/14(日) 00:00:58.21ID:jXhVptvz
今あったことで、解決はしたんだけど謎の現象

GameObject.FindGameObjectWithTag(
0688名前は開発中のものです。2016/02/14(日) 00:06:52.64ID:jXhVptvz
失礼、なんか切れてしまった

GameObject.FindGameObjectWithTag("Player")でプレイヤーを取得、これが今までまったく問題なく出来ていたのに
あるスクリプトファイル一つだけが、なぜかその方法で取得できなくなっていた
それ以外の全てのスクリプトファイルからはちゃんと今までどおり取得できる
で、試しにtestタグを新設して、Playerタグをそれに切り替えたら普通に
GameObject.FindGameObjectWithTag("test")なんて感じで取得できる

仕方ないからいったんUnityとVC落として気分転換して、再度立ち上げて実行したら
ちゃんとGameObject.FindGameObjectWithTag("Player")で取得できていた

これの直前にやったことといえば、3Dモデルとでもシーンだけ含まれたアセット落としたのと
新しいAnimatorControllerとAvatarMaskを作ったぐらい

まあ解決したっぽいからいいんだけど、ちょっと納得いかない現象でした
皆さんはこれと似たようなことはありましたか?
あったとしたら、どう解決しましたか?
0689名前は開発中のものです。2016/02/14(日) 02:39:42.70ID:AFeuiLuV
面白いスマホゲームを遊びたい人とゲームを遊んでもらいたい制作者の
双方にメリットのあるサイト
http://www.game-smartphone.com/

個人のアプリ開発者が集まって作る新しいプラットフォーム
http://houkago-no.appspot.com/

アンドロイダー
ユーザーと公認アプリ開発者が一緒になって情報発信していくアンドロイドアプリ情報サイト
https://androider.jp/
0690名前は開発中のものです。2016/02/14(日) 08:37:29.42ID:GA0JRD4a
グラボ入れたらUnity全く動かなくなった…
黒い画面から進まない
ナイスブラックって感じっす
もうBlenderしよ…
0691名前は開発中のものです。2016/02/14(日) 16:03:09.01ID:jsVLIggR
animatorとanimationを使い、キャラクターが移動をするアニメを作りました。

http://ks.c.yimg.jp/res/chie-que-1066/1/066/846/865/i320
このようなチップセットで一番左上の侍の上下左右移動アニメを作りました。

キャラクターのゲームオブジェクトを流用し、忍者のアニメも作りたく思います。
このとき、animationとanimatorは流用して、スプライトのみ変更ということはできるのでしょうか。

もしかして、上記上げた画像のキャラクター8体作成しようとすると
animator 8パターン
animation 8*4=32パターン
用意しないといけないのでしょうか。

例えばここに攻撃モーションを追加するとなった時に8パターンのanimatorを全部編集して……というのはできれば避けたく思います……
良い知恵をおかしいただけませんでしょうか。
0692名前は開発中のものです。2016/02/14(日) 16:21:06.82ID:MV7IrGrz
>>691
animationにつけるスプライトパターンは、Unity的にはclipって名前
AnimationClipの動的な差し替えは可能

clip自体の動的な生成は出来ない…はず
UnityEditor機能だから
0693名前は開発中のものです。2016/02/14(日) 16:41:28.89ID:BJfxAvBi
>>691
AnimatorについてはAnimatorOverrideControllerを使う、というのが大体の作法だろう。
http://docs.unity3d.com/ja/current/Manual/AnimatorOverrideController.html
http://docs.unity3d.com/ja/current/ScriptReference/AnimatorOverrideController.html

2Dの方は俺はあんまりよくわからないのでアレなのだが
EditorScript書けば量産自体は可能だろうと思う。
例えばこのページ
ttp://qiita.com/RyotaMurohoshi/items/5cb865c23a50055cf92f
もっとも結構古い記事なのでそのままは使えないかもしれない。
Editor系のクラスは割とざっくり変更されたりするのでカスタムエディタースクリプトも頻繁な見直しを強いられる。

Clip自体の動的な生成も少なくとも3Dでは出来るんだが2Dのはわからん。
けど出来ない理由はないと思うがな。
http://docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html
0694名前は開発中のものです。2016/02/14(日) 16:42:52.56ID:lypsNsp3
たかが数パターンの2DアニメならAnimetor使わなければいいだけだと思うんだが
0695名前は開発中のものです。2016/02/14(日) 16:44:29.60ID:MV7IrGrz
Clipの動的な生成ってできたのか…
出来ないもんだと思ってた
0696名前は開発中のものです。2016/02/14(日) 16:55:09.51ID:MV7IrGrz
AnimationClip.SetCurve
ここも確か個人的に通った道で、
その先さんざん調べまくってどっかでUnityEditorが必要な場面が出てきて諦めた記憶がある
0697名前は開発中のものです。2016/02/14(日) 17:05:01.55ID:BJfxAvBi
多分だが直接RuntimeAnimatorControllerにクリップを入れようとしたんじゃないか。
確かにあれに直接いれようとするとEditorになっちまうんだ。
0698名前は開発中のものです。2016/02/14(日) 17:13:33.04ID:MV7IrGrz
いや、そこは動的に入れ替えできる
それ出来ないと表示中に差し替えできなくなっちゃうし

最終的には、↓の65ページ目あたりを参考にした
http://japan.unity3d.com/unite/unite2015/files/DAY2_1400_room2_Ando.pdf
0699名前は開発中のものです。2016/02/14(日) 17:16:55.71ID:MV7IrGrz
72ページ目が、ちょうど>>691のケーススタディだね
07006912016/02/14(日) 17:47:05.97ID:jsVLIggR
回答有り難うございます。
AnimatorOverrideControllerにたどり着きましたのでこちらでアニメーションを変更させようと思います。
お知恵をお貸し頂き、ありがとうございました
0701名前は開発中のものです。2016/02/14(日) 20:49:32.29ID:MV7IrGrz
uGUIのボタンをAnimationのスプライトに変えたいのですが
http://docs.unity3d.com/ja/current/Manual/script-SelectableTransition.html
上記「Animation」で設定してもスプライトが表示されず、悩んでいます。

表示方法をご存知のかたいましたら、ご教示お願いしますm(_ _)m
0702名前は開発中のものです。2016/02/14(日) 20:59:07.81ID:chGNXPM5
Water4Advanced_cityで海を作ったんだけど
再生すると、それに付随するカメラで何度も以下のエラーが出る
UnityEngine.Camera:Render()
UnityStandardAssets.Water.PlanarReflection
:RenderReflectionFor(Camera, Camera)
(at Assets/Standard Assets/Environment/Water/Water/Scripts/PlanarReflection.cs:200)

このエラーの正体は何ですかね?再生した後console見ると、何百とこのエラーが出現する
0703名前は開発中のものです。2016/02/14(日) 21:14:30.25ID:ZA1oCLSd
>>701
根本的に何か勘違いしてないか?
とりあえずエスパーしてみるが…
uGUIでスプライトアニメーションを表示し、それをボタンとして動作させるのなら
まずuGUIでスプライトアニメーションを表示させる仕組みを実装する必要がある

uGUIでスプライトを表示するのはImageコンポーネントだが、スプライトアニメーションをさせる仕組みは標準では存在しない

>>702
Assets/Standard Assets/Environment/Water/Water/Scripts/PlanarReflection.csの200行目周辺で何をしてるか確認すればいいと思うよ
0704名前は開発中のものです。2016/02/14(日) 21:17:20.36ID:MV7IrGrz
>>703
まじですかorz
ボタンを作って、TransitionをAnimationにして、「Auto Generate Animation」をクリックすると
中身が空っぽのステートマシンが出力されるのですが…
これがAnimationじゃないとすると、どういう用途のものなんでしょうか
0705名前は開発中のものです。2016/02/14(日) 21:48:52.09ID:chGNXPM5
プログラミングはよくわからない初心者なんですが
ショートムービーが作りたく、GAMEで再生してるものを
キャプチャーして、アフターエフェクトかプレミアに
取り込んで、あとでテロップなどを入れて完成させたいです。
録画か連番キャプチャーでおススメはありますか?
0706名前は開発中のものです。2016/02/14(日) 22:19:48.46ID:ZA1oCLSd
>>704
それはAnimationControllerそのものだからAnimationClipをImage.spriteを毎フレーム書き換えるように作れば勿論スプライトアニメーションとして動くよ
ただUnityでのスプライトアニメーションの仕組みは基本的には2Dで使われる前提で用意されたものなのでSpriteRenderer.spriteを書き換える様な形で生成される

SpriteRendererはそのままではuGUIの世界に持って来れないからそのままでは表示されない

もし2D用のAnimationClipをそのまま使うなら
まずSpriteRendererをアタッチして2Dのスプライトアニメーションを動かしておいて、適当なスクリプトで
void Update(){
image.sprite=spriteRenderer.sprite;
}
とかやれば一応アニメーションは表示されるはず。効率の良い方法でないからお勧めはしない

俺なら2D用のスプライトアニメーション(AnimationClip)をuGUI用のスプライトアニメーションに変換するエディタスクリプトを書くかなぁ
0707名前は開発中のものです。2016/02/14(日) 22:29:07.10ID:b6sa9rdO
多重スクロールさせるため、3Dのカメラに2Dスプライトの背景を置いています。
遠いものほどZ軸に遠くに配置し、スケールを大きくすることで、
疑似的な3D感を出せるのですが、毎回スケールを調整するのが手間なので、
どんなZの位置になっても、カメラから見て元の大きさになるスケールの値の
計算方法を教えてほしいです。
0708名前は開発中のものです。2016/02/14(日) 22:33:58.22ID:ZA1oCLSd
>>707
これの改造で行けると思う
http://docs.unity3d.com/ja/current/Manual/DollyZoom.html
0709名前は開発中のものです。2016/02/14(日) 22:37:43.19ID:MV7IrGrz
>>706
なるほどSpriteRendererがuGUIと繋がらないんですね…
ありがとうございます

もうSpriteでOnMouseDownでもいいかなぁ
ご教示いただいたのも含めて、代替方法悩んでみます。ありがとうございました
0710名前は開発中のものです。2016/02/14(日) 23:02:17.41ID:MV7IrGrz
>>706
すみませんもう一点だけ質問させて下さい
UI上でSpriteを管理するためにはImageを使うということはわかったのですが、
同じようにUI上でParticleを使いたい場合、適切なコンポーネントはあるのでしょうか。
RPGのステータス画面で魂っぽいものをParticleで出しており、まだ着手していないのですがこれもボタン化しようとしています。
0711名前は開発中のものです。2016/02/14(日) 23:30:31.65ID:BJfxAvBi
>>707
基準になるスケールがs0としてその時のカメラからの距離のZ軸分がz0として現在のZ距離がz1とすれば
その地点で見かけの大きさが等しくなるためのスケールの値s1は
s1=s0*z1/z0
になる。
0712名前は開発中のものです。2016/02/15(月) 00:53:11.79ID:WVKoljbQ
>>710
流石にパーティクルはuGUIじゃ無理なので一旦RenderTextureに描画してRAWImageに表示かね
0713名前は開発中のものです。2016/02/15(月) 01:06:24.95ID:lEb1B1aG
>>710
最近Unity触ってないから詳しくは忘れたけど、キャンパスの奥行き位置のルールを決める設定があって
そこを弄ればGUIだろうがイメージだろうが3Dモデルだろうがパーティクルだろうが手前に表示出来たはず
オーダーレイヤーの管理が少し面倒になるけどね
0714名前は開発中のものです。2016/02/15(月) 02:02:10.05ID:jG8XJvHU
>>712
ありがとうございます
RawImageについて調べてみます

>>713
ありがとうございます
最悪それでやろうと思ってました…
多重でサブウインドウ開く場合は動的にプライオリティ変更する感じで
0715名前は開発中のものです。2016/02/15(月) 20:20:23.54ID:bslrDr3A
動的なNavMesh生成をするために
平面1枚の巨大なNavMeshから大量のNavMeshObstacleで好きな形に整えてみましたが
NavMeshの頂点が無駄に多くなってしまいました(直線なのに途中に頂点が多数乗っている状態)
このメッシュを最適化する方法ってありますでしょうか?
0716名前は開発中のものです。2016/02/16(火) 01:33:03.02ID:UYXvXO0b
>>715
リアルタイムじゃなくて良いならある、計算幾何学系の本読むとよいかも
0717名前は開発中のものです。2016/02/16(火) 09:51:39.44ID:/t0eiuWk
>>716
ナビメッシュの頂点を操作する方法はあるんでしょうか?
リファレンスを見ても一度作ったメッシュに手を加える方法が見つからないのですが…
0718名前は開発中のものです。2016/02/16(火) 10:22:58.62ID:8AOr0Xt8
>NavMeshの頂点が無駄に多くなってしまいました

NavMeshがどういう物かも良く知らんくせに何故頂点が無駄に多いと思うんだよw
0719名前は開発中のものです。2016/02/16(火) 13:48:26.73ID:lHM7esNH
公式の「SDユニティちゃん 3Dモデルデータ」ってのを落として動かしてみてるんですが
何故かHumanoidリグ版にCharacter Controllerを付けると接地せず微妙に浮く…
Genericでは特にそういった事は無さそうなんですけどこれは何が原因なんでしょうか
0720名前は開発中のものです。2016/02/16(火) 18:23:49.12ID:ZJyPriQc
uGuiで躓いているので質問させてください。書出しはAndroidです。
UI>panel>スクリプトでプレハブを並べる、という流れです。(5x5でプレハブを並べたアイテムインベントリ)
プレハブはPanelの子要素として並べています。
PC上ではPanelに合わせて1個あたりでプレハブのサイズが拡大されるのですが実機(Android端末)ではプレハブを作成したときの小さなサイズのままです。
なぜこうなってしまうのかわからず、手がかりをいただければと書き込みさせていただきました。
質問が拙いのですが何か「これじゃね?」的なものありましたらよろしくお願いします。
0721名前は開発中のものです。2016/02/16(火) 18:58:35.83ID:qVknYHUh
むしろ質問者が手がかりを提示すべきなんじゃないですかね?
Canvasの設定とか
0722名前は開発中のものです。2016/02/16(火) 19:23:16.85ID:ZJyPriQc
仰るとおりでございます(;´Д`)
Canvas Scaler > Scale With Screen size , 1600*900 , Expand ,Peference Pix Per 100
その他Canvasにアタッチされたコンポーネントは初期値のままです。
Canvas>Panelの子として複製されるプレハブはUI>Imageを元にしたもので、アイテムイメージ表示のスクリプトをアタッチしてあるだけのものです。
Panelはプレハブを並べ、アイテムをドラッグしたりするスクリプトをかいてあります。
YoutubeのPiDiさんという方のチュートリアルを動画を見つつPart5まで打ち込み、実機での動きを確認してる状態です。
0723名前は開発中のものです。2016/02/16(火) 23:00:35.64ID:Qd5CqjhQ
AndroidでランキングにLobi、広告にappcを利用しようと実装しているのですが、AndroidManifest.xmlの位置がAssets/Plugins/Android/AndroidManifest.xmlとAssets/Plugins/Android/LobiCore/AndroidManifest.xmlにそれぞれある状況です。
これを片方にまとめたいのですが、片方にまとめてもうまく動作しません。AndroidManifest.xml側でパスの編集とかをしないといけないのでしょうか?

Lobiを適用すると変な階層にAndroidManifest.xmlがあるため同じ経験をした方はご教授おねがいします。
0724名前は開発中のものです。2016/02/17(水) 15:38:37.29ID:l3sG+XyU
public TextAsset txt = null;
private string[] text = new string[100];

void Start()
{
text = txt.text.Split( '\n' );
}

Inspectorでtxtにテキストファイルを入れて
text配列に改行を一区切りして文章を入れたいんだが
ひらがなが入らない…
ひらがなや漢字を入れる方法を教えてください
0725名前は開発中のものです。2016/02/17(水) 15:47:55.32ID:w2r2iz14
>>724
テキストはUnicodeを使用すること。
あと環境によると思うがsplitは(System.Environment.NewLine.ToCharArray())
にした方がいい気がする。stringのsplit引数はstringでもいい筈なんだが
少なくとも4の時は何故かchar[]じゃないと通らなかったんだよな〜。
07267242016/02/17(水) 16:33:27.95ID:l3sG+XyU
>>725
UTF-8 にしたらできた
サンクス
0727名前は開発中のものです。2016/02/17(水) 17:49:22.80ID:HjnSRaCZ
質問失礼します。
iPhone用のゲームを制作中です。

@Application.dataPath
AApplication.persistentDataPath
BApplication.temporaryCachePath
ファイルの保存場所は上記3か所あるようですが、
サーバーからダウンロードしたゲームで使用する画像ファイル等は、
どちらに入れないといけないのでしょうか?

現在はAに入れているのですが、@とAは「容量が大きすぎるとリジェクトされる事もある」という情報を得て困惑しています。
Bなんですかね?
temporaryって名称だったので一時的なファイル置き場で、ある日突然システムから消されるものと勝手に思ってたのですが、違うのでしょうか?
0728名前は開発中のものです。2016/02/17(水) 18:21:14.12ID:CiQJMAsM
>>727
基本的にはBのApplication.temporaryCachePathが正解

ユーザー操作に依らないでサーバーからダウンロードしたゲームで使用する画像ファイルは
なかったらサーバに再取得しに行けば再構築出来るデータなので一時的なキャッシュとして扱うのが適切
またテンポラリファイルである以上、消えている可能性を考慮して存在チェックと再取得の処理を用意しなければならない

@のApplication.dataPathはアプリ本体に内包したデータファイルを指すパスでありapkやappの中になるため特別な理由がない限り書き込みはすべきでない
AのApplication.persistentDataPathはアプリ単体では再構築出来ないセーブデータ等を保存するパス。再構築可能なファイルを保存すべきではない

例外として、ユーザーがURLやファイル指定で設定したプロフィール画像など再取得が不可能な物は
セーブデータとしてpersistentDataPath以下に置くことが好ましい
07297272016/02/17(水) 18:25:33.44ID:HjnSRaCZ
>>728
07307272016/02/17(水) 18:27:51.21ID:HjnSRaCZ
>>728
詳細な情報ありがとうございました!
0731名前は開発中のものです。2016/02/17(水) 19:21:03.73ID:RqlewXbY
>>1のwikiってずいぶん前に更新が止ってるけど
ここ数年は特記すべき変化がないってことなんです?
0732名前は開発中のものです。2016/02/17(水) 19:49:32.80ID:pXcKHMIe
わざわざ編集してやろうとおもうような奇特な奴がいなくなってしまって
すっかり忘れ去られた遺跡だからね
貴方が編集してくれてもいいんだぜ
0733名前は開発中のものです。2016/02/17(水) 19:51:50.70ID:Q/7ANjt6
JavaScriptでマウスエイムを作ろうとしていますが、いくら検索してもC#ばかりで出てこず、
座標取得やスタンダードアセットを参考にしても分かりませんでした。
どうやったらマウスエイムができるのでしょうか?
0734名前は開発中のものです。2016/02/17(水) 19:55:35.80ID:VTFpwTqM
C#のコード読むのが手っ取り早いかと
0735名前は開発中のものです。2016/02/17(水) 21:02:03.22ID:w2r2iz14
せめて自分なりに書いたコードあげて「こう動かない」とかじゃないと
単に「コピペすれば動くコード寄越せ」って言ってるのと変わらん…
0736名前は開発中のものです。2016/02/17(水) 21:11:25.76ID:HvVp5T2l
今自分のゲームにmp3のファイルをインポートしようとしたらなぜか必ずクラッシュします
バージョンは5.3.2を使ってます
前のバージョンでゲームを作っててなんともなかったのに新しいバージョンにして
初めて音楽ファイルをインポートする作業をやり始めたのですがつまってます
同じ症状の人おられますか?
0737名前は開発中のものです。2016/02/18(木) 00:00:38.97ID:7cjKoaWF
Unity初心者です。
初歩的な質問で申し訳無いのですが、よろしくお願いします。
衝突判定の数秒後にゲームオーバ処理を行うため、コルーチンを使ってみたのですがどうも動いてくれません。
以下コードの一部です。

_void OnCollisionEnter(Collision col)
____{
________if (col.gameObject.tag ==
0738名前は開発中のものです。2016/02/18(木) 00:01:08.85ID:7cjKoaWF
Unity初心者です。
初歩的な質問で申し訳無いのですが、よろしくお願いします。
衝突判定の数秒後にゲームオーバ処理を行うため、コルーチンを使ってみたのですがどうも動いてくれません。
以下コードの一部です。

_void OnCollisionEnter(Collision col)
____{
________if (col.gameObject.tag == "TheBoard")
________{
___________StartCoroutine(LateTime(3.0f));
________}
____}

____private IEnumerator LateTime(float time)
____{
________Debug.Log("呼び出し");
________Destroy(this.gameObject);
________Debug.Log("呼び出し破壊");
________GameObject exp = (GameObject)Instantiate(detonator.gameObject, transform.position, Quaternion.identity);
________Debug.Log("呼び出し爆発");
________yield return new WaitForSeconds(time);
________Debug.Log("呼び出し遅延");
________SceneManager.LoadScene("GameOver");
____}

衝突→オブジェクト消滅→爆発処理→数秒待機→画面変遷という流れです。

なんで動かないのか調べるため、試しに衝突後の処理を全てコルーチンに入れてみたのですが、
どうもyieldから呼ばれていないようです。
何か解決策有りましたらよろしくお願いします。
0739名前は開発中のものです。2016/02/18(木) 00:31:48.05ID:dT69GB31
>>738
その状況から察するに、そもそもスタートコルーチンが呼ばれてないんじゃないの?
タグ名間違えてたりしない?
0740名前は開発中のものです。2016/02/18(木) 00:37:14.37ID:dT69GB31
>>738
ごめん
酔ってたからちゃんと読んでなかった

コルーチンを実行してるゲームオブジェクトが、先に破棄されてるんじゃないの?

ゲームオブジェクトはコルーチンが終了してから破棄するか、破棄されるゲームオブジェクトとは関係ない別のゲームオブジェクトからコルーチンを実行してあげるかしないとダメだよ
0741名前は開発中のものです。2016/02/18(木) 01:07:06.84ID:VlmBiCT7
>>736です
unity入れ直したりosを再起動させたりインポートの方法をメニューのassetの
所からやるように変えたら上手くいきました
何が上手くいった理由なのかはわかりませんがw
0742名前は開発中のものです。2016/02/18(木) 03:07:48.85ID:nu+A7gPa
>>738
コルーチン使わなくてもfloat変数作ってそれをTime.deltaTimeで引いた方が早いんじゃない?
0743名前は開発中のものです。2016/02/18(木) 07:32:24.95ID:eRvToBvZ
>>738
コルーチンは
StartCoroutine("LateTime",3.0f);
で呼び出すんじゃないの?
0744名前は開発中のものです。2016/02/18(木) 09:08:54.92ID:AQpi5nFT
>>743
メソッド名が変わった時エラーダンプされないからstring引数は絶対やめたほうがいい
0745名前は開発中のものです。2016/02/18(木) 10:36:59.10ID:TdEi2HK+
http://unity3d.com/jp/learn/tutorials/modules/intermediate/scripting/coroutines?playlist=17117

日本語字幕の短いチュートリアルくらいはやりましょう
0746名前は開発中のものです。2016/02/18(木) 13:55:32.05ID:GiMk5ehq
スクリプトからUIのImageオブジェクトの色を変更したいのですがどうすればよいでしょうか。
this.gameObject.color や GetComponent<Image>() とやってみましたが上手くいきませんでした。
よろしくお願いします。
0747名前は開発中のものです。2016/02/18(木) 14:03:44.62ID:lCecrzSR
また調べるの面倒なのでコピペすれば動くスクリプト貼ってかよ
せめて>>738程度に自分で書いたスクリプト貼ってどこでつまずいたのか書けよ
0748名前は開発中のものです。2016/02/18(木) 14:12:47.31ID:ojlsCmOr
書いてあるように見えるが
0749名前は開発中のものです。2016/02/18(木) 14:13:17.30ID:prkk2VAO
>>746
Image.color
0750名前は開発中のものです。2016/02/18(木) 14:37:11.25ID:lCecrzSR
きちんと GetComponent<Image>()とUIオブジェクト群って コンポーネントと理解してるんだから
>>749のように取得したのに.color指定すればいいだけなのに何処で間違うのかって話
例えば targetImage = child.gameObject.GetComponent<Image>();
target.color = new Vector4(0, 0, 0, 1);
0751名前は開発中のものです。2016/02/18(木) 14:38:49.58ID:lCecrzSR
例えば
TargetImage = child.gameObject.GetComponent<Image>();
TargetImage.color = new Vector4(0, 0, 0, 1);
とかすればいいだけでしょ
0752名前は開発中のものです。2016/02/18(木) 14:52:38.84ID:prkk2VAO
まあ暗黙的にColorに変換されるからいいんだが
何故Colorのコンストラクタ使わないん?
0753名前は開発中のものです。2016/02/18(木) 15:01:23.95ID:ojlsCmOr
質問文よく読まず文句
他人に後乗りで説明
その上我流の変なプログラム教えるとか
害にしかなってないじゃないですか…
0754名前は開発中のものです。2016/02/18(木) 15:07:49.69ID:lCecrzSR
適当に書いただけだから特段意味はないのにそこまで言わるるとはw
foreachとかのスクリプトがなきゃchildのほうも意味不明だろうけどそっちは何もいわないんだね
0755名前は開発中のものです。2016/02/18(木) 15:34:38.72ID:YlmhAb8a
.>>753が文句だけ言ってるアホな子
Vecto4はUnityマニュアルやチュートリアルのcolor値設定でも使われる
0756名前は開発中のものです。2016/02/18(木) 16:00:53.04ID:GiMk5ehq
すいません、Image.color でやってみましたがだめでした。
今、別オブジェクトから、
public UnityEngine.UI.Image hoge;
からドラッグ&ドロップで持ってきたのを、
hoge.color = new Color(1f, 1f, 1f, 1f);
で、やってみたら一応変更は出来ました。
ですが、結局自身からは取得できずじまいが現状です。
(transform.localPositionみたいに簡単にいじれると思っていたのですが)
0757名前は開発中のものです。2016/02/18(木) 16:05:01.59ID:IDSt+o7p
>>756
Image.colorは完全に嘘だぞw
public UnityEngine.UI.Image hoge;
void Start(){
hoge=GetComponent<UnityEngine.UI.Image>().color=new Color(1,0,0,1);
}
とかだろ
0758名前は開発中のものです。2016/02/18(木) 16:09:58.48ID:YlmhAb8a
Image.colorに合わせて>>754がわざわざforeach使う手法示してるのにな
colorの問題じゃなくて単にUIのImageが取得出来てないだけだろ
そもそもUIの下にImageが幾つあるのかって話からだし
>>747じゃないけどスクリプト貼ったほうが早いと思うよ
0759名前は開発中のものです。2016/02/18(木) 16:15:52.44ID:prkk2VAO
>>754
いやまあ俺も>>749しか書いてないから別に完全なコードを書けと言ってるんじゃないよw

だだまあ初心者に教える場合に型を意識させる事はそれなりに意味のある事だと思う
それをわざわざ黙示的変換噛ませてVector4使うって事はそこに俺の知らないなんらかの優位性が
あるのかと思ったから聞いたんよ

まさか理由なく初心者に非効率なやり方教える奴がいるとは思わんかったw

>>757
>>749が示したのはImageクラスのメンバ変数colorに値をセットすればいいって事
そもそもコードにコピペして動く様には書いてないからw
http://docs.unity3d.com/ja/current/ScriptReference/UI.Graphic-color.html
これなw ImageはGraphicを継承してるからImage.colorでなんの問題もないw
0760名前は開発中のものです。2016/02/18(木) 16:20:55.71ID:YlmhAb8a
すごく簡単な事に揉め過ぎだな
Image.colorにあわせてサンプル、これで動くはずだから終わりにしろ

public Canvas canvas;

void Start () {
Image hoge = null;
foreach (Transform child in canvas.transform){
if(child.name == "MainImage"){
hoge = child.gameObject.GetComponent<Image>();
hoge.color = new Color(0, 0, 0, 1);
} else if (child.name == "SubImage") {
hoge = child.gameObject.GetComponent<Image>();
hoge.color = new Color(1, 1, 1, 1);
}
}
}
0761名前は開発中のものです。2016/02/18(木) 16:44:07.58ID:prkk2VAO
>>760
Canvasの参照持つぐらいなら直接Imageの参照持つべきだし
そもそもこのコードだとCanvasの直下の子にあるImageしか取れないし
文字列リテラル決め打ちとかヒエラルキーで名前弄られたら簡単に動かなくなるし

見事な糞コードだなw
0762名前は開発中のものです。2016/02/18(木) 17:12:14.19ID:9yZU1I7x
お?喧嘩かぁ?!
0763名前は開発中のものです。2016/02/18(木) 17:16:44.10ID:+YpOWldA
>>761が今完璧なコードを書いてる途中なんだから茶化さず待ってろ
07647602016/02/18(木) 18:16:55.76ID:XVXWqMLX
孫以下簡略改善版
色変え条件判らんからそこはそのまま
Unity立ち上げて起動確認までしたからどんどん不足分言ってくれ

private Component[] hogeImage;

void Start () {

hogeImage = GameObject.Find("Canvas").GetComponentsInChildren<Image>();

foreach (Image child in hogeImage ) {
if(child.name == "MainImage"){
child.color = new Color(0, 0, 0, 1);
} else if (child.name == "SubImage") {
child.color = new Color(1, 1, 1, 1);
} else if (child.name == "NextImage") {
child.color = new Color(1, 0, 0, 1);
}
}
}
0765名前は開発中のものです。2016/02/18(木) 19:43:17.00ID:prkk2VAO
ヒエラルキーの構造も想定する呼び出し条件もわからんのでは作りにくいなw

マネージャ的にインスペクタから全て設定できる様にしてみた
Graphicが対象なのでImageだけでなくTextなどの色変更も可能
どこに置いても動くので呼び出し元と同じオブジェクトにアタッチしておいて色を変えたいところで↓呼べばおk
GetComponent<GraphicsColorChanger>().DoColorChange();
Graphicを動的生成する場合は生成元でtargetsにセットすること

public class GraphicsColorChanger: MonoBehaviour {
//色とGraphicを保持するクラス
[Serializable]
public class GraphicColor{
public Graphic graphic;
public Color color;
//色の適用処理
//バーチャルなのは色変化アニメーションをさせる等の拡張を想定
public virtual void Apply(){
graphic.color=color;
}
}
public List<ImageColor> targets;
//色変更はApply()呼ぶだけ
public void DoColorChange(){
foreach(var t in targets){
t.Apply();
}
}
}

個人的にはGraphicColorのカスタムプロパティドロアー書いてリスト表示を単一行にしたい感じだ
0766名前は開発中のものです。2016/02/18(木) 19:45:57.31ID:kYQYNaDj
質問がぼけてると回答もぼけるという
わかりやすい例というか
質問者さんもうちょいちゃんと情報を載せような?
0767名前は開発中のものです。2016/02/18(木) 19:48:18.80ID:prkk2VAO
む、途中でGraphic対象にしたのでクラス名間違ってるな

誤)public List<ImageColor> targets;
正)public List<GraphicColor> targets;
0768名前は開発中のものです。2016/02/18(木) 20:20:36.06ID:Ar9aRBLZ
作ってたら、いつの間にか下記メッセージが出るようになっていました

> Some objects were not cleaned up when closing the scene. (Did you spawn new GameObjects from OnDestroy?)

もちろんOnDestroyで何かを作っているということはなく
どこでメモリリーク?しているのか見当がつかないのですが
こういう場合に場所を特定する手法ってありますでしょうか
■ このスレッドは過去ログ倉庫に格納されています