【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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
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なるほど、ありがとん!
0085名前は開発中のものです。
2014/06/30(月) 01:35:52.30ID:mwLmwaX9簡単に書くとNGUIのイベントの中で自分をDestroy してはいけませんって事
もしすぐにぶちこわしたいのなら
gameObject.SetActive(false);
で非表示にしてから
StartCoroutine("DeleyedDestroy");
みたいにコルーチンを呼び出して
IEnumerator DeleyedDestroy() {
yield return null;
Destroy(gameObject);
}
と1フレーム遅くに破壊しないと駄目
0086名前は開発中のものです。
2014/06/30(月) 01:45:56.31ID:A3spulFoそういうエラーは出てないからこれでいいはず…いいよね?
0087名前は開発中のものです。
2014/06/30(月) 01:59:32.14ID:gCDT1VPEそれ質問じゃないですよアセットおじさん
0088名前は開発中のものです。
2014/06/30(月) 02:04:49.85ID:Q4WnWElNAssetを購入すれば質問になりますよ
0089名前は開発中のものです。
2014/06/30(月) 02:17:23.83ID:1W4uEawqありがとうございます。
NGUIって、普通に文章を表示する、ボタンを付けるという
凝った使い方しない場合はNGUI -> Scripts内のスクリプトって
弄る必要ないですか?
インスペクタだけ弄ってれば一般的なUI機能は使えますか?
0090名前は開発中のものです。
2014/06/30(月) 02:28:54.98ID:mwLmwaX9Assets/NGUI/Scripts/*/*.csの事?
余程特殊(継承したクラスで継承元のprotectでない変数見たいとか)な事しないかぎり普通変更しないよ
0091名前は開発中のものです。
2014/06/30(月) 02:30:18.33ID:1W4uEawqはい、その事です
通常はやはりインスペクタで調整するのですね
ありがとうございました。
0092名前は開発中のものです。
2014/06/30(月) 02:51:01.55ID:1W4uEawqすんなりとはUIが消えてくれません。
デバッグ見るとNGUITools.csの
static public void DestroyImmediate (UnityEngine.Object obj)
{
if (obj != null)
{
★if (Application.isEditor) UnityEngine.Object.DestroyImmediate(obj);
else UnityEngine.Object.Destroy(obj);
}
}
★でエラーが出ていました。
これはNGUIどうのではなく、UIの呼び出し条件、もしくは消去条件のif文あたりが
問題あるのでしょうか?
0093名前は開発中のものです。
2014/06/30(月) 02:56:27.05ID:Q4WnWElNAssetを購入することでエラーも出なくなりますよ
0094名前は開発中のものです。
2014/06/30(月) 04:27:24.95ID:PlJB/HNpUnityは罪深いソフトだよ
0095名前は開発中のものです。
2014/06/30(月) 06:06:06.66ID:xbMO5WXk何でもかんでも質問する人には困るよな
ヒントもらったら自分で何とかしろ
0096名前は開発中のものです。
2014/06/30(月) 06:26:37.61ID:PlJB/HNp0097名前は開発中のものです。
2014/06/30(月) 09:08:37.35ID:A3spulFo0098名前は開発中のものです。
2014/06/30(月) 09:22:50.74ID:PtdaEyYttransform.forwardでこっちに向かって来るというようにしたいのですが、
床に沈んでしまいます。
colliderの調整、rigidbodyのconstraintsのfreeze positionのYにはチェックを入れています。
床に沈まないようにするためにはどのようにすればよろしいのでしょうか?
0100名前は開発中のものです。
2014/06/30(月) 12:04:32.92ID:tC9m33Xe★+ニュース板
・ 2NN (推薦)
・ 2chTimes
★+ニュース板新着
・ 2NN新着
・ Headline BBY
・ unker Headline
★+ニュース板その他
・ Desktop2ch
・ 記者別一覧
★全板
・ 全板縦断勢いランキング (推薦)
・ スレッドランキング総合ランキング
・ ログ速
★全板実況込み
・ 2勢 (推薦)
・ READ2CH
・ i-ikioi
※ 要タイトル名検索
※ 2chブラウザ併用推奨
0101名前は開発中のものです。
2014/06/30(月) 14:20:06.55ID:ALw2LC0OここはPayPalは使えないんでしょうか?
アセットストアから買ったほうがいい?常に最新ではないみたいだけど
0102名前は開発中のものです。
2014/06/30(月) 19:35:37.91ID:UQ1OJf+xライティングはunity内で調整するしかない?
0103名前は開発中のものです。
2014/06/30(月) 19:40:15.99ID:MG2Qxsmaアセットを買えばできるとおもいますよ
0104名前は開発中のものです。
2014/06/30(月) 21:54:47.32ID:mwLmwaX9遅延評価しても駄目って事?(遅延評価の意味わかんないとちょっと論外)
エラーが自分を起点にしている呼び出しの中でImmidiate(即時)のDestroyは駄目って言う事を理解している?
ゲーム用のUIコードをUnity以外で書いた事あればすぐに何が悪いかわかるんだけど、コレは説明が難しいかもしらん。
0105名前は開発中のものです。
2014/06/30(月) 22:42:41.46ID:1W4uEawqすみません、ゲーム制作した事ないので初心者です・・・
完全に知識不足のようなので、とりあえずこの問題は後回しにしようと思います
ボタン連打すれば一応、閉じる事はできるのでゲーム進行不能になるわけではないですし
>エラーが自分を起点にしている呼び出しの中でImmidiate(即時)のDestroyは駄目って言う事を理解している?
半分は理解しているつもりです
「自分を起点」というところがちょっと理解できてないです
0106名前は開発中のものです。
2014/06/30(月) 23:03:48.33ID:PlJB/HNp0107名前は開発中のものです。
2014/06/30(月) 23:07:26.15ID:mwLmwaX9ボタンスクリプトのイベント拾ってその中でDestroy呼んでるのが駄目って事(発生元と消失が一緒)
そうなってない?
0108名前は開発中のものです。
2014/06/30(月) 23:08:14.89ID:MG2Qxsmaアセットを買えばそんなの気にしなくてすむよ
0109名前は開発中のものです。
2014/06/30(月) 23:38:22.83ID:1W4uEawqなるほど
でも発生元はオブジェクトAのInstantiateで消す時は
同じオブジェクトA内で>>85ですね
Instantiateしてからオ同じブジェクトAでDestroyしても
発生元と消失が同じとなるんでしょうか
011085
2014/07/01(火) 03:55:59.52ID:nHreHfmgそりゃ君の書いたコードに依存してるので僕からは何とも言えない。
どうしても添削して欲しいならどこかでコードを晒す以外に無いよ。
0111名前は開発中のものです。
2014/07/01(火) 11:11:04.26ID:85UR2RLR"open_switch"が"false"の場合
"motion_00"を再生します。
2秒したら再生としたいのですが、
下記のように書くとエラーが出てしまいます。
どのように書けばよいでしょうか。。。
宜しくお願いいたします。
var obj:GameObject;
var script:window_control;
function Start () {
if(!obj){
obj=GameObject.FindGameObjectWithTag("untagget");
}
script=obj.GetComponent("window_control");
}
function Update () {
if(script.open_switch==true){
animation.Play("motion_01");
}
else{
yield WaitForSeconds(2.0);
animation.Play("motion_00");
}
}
0112名前は開発中のものです。
2014/07/01(火) 11:12:58.80ID:85UR2RLR説明が足りませんでした。
2秒後ということで、
”yield WaitForSeconds(2.0);”と書くとエラーがでます。
こちらを書かないと、実行可能です。
宜しくお願いします。
0113名前は開発中のものです。
2014/07/01(火) 12:14:02.96ID:wmLFBxvR0114名前は開発中のものです。
2014/07/01(火) 12:30:14.74ID:pEsB09th0115名前は開発中のものです。
2014/07/01(火) 13:33:09.43ID:SbtrGu4q// ==================
// コリジョン
// 機能:プレイヤーヒット時に会話UIメソッドをコールする
// ==================
void OnCollisionStay2D ( Collision2D col ){
// 衝突相手がプレイヤー
if(col.gameObject.tag == "Player")
{
if(GameObject.FindWithTag ("UI") == null &&
PlayerFlag == 1) //PlayerFlagは操作プレイヤー側のフラグ。プレイヤーがボタンを押した場合にON
{
// 会話UI表示メソッド
Kaiwa();
}
if(GameObject.FindWithTag ("UI") != null &&
PlayerFlag == 0) //UI表示時にプレイヤーが再度ボタンを押した場合にクリア
{
// 会話UI消去メソッド
KaiwaDel();
}
}
}
0116名前は開発中のものです。
2014/07/01(火) 13:51:18.75ID:SbtrGu4q// =================================================
// 会話UI表示メソッド
// =================================================
void Kaiwa (){
// 会話ウィンドウ表示
Instantiate(Resources.Load("6.prefabs/UI_1"), windowPos, Quaternion.identity);
}
// =================================================
// 会話UI消去メソッド(開始)
// =================================================
void KaiwaDel (){
// UIを非アクティブ
GameObject.FindWithTag("UI").SetActive(false);
// 消去メソッド本体コール
StartCoroutine("DelMessage");
}
IEnumerator DelMessage (){
yield return null;
Destroy(GameObject.FindWithTag("UI"));
}
というコードをコリジョンされる側に書いています(される側毎に別メッセージを表示するため)
何かおかしな箇所などありますでしょうか
0117名前は開発中のものです。
2014/07/01(火) 18:34:44.20ID:6DDxUZVh0118名前は開発中のものです。
2014/07/01(火) 19:36:17.39ID:85UR2RLR"yield"は、このスクリプトが
当てはめられている、ゲームオブジェクトに流れているモーション
”if”部分の”motion_00”
を2秒待って、次のモーションを流したいと考えています
まだ勉強初めたばかりで、上手く伝えられず申し訳ないです。
また"yield"を使わないでも、制御できるなら、
その手法も教えていただけるとありがたいです。
0119名前は開発中のものです。
2014/07/01(火) 19:37:02.27ID:nHreHfmgそのコードだけ見てる分には原因がつかめないね。
エラーが起きたときのスタックトレース(コンソールでエラーをクリックして表示される詳細)も付けてくれると少しは見えてくるかもしれない。
0120名前は開発中のものです。
2014/07/01(火) 19:37:45.45ID:nHreHfmgvoid Updateの中でyieldしちゃだめじゃないのかな
0121名前は開発中のものです。
2014/07/01(火) 19:53:51.32ID:SbtrGu4qレスありがとうございます。こちらになります。
http://i.imgur.com/TPLQJEH.png
もしかしてコードの問題ではなく、NGUIで構成したUIオブジェクトの作り方に
問題があるんでしょうか
正直、一つのサイトだけでは意味不明だったので色んなサイトを参考にして
つぎはぎのような感じで作ったので・・・
UI_1:子を含めた全ての管理(詳細は理解できていません)
Camera:UIのみを映すカメラ(画面に対する位置はこれで決める?)
Sprite:UIの背景画像オブジェクト(画面に対するUI本体の大きさとかはここで決める?)
Label:UIに表示する文字であるフォントオブジェクト(フォントの種類や大きさはここで決める)
という認識で作りました。
0122名前は開発中のものです。
2014/07/01(火) 19:59:02.35ID:ld0xYEoC多分これ
例えばhanteiって関数を作って、update内を移植
でupdate内でhanteiを実行する
0123名前は開発中のものです。
2014/07/01(火) 22:38:10.43ID:85UR2RLRアドバイスありがとうございます。
ちなみに、2秒後に("motion_00")を再生させるには、
具体的にはどのように関数を入れればよいでしょうか。。。
宜しくお願いします。
var obj:GameObject;
var script:window_control;
function Start () {
if(!obj){
obj=GameObject.FindGameObjectWithTag("untagget");
}
script=obj.GetComponent("window_control");
}
function Update () {
if(script.open_switch==true){
animation.Play("motion_01");
}
else{
yield WaitForSeconds(2.0);
animation.Play("motion_00");
}
}
0124名前は開発中のものです。
2014/07/02(水) 00:39:34.86ID:QoBd/2mX具体的に言うとアセットを買えばいいと思うよ
0125名前は開発中のものです。
2014/07/02(水) 00:47:38.76ID:pKyuPS5V誰が書いても大して変わらないし初心者には良い練習問題だと思うけどな
0126名前は開発中のものです。
2014/07/02(水) 01:17:15.93ID:N3YXxu3xこの辺とかは参考になると思う
ttp://gamesonytablet.blogspot.jp/2012/12/unity.html
とりあえずコピペすれば動くコードよこせとかやってちゃ
進歩はない。
0127名前は開発中のものです。
2014/07/02(水) 01:37:55.46ID:wjodTEe/function Update () {
if(script.open_switch==true)
{
animation.Play("motion_01");
}
else
{
yield StartCoroutine("Wait");
}
}
function Wait () {
yield WaitForSeconds(2.0);
animation.Play("motion_00");
}
これでいけるのでは?
私も上で質問しまくってる初心者ですしCSで書いてるので
保証できませんが今コンパイルしたらエラーは出ませんでした。
yield StartCoroutine("Wait");はWait();でもいいのかもしれません
JSはStartCoroutineでコールしなくてもいいような記述がありましたので
0128名前は開発中のものです。
2014/07/02(水) 01:39:58.83ID:N3YXxu3x0129名前は開発中のものです。
2014/07/02(水) 01:44:47.69ID:wjodTEe/恐らく判定を省略しているのでは?
私も全部は行数オーバーで1回でレスできないので略す事が多いので・・・
■ このスレッドは過去ログ倉庫に格納されています