【3Dゲームエンジン】Unity質問スレッド10
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/06/26(木) 23:02:03.72ID:t35CWy1RWindows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他
次スレは>>970を踏んだ方が建てること。ダメなら>>980か>>990が建てて下さい。
■前スレ
【3Dゲームエンジン】Unity質問スレッド9
http://peace.2ch.net/test/read.cgi/gamedev/1399506271/
■本スレ
【3Dゲームエンジン】Unity総合スレッド22
http://toro.2ch.net/test/read.cgi/gamedev/1395140574/
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
http://unity3d.com/japan/
・ユーザーガイド&リファレンス
http://japan.unity3d.com/developer/document/
・チュートリアル
http://japan.unity3d.com/developer/document/tutorial/
・スクリプトリファレンス
http://docs-jp.unity3d.com/Documentation/ScriptReference/
・FAQ
http://answers.unity3d.com/index.html
・MSDN
http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0002名前は開発中のものです。
2014/06/26(木) 23:03:55.25ID:t35CWy1R1、Hiroki Omae FF14、Dota系、タワーディフェンスなど様々なゲームを製作 Game Jam主催者
https://twitter.com/pigeon6
2、GameP-HiRo 「じんどろ」 http://www.youtube.com/watch?v=xjSyu88GSZY お絵かきマルチプレーRTS
https://twitter.com/HiRoGameP
3、Unity仙人 海外のゲーム製作に携わる 海外ゲーム開発者
https://twitter.com/lucifuges
4、TreeBoa じんどろプロゲーマー審査機構JPO
https://twitter.com/treeboa2
http://www.youtube.com/watch?v=C3OFrAFXfPM&feature=plcp
0003名前は開発中のものです。
2014/06/26(木) 23:04:29.81ID:t35CWy1Rhttp://www.amazon.co.jp/gp/product/4798126195/
Unity入門 ~高機能ゲームエンジンによるマルチプラットフォーム開発~←ちょい古い
http://www.amazon.co.jp/gp/product/4797365331/
Unityではじめるゲームづくり←ちょい古い
http://images.amazon.com/images/G/01/richmedia/images/cover.gif
http://www.amazon.co.jp/gp/product/4797367725/
Unityライブラリ辞典 ランタイム編←英語が読めない奴は必須な。
http://www.amazon.co.jp/gp/product/4877832858/
プログラミングC# 第6版←やさしいC#の方がいいかも。
http://www.amazon.co.jp/gp/product/4873115175/
0004名前は開発中のものです。
2014/06/26(木) 23:06:39.45ID:t35CWy1R0005名前は開発中のものです。
2014/06/27(金) 00:08:11.17ID:+acEvyTkWebの亜説斗酢斗亜からダウンロードボタンを押してもUnityが起動しなくなっちゃったんだけど、治す方法ないかな?
chromeとfirefox両方ともダメ。
unity本体をアップデートしてもダメ。
unityを起動した状態で、ダウンロードボタンを押しても無反応。
っていう状態。。。
0006名前は開発中のものです。
2014/06/27(金) 00:19:58.74ID:KoiShBp10007名前は開発中のものです。
2014/06/27(金) 00:44:15.26ID:+acEvyTk0008名前は開発中のものです。
2014/06/27(金) 00:50:10.75ID:+r9gRlrW専用スクリプトアタッチしていくしかないかな
0009名前は開発中のものです。
2014/06/27(金) 01:06:38.79ID:rWeR6aEN0010名前は開発中のものです。
2014/06/27(金) 01:25:10.74ID:+r9gRlrWtimeScaleいじる方法もあるけど他への影響が大きすぎる
0011名前は開発中のものです。
2014/06/27(金) 02:22:38.83ID:0xD5IbAPvar num2 = new Array();
num2[0] = [1, 3, 5, 7, 9];
num2[1] = [2, 4, 6];
num2[2] = [-1, 2, -3, 4];
と打ち込んだ後
Debug.Log(num2[0][0]);
ってうっても配列の値がとれないのですが、どうしらいいのでしょうか?
0012名前は開発中のものです。
2014/06/27(金) 03:42:45.35ID:HuTLzuvuDebug.Log((num2[0]as int[])[0]);
とでも書いておけば出る。
javascript配列はお勧めできない、とはあちこちに書いてあるのでアレだが。
強火で進めのそれはそれでも使いたいなら、ってな記事だろう多分。
0013名前は開発中のものです。
2014/06/27(金) 04:28:13.12ID:IAsKabKVとりあえず、アセットを買えばいいと思うよ
0014名前は開発中のものです。
2014/06/27(金) 09:13:32.57ID:AtX2djQQ大変参考になりました。ありがとうございます。
やっぱりダメなんですねえ。
長い時間悩みましたが、これで踏ん切りがつきました。
0015名前は開発中のものです。
2014/06/27(金) 12:28:31.08ID:XcvyZudo0016名前は開発中のものです。
2014/06/27(金) 12:34:51.73ID:cmQQ2ePkassetをかったらいらないよ
0017名前は開発中のものです。
2014/06/27(金) 13:15:47.27ID:D9vvOnzL未だに理解できません
オブジェクトA(プレイヤー) 十字キーで行動、ボタンを押して調べ物をしたりする
オブジェクトB(プレイヤーが接触する相手) プレイヤーに接触されてプレイヤーがボタン押したら何かする
この場合、オブジェクトB側から「オブジェクトAがXボタンを押した場合」というトリガーを
組みたいのですが・・・
普通にオブジェクトBにif(Input.ButtonDown("x"))・・・だと無理でした
それが出来ないので、今はobjAとobjBの互いで交差するようなフラグ確認処理を行っていますが
若干スパゲティ気味になってしまっています
B側からA側のInputを見れれば全処理をBにするとか、オブジェクトCを作ってCから
AのInputを見たり、とか出来ると思うのですが
0018名前は開発中のものです。
2014/06/27(金) 13:45:25.83ID:cmQQ2ePk0019名前は開発中のものです。
2014/06/27(金) 14:11:53.90ID:sTfUEdhyボタンを押すと色が変わるスクリプトを作成
スクリプトを複数のオブジェクトに適用
ボタンを押すと適用した全てのオブジェクトの色が変わるようになる
ってことじゃないの?
0020名前は開発中のものです。
2014/06/27(金) 14:28:02.49ID:D9vvOnzLなるほど
分かりやすい解説ありがとうございます
では、>>17の場合Inputスクリプトは別スクリプトに書いて
AB両方が持てばいいわけですね
ありがとうございました
0021名前は開発中のものです。
2014/06/27(金) 14:32:26.84ID:2FBemm2K処理的には問題ないから上手くいかないのは別の原因では?
class ObjectB
{
void Update()
{
if(接触された)
{
if(Input.ButtonDown("x"))
{
何かする
}
}
}
}
こういうことでしょ。特に問題ない。
ただコード的にはInput判定はプレイヤー側(ObjectA)に全部纏めたほうが美しいと思うけどね
0022名前は開発中のものです。
2014/06/27(金) 14:43:13.90ID:D9vvOnzL一応、今は「Input系はAのみ」「処理はBのみ」程度の区分分けはできているのですが、
obj_AがInput判定する → InputされたらフラグAを立てる → AがフラグAを立てたかobj_Bが見る
→AがフラグAを立てていればobj_B内でフラグBを立てる → フラグBが立っていればBが処理をする
とobj_A〜obj_B相互間でフラグ立てあって、それを確認しあって・・・とやっていて
明らかにおかしなやり方なので何とかしたいと思っています
互いのフラグの連携にちょっとでもミスがあれば不具合でますし
0023名前は開発中のものです。
2014/06/27(金) 14:54:36.85ID:sTfUEdhyBのゲームオブジェクト取得
Bのスクリプト実行
おわり
0024名前は開発中のものです。
2014/06/27(金) 15:00:50.53ID:2FBemm2K自分はSendMessageは処理を追い辛くなってあまり好きじゃないから
参照を持つかマネージャクラスを介してメソッドコールしてしまうけど
0025名前は開発中のものです。
2014/06/27(金) 15:07:37.00ID:D9vvOnzLなるほど・・・ものすごくスマートにできそうです
ありがとうございます
>>24
メッセージングの使い所がイマイチよく分からないです
同じ名称の処理が複数ある場合は全てコールするとか
コール元はコール先処理が終わるまで待機するなど基本的な仕様は分かるのですが
簡単なゲーム作る程度ならメッセージングは必要ないのかなと思って
あまり理解していないです・・・
0026名前は開発中のものです。
2014/06/27(金) 15:08:17.69ID:D9vvOnzL0027名前は開発中のものです。
2014/06/27(金) 15:39:19.45ID:cmQQ2ePkASSETSTOREで検索してみるといいよ
0028名前は開発中のものです。
2014/06/27(金) 20:02:36.15ID:sTfUEdhy0029名前は開発中のものです。
2014/06/27(金) 20:37:53.61ID:vLZp1tNmポリゴンが変にねじれたりバキバキになったりと表示がおかしくなります。
特にひねるような動作を行った際に目立って起こり、blend weightsの問題かと思ったのですがいじっても直りませんでした。
何が原因なのでしょうか?
0030名前は開発中のものです。
2014/06/27(金) 21:09:10.80ID:cmQQ2ePkアセットストアに行けば解決するとおもいますよ
0031名前は開発中のものです。
2014/06/27(金) 23:26:55.74ID:Cr00NVpI0032名前は開発中のものです。
2014/06/27(金) 23:59:36.38ID:VBUbAcMd必死に煽って新人を蹴落とそうとするアセットおじさん
もう歳だな
0033名前は開発中のものです。
2014/06/28(土) 02:10:37.48ID:tHwGlC5o受け入れてあげようよ。
0034名前は開発中のものです。
2014/06/28(土) 02:24:38.88ID:5+vThgL8病人というのはそういうものだ
0035名前は開発中のものです。
2014/06/28(土) 02:31:48.42ID:yLKDa6TH0036名前は開発中のものです。
2014/06/28(土) 05:37:02.47ID:87q0oUAIマウスクリックでRayを飛ばす時のマウスの代わりにSpriteの座標を使いたい
のですが座標の変換がうまく出来ません。
0037名前は開発中のものです。
2014/06/28(土) 05:59:22.52ID:TXgKbcyLScreen座標が取りたいだけならこうやって取れる
Vector3 SpriteScreenPos(Transform targetSprite) {
BoxCollider bc = targetSprite.GetComponent<BoxCollider> ();
Vector3 pt = bc.transform.TransformPoint (bc.center);
pt = UICamera.currentCamera.WorldToScreenPoint(pt);
Debug.Log("PT:"+pt);
return pt;
}
事前条件はUISpriteやUI2DSpriteのtransformを知っている事とそのスプライトにBoxColliderがある事
0038名前は開発中のものです。
2014/06/28(土) 07:34:48.44ID:87q0oUAI無事座標を取得出来ました。
ありがとうございます!!
0039名前は開発中のものです。
2014/06/28(土) 10:13:38.08ID:Yk7bXAg4できた人いる?
ブレンダーだと再生できないようなんだが
0040名前は開発中のものです。
2014/06/28(土) 11:52:31.81ID:LZ7/FrJO0041名前は開発中のものです。
2014/06/28(土) 12:25:50.62ID:02xn01kMMaya2014では編集できた
0042名前は開発中のものです。
2014/06/28(土) 13:08:19.11ID:h58mMhhZアセットをかえばいいと思うよ
0043名前は開発中のものです。
2014/06/28(土) 13:34:08.82ID:Yk7bXAg4mayaだとできるのか・・・
ブレンダーだと無理なんかな
インポートのFBXは欠陥品なのか
0044名前は開発中のものです。
2014/06/28(土) 14:38:51.36ID:g+sRFGLsこの場合って普通、抽象クラスって作るもんなんですか?
抽象クラス
┗(抽象クラス継承)主人公
┗(抽象クラス継承)味方キャラ1
┗(抽象クラス継承)味方キャラ2
ってするのがいいんですか?セオリー的に
今はDontDestroyOnLoadのマネージャークラス一つだけ作ってシングルトンにして
そのオブジェクト1つに全ての味方のパラメータを乗せてるんですが、こういう管理は問題ありますか?
0045名前は開発中のものです。
2014/06/28(土) 14:41:19.59ID:g+sRFGLsシングルトンクラス(DontDestroyOnLoad)
┗主人公パラメータHP
┗主人公パラメータMP
┗主人公パラメータSTR・・・・以下略
┗味方1パラメータHP
┗味方1パラメータMP
┗味方1パラメータSTR・・・・以下略
┗味方2パラメータHP
┗味方2パラメータMP
┗味方2パラメータSTR・・・・以下略
今はこうしています
必要な時(戦闘時など)は主人公オブジェクトからこのクラスの
パラメータをリダイレクトで読み込んで使う、という感じにしています
0046名前は開発中のものです。
2014/06/28(土) 14:58:34.55ID:h58mMhhZASSETSTOREでいいのが売ってるよ
0047名前は開発中のものです。
2014/06/28(土) 15:50:24.89ID:KY7SHBNCポリモーフィックに使いたいメソッドがあればそれでいい。無ければそうする必要ない
仕様に依るとしか言えない
44に書いた内容だけで継承の是否を判断できる人はいません
シングルトンの方は必然性が感じられない。普通にクラスを実装してインスタンスを作ればいい
無用にグローバルアクセスできるパラメータを増やすのは混乱の元
0048名前は開発中のものです。
2014/06/28(土) 17:01:21.42ID:g+sRFGLsありがとうございます
了解しました
0049名前は開発中のものです。
2014/06/28(土) 17:06:07.88ID:ClpQhuQbそういった実装面での知識はをつけたいなら「Effective C++」 がとても良い。
ほかにもコーディングスタンダードとか、コードデザインの本は色々あるぞ。
グローバルスタンダード的には、
・インターフェース継承はやるけど、クラス継承はなるべくやらない
・まずはコンポジションで表現できないか検討
ってのがセオリー。
セオリーで行けば、
たとえば「体力」「攻撃力」を管理するクラスを作って、各キャラタイプで内臓(コンポジション)
C#なら chara.status.hp = 10 とかで利用。
キャラクターはすべて ICharacter でも作ってIF継承。
じゃないかなぁ。
明確な理由があれば別にセオリーに反して継承してもいいけど、
自分の配下の若い人が継承を使って表現してたら、何で継承したのかは聞くだろうな。
ポリモーフィズム派IFを継承してれば済む話。
継承はコードが読みづらくなるのよ。
0050名前は開発中のものです。
2014/06/28(土) 17:11:47.22ID:TXgKbcyLそこはGoFのデザインパターンも一緒に勧めるべき
つか>>49の解説自体デザパタ語彙が入ってるって気付いて欲しい感じ
#ちなみに純粋にデザパタ学ぶとUnityのクラスツリーに疑問を抱く事もあるかもしらん
0051名前は開発中のものです。
2014/06/28(土) 19:46:49.19ID:g+sRFGLsレスありがとうございます。
なんというか、インターフェイスって実体を持てないので変数宣言できませんよね?
なので普通プロパティを使うんですよね(get;set)
この辺りと、RPGにおけるHPなどの仲間共通のパラメータがどのような
実装になるのかイメージが湧きません・・・
HPとかMPって変数に入れるキャラ単位の定数であって処理じゃないので
それをインターフェイスでどのようにすれば・・・と数時間考えてましたが
ちょっと今の私には技術的に難しいようですし、作りたいものもそんな複雑な
ゲームじゃないので、全味方のパラメータをコンテナ化したコンテナクラス一つ作って
各キャラは、そのコンテナにある自分のパラメータを見に行くようにする、という結論に達しました
まだはじめて間もないので今後C#に慣れてきて、インターフェイスとか抽象クラスを
もっと理解できてきたら、処理を変更しようと思います
せっかくアドバイス頂いたのにすみません
0052名前は開発中のものです。
2014/06/28(土) 20:55:09.08ID:TXgKbcyLpublic interface IPlayerParty {
int hp { get; set; };
int dex { get; set;};
// bra bra bra
}
public class SomeNPCanForPartyCharacter : MonoBehaviour , IPlayerParty {
// bra bra bra
}
こんなふうに組んでおいて,
public class PlayerCharactor : MonoBehaviour {
private List<IPlayerParty> _partyMember;
}
こんな事をプレイヤーが制御するキャラクタで持っていればパーティメンバーは扱えるよね?
0053名前は開発中のものです。
2014/06/28(土) 20:58:56.31ID:LZ7/FrJODebug.Log(Time.time)とかキャストして表示させようとしてもエラーがでます
一体どうなってるんですか
0054名前は開発中のものです。
2014/06/28(土) 21:08:22.02ID:13iiBkApあと、変数名も。
最近はこれがスタンダードなの?
おじさん困惑中。
0055名前は開発中のものです。
2014/06/28(土) 21:14:30.19ID:TXgKbcyLC#文化なんでソコに文句言われても困る。
自分もメソッド名は小文字で始めたいわいと思うけどコーディングルールのMS標準に合わせるとそう成らざるを得ないよ。
Javaだったら非難囂々だよねー
0056名前は開発中のものです。
2014/06/28(土) 21:25:06.89ID:LZ7/FrJO事故解決
0057名前は開発中のものです。
2014/06/28(土) 21:30:21.05ID:g+sRFGLsありがとうございます。
正直、そのコードの理解も厳しいので、もうちょっとUnityというか
C#について頑張ってきます
そのコードについての質問はUnityでなくC#の質問になると思うので
ここでの質問は控えます
ありがとうございました
0058名前は開発中のものです。
2014/06/28(土) 21:39:39.95ID:1D2RjobcC#に慣れ過ぎだとこれ
0059名前は開発中のものです。
2014/06/28(土) 21:40:52.45ID:1D2Rjobc0060名前は開発中のものです。
2014/06/28(土) 21:50:15.58ID:GbXFYWlE混ざってたのかw
0061名前は開発中のものです。
2014/06/28(土) 22:36:30.61ID:UYHm+SxB複数のトランジションが伸びているステートなら、一方のトランジションを再生中でも中断して他のトランジションに移れるそうですが
移行するトランジション優先度はどうやって指定するのでしょうか
0062名前は開発中のものです。
2014/06/28(土) 22:37:37.38ID:ClpQhuQbほかの人が答えてくれてた。
今は、コードデザインに興味を持つ若手が非常に不足してます。
将来のメインプログラマ不足につながってしまうので、ぜひ頑張ってくれー。
0063名前は開発中のものです。
2014/06/28(土) 22:43:40.91ID:h58mMhhZASSETをかえばできるんじゃないでしょうか
0064名前は開発中のものです。
2014/06/28(土) 23:14:23.88ID:LZ7/FrJOまだtransformとかtimeとかグラビチィとかLookAtとかのレベルなんだけど
0065名前は開発中のものです。
2014/06/28(土) 23:38:07.68ID:ClpQhuQb後は調べながらだよ。
0066名前は開発中のものです。
2014/06/28(土) 23:58:38.04ID:g+sRFGLsプログラム全くやった事ないド素人で、1日2時間くらいやって
今3週間目くらいですけど、上手なプログラムとかやり方を選ばなければ
ウインドウ処理以外のRPGの基本処理はできるようになりました
ウインドウ(UI)処理(NGUI)はほんと意味が分からない・・・
unityのスクリプトよりNGUIを使えるか、という方がはるかに不安です
0067名前は開発中のものです。
2014/06/29(日) 00:07:22.26ID:j0JGUa9nそれができるようになるレベルまでには、全力でやる気注げても2年くらいはかかりそう
全力が続かず散発的に触ってたらさらにもりもり時間かかりそう
0068名前は開発中のものです。
2014/06/29(日) 01:28:06.84ID:xlD1U1/Pアセットを買えばプログラムの知識はいりませんよ
0069名前は開発中のものです。
2014/06/29(日) 01:38:41.87ID:sLVZnAPYMSのコーティング規約かー。なるほど。
Java専門だったけど、郷に入っては郷に従え。MSコーディング規約に合わせるべさ。
0070名前は開発中のものです。
2014/06/29(日) 02:13:04.41ID:PBgWw+BZ0071名前は開発中のものです。
2014/06/29(日) 02:18:13.46ID:xlD1U1/Pアセットを買うと回転も簡単だよ
007261
2014/06/29(日) 02:50:01.03ID:V0nwOHaKこれマニュアルに載ってない気が・・・
0073名前は開発中のものです。
2014/06/29(日) 09:31:00.80ID:sLVZnAPYどう解決したのか、わたし気になります!
0074名前は開発中のものです。
2014/06/29(日) 18:39:51.50ID:V0nwOHaK遷移先はリストの上にあるものが優先される(Atomicを外したTransitionを再生中の時のみ)
リストはドラッグ&ドロップで入れ替えられる
メカニムでキャラの動き制御するなら結構重要だと思うんだけどマニュアルにも載ってないしググっても出ない
0075名前は開発中のものです。
2014/06/29(日) 18:42:12.58ID:4QjtsUPRアセットストアで検索したらいいと思いますよ
0076名前は開発中のものです。
2014/06/29(日) 18:47:37.07ID:tXtNTezB★チタンダエル (CV:くぱぁマン子)
成り上がりチョン名家のひとつ、剛毛恥嘆惰毛の一匹。
普段は黒々としたウンコだが、一度興味をひかれる男に出会うと
その細く吊り上がった瞳を濁らせて劣情の権化と化す、性欲旺盛なビッチ。
決まり文句は「わたし、痔になります」。
0077名前は開発中のものです。
2014/06/29(日) 20:24:40.34ID:BwfVhPXRフェードアウト中に他のボタン、例えば前のシーンに戻るボタンや別ステージへ移動するボタンを無効にしたいです。
現在は一つ一つにpublicなboolをつけてシーン遷移時に全てfalseする方法をとっています。
もっと簡潔な方法あったらお願いします。
0078名前は開発中のものです。
2014/06/29(日) 20:59:25.18ID:4QjtsUPRアセットを買うのが一番簡潔な方法ですよ
0079名前は開発中のものです。
2014/06/29(日) 22:19:39.43ID:9oDHnJ4jNGUIなら不可視の全画面のWidget作ってコリダーを付けておき一番手前に置いておけば良いだけ
0080名前は開発中のものです。
2014/06/29(日) 22:55:19.03ID:BwfVhPXRunityの2dでやってます。
コライダー付きのゲームオブジェクトをフェード前に配置する感じにしてみます。
ありがとう。
0081名前は開発中のものです。
2014/06/29(日) 23:27:23.66ID:9oDHnJ4j基本はUIイベントに到達するまえにタップやクリックを食って捨てるだけなので、ButtonMaskとか言うオブジェクトをヒエラルキーのTopLevelに置いておいてそれをSetActiveでOn,Offするのが楽かもね
GameObject mask = GameObject.Find("/ButtonMask"); で持ってくる感じ
0082名前は開発中のものです。
2014/06/29(日) 23:38:39.13ID:BwfVhPXRやり方まで書いてもらってどうもありがとうございます。
これでやってみます。
0083名前は開発中のものです。
2014/06/30(月) 01:08:56.97ID:1W4uEawqしていいんですよね?
「スペースキー押すとUIをInstantiateで表示し、表示した状態で
もう一回スペースキーを押すとDestroyでUI消去する」という処理を作りました
結果は、表示は問題ないのですがスペースキーを押してもUIが消えない
事があります。
正確には、消えたり消えなかったりという感じです。
スペースキー連打してたら消えるのですが・・・。
そのUI表示時にスペースキー押してUIを消そうとした時、デバッグのエラーに
「Destroying GameObjects immediately is not permitted during physics trigger
/contact, animation event callbacks or OnValidate. You must use Destroy instead.」
というエラーメッセージが必ず出ます
何が悪いんでしょうか?(もしかしてNGUIのUIはDestroyしたらダメなんですか?)
0084名前は開発中のものです。
2014/06/30(月) 01:12:17.67ID:i9hyodfOなるほど、ありがとん!
■ このスレッドは過去ログ倉庫に格納されています