- 1 名前:名前は開発中のものです。 [2013/06/25(火) 03:51:44.47 ID:vfI8rCSw]
- 3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。 フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3他 次スレは>>970を踏んだ方が建てること。ダメなら>>980か>>990が建てて下さい。 ■前スレ 【3Dゲームエンジン】Unity質問スレッド4 toro.2ch.net/test/read.cgi/gamedev/1362821620/ ■本スレ 3Dゲームエンジン】Unity総合スレッド19 toro.2ch.net/test/read.cgi/gamedev/1368814728/ ■Unity 2ch Wiki(まとめ、過去ログ、リンク集) www24.atwiki.jp/unity2ch/ ●リンク ・Unity(日本公式サイト) unity3d.com/japan/ ・ユーザーガイド&リファレンス japan.unity3d.com/developer/document/ ・チュートリアル japan.unity3d.com/developer/document/tutorial/ ・スクリプトリファレンス docs-jp.unity3d.com/Documentation/ScriptReference/ ・FAQ answers.unity3d.com/index.html ・MSDN msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
- 38 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 21:47:53.84 ID:sJ+3xnE1]
- >>36
サーバ側にデータ転送して作業ってのは嫌だなぁ
- 39 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 06:54:37.53 ID:ZoD+7PGn]
- ios向けのアクションものでオンライン対戦を実装したいんですが、ラグ回避の為に近くのPing値が高い相手とのみ自動マッチング としたい場合どの関数を使えば良いのでしょうか?
またはオススメのアセットがあれば教えて下さい
- 40 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 09:05:57.29 ID:iOYsZs0F]
- >>39
ん?どの関数使えばいいかって、それってそういう話なのか
- 41 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 09:11:36.04 ID:iOYsZs0F]
- 途中で送信してしまった。
pingだったら、普通に考えると C# ICMP でググったらとか思うが、 俺だったらマッチング用のサーバ側に接続者の平均レスポンス時間とか記録しておいて、 それをクライアントで受けて判断、みたいな処理にするかも。
- 42 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 10:01:18.12 ID:W96c38vY]
- ゲームのロジックより全然簡単だからないんじゃない?
- 43 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 15:26:45.81 ID:ZoD+7PGn]
- >>41
ありがとうございます。 C# ICMPでググってみます
- 44 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 18:14:45.10 ID:i+Ry599W]
- すみません、collider同士はぶつからないのでしょうか?
調べてみたんですがcovenxみたいなのチェックしても全くぶつかりません、すり抜けます。 何か方法はありますか?
- 45 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 20:03:31.87 ID:LTyGmnFP]
- rigidbody付いてる?
- 46 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 06:16:26.70 ID:0666G2kx]
- >>44
code.google.com/p/vga-unity/wiki/GP10UnityCourse08 この表によるとcollider同士の当たり判定は発生しないみたいだな
- 47 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 07:54:28.27 ID:KZfHi7Ou]
- エディタのゲーム画面だけなんだか縦長になってしまったんですがどんな原因が考えられるでしょうか?
- 48 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 13:30:08.50 ID:5TFSWNRY]
- >>47
Gameタブの直下あたりにアスペクトレシオ変更のトグルがあるけど、そこクリックして縦長のになってない? デフォルトだとFree Aspectになってるはずスマフォ向けのBuild設定とかだと各スマフォの代表的な比率で縦長になってると思う
- 49 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 13:38:18.27 ID:sJLUTiYr]
- WWWを使えば、Windows上の保存場所を指定して画像を読み込ませることはできたんですが
音楽や動画をWindows上から読み込ませる方法はあるのでしょうか?
- 50 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 19:48:28.20 ID:S3mjXImB]
- iTweenとiTweenPathのアセットでキャラクターをMoveさせてるんですが、UnityEditor上のPlayだと正常に動くんですが、あるキャラクターだけiOS実機で動かすとiTween通りの動きになりません。
原因わかる方いらっしゃいますか?
- 51 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 23:54:35.68 ID:5TFSWNRY]
- >>49
目的が見えないんでなんともいえないんだが、AssetBundleつかうのでは駄目なのか? これはAudioClipからなにから好きな物を任意のサーバ、ファイルシステムから読み込める。 ただエンドユーザに任意のデータを読み込ませるのには使えない。
- 52 名前:名前は開発中のものです。 mailto:sage [2013/06/29(土) 03:38:57.77 ID:A722NIxA]
- 走りながら攻撃するアニメーションを作りたいんですが
走るアニメーションの下半身と攻撃するアニメーションの上半身混ぜるってできないですか?unityで
- 53 名前:名前は開発中のものです。 mailto:sage [2013/06/29(土) 04:41:52.73 ID:rp4k0FdD]
- できるよ
- 54 名前:名前は開発中のものです。 mailto:sage [2013/06/29(土) 09:35:36.21 ID:5Ubx5ixL]
- 上半身のモデルと下半身のモデルを分けてインポートして
上半身は攻撃のアニメーション、下半身は走るアニメーションをそれぞれ実行 でいいんじゃね?
- 55 名前:名前は開発中のものです。 mailto:sage [2013/06/29(土) 10:03:14.67 ID:ecZ3EAFj]
- >>54
戦車とかロボとか、人間でも境目が隠れてるか良く分からない距離ならそれでもいいよな そこそこアップにもなる全身タイツの人間や動物だと見た目エラい事になるが
- 56 名前:名前は開発中のものです。 mailto:sage [2013/06/29(土) 11:41:00.23 ID:ckDBwhPN]
- >>52
Mecanimのチュートリアルビデオにそんなのがあったぞ 公式からたどれるチュートリアルみてみ
- 57 名前:名前は開発中のものです。 mailto:sage [2013/06/30(日) 18:00:30.84 ID:3EObUEe2]
- ontrigger()だけは絶対に許さん
- 58 名前:名前は開発中のものです。 mailto:sage [2013/07/01(月) 15:44:00.73 ID:ntmGwho6]
- アニメーションのblendってあったよね。たしか。
- 59 名前:名前は開発中のものです。 [2013/07/02(火) 19:31:00.35 ID:IN/I03Ij]
- 初心者です。質問です。
Unity 4をダウンロードし、 ネット上に、PDFの翻訳があった、 3D Platformer Tutorialをやっています。 (このチュートリアルは、Unity 2用みたいですが、 他に理解できそうなチュートリアルが無かったので、このチュートリアルで勉強しようと思いました。) プロジェクトをダウンロードし、 キャラクタLerpzをシーンビューに置いて、Playボタンを押したのですが、 PDFにあるような、背景がありません。(Lerpzだけがシーン上にあります。) 何がおかしいのでしょうか? よろしくお願いします。
- 60 名前:名前は開発中のものです。 [2013/07/02(火) 19:36:55.61 ID:IN/I03Ij]
- 59です。
補足として、PDFは、 ttp://ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/3DPlatformTutorial_jp.pdf です。 このPDFの12ページの時点で止まってます。 13ページにあるような、背景が表示できません。 ググってもよくわからなかったので、質問しました。
- 61 名前:名前は開発中のものです。 mailto:sage [2013/07/02(火) 20:42:34.72 ID:QrQrvwDM]
- >>59
とりあえずやってみて普通にあるので原因は2種類。 ちゃんとシーン開いた? そうじゃなかったらちゃんとカメラを動かしてあたりを見回した? チュートリアルもいいけど、 japan.unity3d.com/developer/document/tutorial/basic/ を見とくのもたぶん大事。取り扱い説明書的なもんだから。 特にシーンビューのナビゲーションってところを見ながら、 シーンビューをどうやって扱うかを理解することも大事。 背景は(-120,0,0)を中心としてる。チュートリアルの一環だと思って頑張れ。 でも、正直Unityの黄色本あたりで勉強したほうが万倍ためになると思います。
- 62 名前:名前は開発中のものです。 mailto:sage [2013/07/02(火) 20:49:37.91 ID:KEvuwOG8]
- >>59
英会話、英文は駄目を前提にしても公式のビデオチュートリアルはまねっこするだけで理解が深まるからマシン二台(ウィンドウひらいてやると狭いから)使ってポーズボタンと併用でやってみそ
- 63 名前:名前は開発中のものです。 [2013/07/02(火) 21:26:31.90 ID:IN/I03Ij]
- >>61 >>62
ありがとうございます。 もう、一度やり直してできました。 すみません、単純ミスでした。 マニュアルの「Scene->TheGame Sceneを見て下さい」という記述を、 ”クリックする”という意味で捉えていませんでした。 (Projectパネルのテクスチャのフォルダを確認?してました。) ほんとうに、ショボいミスですみません。 61さんに教えていただいたリンクなど、一からやり直してきます。 ありがとうございました。
- 64 名前:名前は開発中のものです。 mailto:sage [2013/07/03(水) 13:55:47.04 ID:izHT7B7B]
- >>63
PC系のマニュアルで良くある事。 マニュアルと良いながら、結局分かってる奴を対象にしていたりするからね
- 65 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 16:58:22.14 ID:bC4LrvGo]
- すごく初歩的なことなんですが
例えばTestAというスクリプトの○○という関数を TestBというスクリプトで呼び出すにはどう書けばいいのでしょうか? 言語はC#です。どちらのスクリプトもAssetsの中に入ってます
- 66 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 17:07:08.16 ID:D7cBYMwn]
- 初歩的なら簡単だろ
- 67 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 17:47:39.41 ID:XTJkNQPQ]
- >>65
いろいろありすぎてめんどくさいぐらい方法があって、 そのせいでわかりづらい。実はそんな簡単じゃない。 GameObject gameObjectA に TestA というスクリプトくっつけてるとするね。 TestBがgameObjectAにアタッチされてない場合、だいたい以下の3つ 1.GetComponent 例)TestA testA = gameObjectA.GetComponent<TestA>(); testA.○○(); 2.SendMessage 例)gameObjectA.SendMessage("○○"); 3.staticにしちゃう 例)public class TestA:MonoBehaivior{ public static void ○○; } // in textB TestA.○○ 何度も使うならGetComponent,1度でいいならSendMessage, よくよく理解してて、特性やバグのパターンを把握してるならstatic.素人にはおすすめできない。 どうやってgameObjectAを取得するのか、というと Find()とかOnCollisionEnter()の引数とか、いろいろある。 まぁ、基本はFindしてGetComponentして使ってればいいんじゃないですかね。
- 68 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 17:55:56.03 ID:/6TVIRVM!]
- >>67
質問的にstatic関数では? 普通にTestBから TestA.○○ でおk。
- 69 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 19:21:02.32 ID:Y41MaDA7]
- インスタンスメンバに用があるのかstaticでいいのかって、
大分意味合い変わってくると思うが。 つまり、やりたい事次第だと
- 70 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 20:13:18.91 ID:oToDaWPn]
- static については、gamesonytablet氏が翻訳してる記事を読んでおけば間違いないと思う
gamesonytablet.blogspot.jp/2013/01/unitystatic_8.html
- 71 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 20:59:16.22 ID:Y41MaDA7]
- >>70
なんか特別な話かと思ったらただのC#の 言語レベルの入門記事だった
- 72 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 22:25:46.36 ID:oToDaWPn]
- >>71
まあ、Unity3dで初めてC#(引いてはOOP)に触る人もいるだろうし……と思って
- 73 名前:名前は開発中のものです。 mailto:sage [2013/07/06(土) 08:23:50.84 ID:MvkNwOic!]
- >>70
機械翻訳読み辛いな・・・
- 74 名前:名前は開発中のものです。 mailto:sage [2013/07/06(土) 08:56:23.46 ID:/ZIbqHbZ]
- >>70
>Unityメモリ管理の基礎を積み重ねていこうぜ! ないわー
- 75 名前:名前は開発中のものです。 mailto:sage [2013/07/06(土) 09:25:38.94 ID:GmwLkeYx]
- まぁまぁ、一応そこのおっさん公式マニュアル翻訳してる人だし、
いろいろと多岐に渡って翻訳してくれてるいい人なんだ。 その、なんていうか独特のノリは()暖かい視線で見守っていこうぜ!
- 76 名前:名前は開発中のものです。 mailto:sage [2013/07/06(土) 11:43:29.92 ID:fuFs1zZX]
- あぁだから公式日本語マニュアル糞なのか
- 77 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 09:24:15.53 ID:VqB3Y7Ez]
- 理解深まってもなんだかんだで二年くらい費やすよなw
俺は諸般の事情で3年くらい掛かったけど・・・
- 78 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 10:45:22.58 ID:u+yMDmhn]
- >77
なににそんなかかるの?
- 79 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 12:00:06.00 ID:tfl2dK/2!]
- >>78
ノベル
- 80 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:01:33.82 ID:qf1XaXVI]
- はじめまして。
今Unityでリバーシを作っています。 スクリプト言語はJavaScriptを使っています。 (C#はどちらかとういうと好きではありません・・・) 黒のターンではうまくいくのに白のターンでうまくいかないので質問させてください。 文章を作るのが苦手なために変な文章だったらすいません。 マウス操作でコマを操作し、マウスクリックで盤上にコマを配置してスクリプトでおけるかどうかを判断させています。 置くことができる(何かしらめくれる)ときは、めくる動作がアニメーションに見えるにスクリプトで回転させています。 初期位置からどういう風においても黒は問題なく白をめくって白のターンへ行くのですが、その次白のターンで黒をめくっている途中で動きが止まって黒のターンになってしまっています。 スクリプトで次のターンへ行く前にコンソールに"next turn"と出力させるようにしているのですが、黒のターンが終わる時は出力されても白のターンが途中で止まった時にはそれが出ていません。 "next turn"を出してからターンを次へ送るための関数を呼び出すようにしているので、"next turn"が出ていないのなら白のターンから次のターンへ行っていないと思うのですが・・・ MonoDevelopのDebugでUnityを起動してデバッグをしてみましたが、ViewでDebugを選んでWatchに変数や条件文などを書いてみるとなぜか"Unknown Identifier"と言われてしまい、変数の中身が見られません。 Localのthisの中にあった変数名をWatchに書いてみても同じメッセージが出ます。 現在作成途中のものを以下にアップしてみました。 gmdev.xrea.jp/ [945.zip] 白のターンがうまくいかない作りかけリバーシ 0.22MB 2013-07-08 reversi.zip 黒と白はturnの番号が違うだけでめくる部分の基本的なことは同じようにさせているので、白(turn==0)だけなぜうまくいかないのか・・・ こんな長文ですいません。 どなたかよろしくお願いします。
- 81 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:08:24.57 ID:EL6md65E]
- はじめまして(^_^)
- 82 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:26:44.24 ID:Q2gIaxei]
- Unityを使って簡単なネットワーク対戦ゲームを作成しています。
InstantiateとSceneの遷移部分で上手く同期がとれないため ご教示願いたいと思い、こちらに書き込ませて頂きました。 現在以下のようなSceneを製作しています。 1.LoginScene(サーバへの接続画面のみのシーン) 2.BattleScene(接続後、実際に戦うシーン) ホストとなるユーザはLoginSceneでサーバを建て、 直後にApplication.LoadLevelでBattleSceneへ移行。 BattleSceneにてプレイヤーキャラをNetwork.Instantiateする。 クライアント側はLoginSceneでIP,Portを入力しサーバへ接続、 直後にApplication.LoadLevelでBattleSceneへ移行。 BattleSceneにてプレイヤーキャラをNetwork.Instantiateする。 という流れになっています。 ただこのような手法を取るとクライアント側にホスト側のキャラクタが生成されませんでした 1つのSceneに接続と対戦を合わせた場合は問題は起こらないため、 ホスト側のキャラのInstantiateがクライアントに伝わっていないのだと 考えていますが、良い解決策が思い浮かびません。 もしよろしければより良い方法、またはその方法を調べるためのキーワードを 教えて頂けないでしょうか?
- 83 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:35:31.25 ID:M3ds/1Fi]
- >>80
JSはデバッグしづらいから今のうちにやめておいたほうが 将来得するよ。 で、処理が途中で止まる場合、カウンタが初期化されてないとか ループ中にエラーで強制終了されてるとかその辺じゃないの? Watch出来ない変数はかたっぱしからログに出すか、publicにして エディタから見ればいいのでは?Monoもバグ多いし
- 84 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:42:32.06 ID:opNLJ1Tz]
- >>80
○● ●○ ↓ ●●● 黒1手目 ●○ ↓ ●●● 白1手目(△) △●○ この白1手目の局面で、下記、正解図のように 正しい駒を裏返していない理由を調べたほうが良さげ・・ ●●● 白1手後、正解図 ○○○ ●●△ ←失敗図 ○●○
- 85 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:49:08.79 ID:qf1XaXVI]
- 80です。
そもそもこのリバーシは以前HTML5+JavaScriptで作ったものをUnityに移植させてみようと思ったものです。 SetIntervalで作っていたアニメーション部分をWhileとyieldなどで再現させてみました。 >で、処理が途中で止まる場合、カウンタが初期化されてないとか ループ中にエラーで強制終了されてるとかその辺じゃないの? While(true)という無限ループを使っているので、カウンタが初期化されていないという落ちはありません。 ループ中にエラーで強制終了されてるのでは?という話ですが、デバッグで動きを追ってみると思ってもいないところで条件に引っかかってループを抜け出しているみたいでした・・・ そもそもデバッグ前に変数の値などをコンソール出力させていましたが、それでなかなか解決しなかったのでデバッグに頼ろうって思ってました。 C言語やC++などは好きですが、C#は教わったことはあるもののそのときあまり好きになりませんでした。 あまり自分が興味持たないような内容ばかりで・・・ それ以来全く触ってないので、書き方もほとんど覚えていません・・・w 反対にJavaScriptは自分であれこれやってみたくなるくらい面白いと思えました。
- 86 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:54:24.29 ID:u+yMDmhn]
- スレに自分のゲームにおいて発生するバグの相談をして問題が解決した事がない。
エスパーで解決するレベルなら自分で解決しているものだ。
- 87 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 15:04:56.14 ID:k2F5L4X2]
- ここは解決するスレじゃなくて質問スレだから
解決しなくてもいいんだよ。質問したら終わりwwwww てくらいで考えとけ。 もし似たようなとこではまってた人がいたら ヒントくらいもらえるかもしれない、というダメもとで書け。 もっとまじめに対応してくれというならやってみたくなるような書き方と 全プロジェクトうpしろ
- 88 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 16:26:38.69 ID:LKuAdA2S]
- >>82
Network.Instantiate したプレイヤーキャラが、 LoginSceneに生成されてしまってる。 docs-jp.unity3d.com/Documentation/Components/net-NetworkLevelLoad.html
- 89 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 16:40:30.22 ID:LKuAdA2S]
- >>88
補足 ホストへ接続した直後、ホストからクライアントへ「Network.Instantiate()したよ〜^^」という Messageが到着し、クライアント側のQueueに溜まる。 Network.isMessageQueueRunning がtrueの場合、クライアントは、即座にそれを取り出して実行する。 falseの場合は、取り出さずに保留しておく。破棄されない。 Application.LoadLevel()は別スレッドで走るから、ホストへ接続した直後にApplication.LoadLevel()しても BattleSceneへ移動する前に「Network.Instantiate()したよ〜^^」というMessageが届いてしまい、 結果、LoginSceneにプレイヤーキャラが生成されてしまうこととなる。
- 90 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 19:03:58.04 ID:Q2gIaxei]
- 82です。
>>88 >>89 レスありがとうございます。 また、こちらのレスが遅くなってしまい、申し訳ないです。 >>Application.LoadLevel()は別スレッドで走るから、ホストへ接続した直後にApplication.LoadLevel()しても >>BattleSceneへ移動する前に「Network.Instantiate()したよ〜^^」というMessageが届いてしまい、 >>結果、LoginSceneにプレイヤーキャラが生成されてしまうこととなる。 Message等あまり詳しくありませんが命令キューのようなものを備えているのですね。 LoginSceneで既に生成メソッドが呼ばれている、ということは気づきませんでした。 Network.isMessageQueueRunningについても 非常に有意義な情報を頂いてありがとうございます。 これらの情報を基に以下のような解決方法を考えてみました。 1.LoginSceneの段階でNetwork.isMessageQueueRunningの値をfalseに。 2.接続後、BattleSceneに移り変わった後にNetwork.isMessageQueueRunning=true。 上記のものを試してみます。 本当にありがとうございました。
- 91 名前:88-89 mailto:sage [2013/07/08(月) 20:27:37.65 ID:h9ZVXHtq]
- >>90
それで合ってます。勿体ぶったような書き方になってしまってスマソ // 以下チラ裏 ホストとSceneを同期する場合は、こんな感じで書けばおk C#だとyield使いにくいから、こちらの方が良いかも void OnServerInitialized() { networkView.RPC("RpcChangeScene", RPCMode.AllBuffered, GameRule.sceneId); //GameRuleクラスは自作 } [RPC] void RpcChangeScene(int sceneId) { if (Application.loadedLevel == sceneId) { return; } Network.SetLevelPrefix(sceneId); Network.isMessageQueueRunning = false; Application.LoadLevel(sceneId); } void OnLevelWasLoaded() { Network.isMessageQueueRunning = true; }
- 92 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 21:16:06.32 ID:Q2gIaxei]
- >>91
82です。 先ほど私が書き込んだ方法で問題のほうは解決しました。 ありがとうございます。これで肝心のゲーム内容に移れそうです。 >>void OnServerInitialized() { 以下 RPCを用いてサーバー側がScene変更を制御する形なのですね。 そちらのほうが集中管理できそうなのでそちらも試してみます。 自分の場合、以下のような形で実現していました。 public void OnConnectedToServer() { Network.isMessageQueueRunning=false; LoadNextStage(); } private void LoadNextStage() { Application.LoadLevel("WaitNextStage"); } 最初、Network.Connect()直後にQueueを停止したのですが接続が完了しなかったため 上記のようなOnConnectedToServerで停止するアプローチに変更しました。 RPC周り、LevelPrefix等まだまだ見るところがたくさんありそうですね・・。 度々本当にありがとうございました。非常に参考になります。
- 93 名前:名前は開発中のものです。 [2013/07/08(月) 21:39:31.28 ID:W+O2Yqce]
- はじめまして。
Unityを使って紙芝居のようなアプリを作りたいのですが、objectの当たり判定がうまく設定できず困っています。 やりたいことは、 1.背景画像(Plane)を配置 2.背景画像の手前に人形の画像(Plane、テクスチャは透過PNG)を配置 3.背景画像をクリックすると人形が動く 4.人形の画像をクリックすると音声が流れる 5.人形の画像の透明部分(見た目上は背景画像が表示されている)をクリックした際には背景画像がクリックされたものとみなす なのですが、5の実装方法がわからずに困っています。 objectにPlaneを使用しているのがそもそも間違いなのでしょうか... 説明下手ですみません。 どうかお知恵を貸してください。
- 94 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 22:35:22.56 ID:vfE3F67r]
- >>93
透過ではない部分なら反応するのか?
- 95 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 22:37:39.83 ID:vfE3F67r]
- ---背景画像----
---人形-------- ダミー--- 三層構造で頑張るか・・。
- 96 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 22:47:35.85 ID:Dllv7Vpq]
- 80です。
>>84 そうなる原因は、スクリプトの2次元配列に覚えさせていたゲームオブジェクトの位置とゲーム画面の盤面の位置とが違っていたからでした。 どうして白のターンで黒をめくるときにどこまで行っているかと言うと、回転を制御する変数がなぜか途中までしか変化していませんでした。 本来なら白のターンなら1から0まで0.2づつ減らすようにしていて、 Unityの計算の誤差を考えて0以下になったらそのコマの回転を止めて次の動作―めくれるものがあればめくる、そうでなければ次のターンへ行くようにしているのですが、 なぜか途中の0.6までしか変化していません。 そのあと0より大きいにもかかわらず次の動作―今回は1つしかめくれないので次のターンへ行くようになっています。 コンソールに座標となる変数の値を出力させていて、めくるべきコマの座標やどこまでめくるのかに間違いは見られません。 座標を直したものに実行ファイルをつけてアップしなおしました。 [946.zip] 作りかけリバーシ 座標改良版 実行ファイル(exe)付き 7.15MB 2013-07-08 reversi.zip gmdev.xrea.jp/ 前回のもそうでしたが、Unityファイル(reversi_PvP.unity)はAssets\Sceneにあります。
- 97 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 00:04:26.54 ID:WHyCBKEt]
- >>93
Texture2D.GetPixel() は、テクスチャの特定のドットのColor構造体を返す Color構造体にはAlphaも入ってる
- 98 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 00:07:40.92 ID:WHyCBKEt]
- Color構造体はRGBAを0〜1で扱っているから注意
docs.unity3d.com/Documentation/ScriptReference/Texture2D.html
- 99 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 01:57:04.11 ID:wxLqqgEa]
- >>93
解決方法はたくさん思いつくけど、なんでおまえのような怠け者にタダで教えてやらなけりゃならないの?
- 100 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 02:13:57.52 ID:piIqrNfK]
- >>99
お前が出来無いのは判ったからもう書き込むな
- 101 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 02:50:51.77 ID:wxLqqgEa]
- >>100
まだまだ書き込むよ。
- 102 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 05:47:36.40 ID:aLrF49TP]
- Javascriptを使っています。
関数を呼び出す際、引数の型が数種類用意されている関数がありますが、 あれはどうすれば自作出来るのでしょうか? floatを3つ使うかVector3を使うかを選べるような関数のことです。
- 103 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 07:43:52.17 ID:WHyCBKEt]
- >>102
オーバーロードでググれ Unityのjavascriptで動くかは知らないけど、下のように書けば動くと思う function Move(vec:Vector3){ //処理 } function Move(x:Float, y:Float, z:Float) { //処理 }
- 104 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 08:31:37.79 ID:NO9WJ/Zo]
- JavaScriptなんかやめちまえ!
- 105 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 08:43:42.81 ID:zSC3uj1Q]
- >>96
color 配列は、int 型なのに暗に、float 型を期待していないか? if((turn==0 && color[r2,c2]<=0 || (turn==1 && color[r2,c2]>=1)){ ↓ if((turn==0 && n<=0.0f) || (turn==1 && n>1.0f)){ この行の書き換えでどうなるか試してみて欲しい。
- 106 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 08:57:08.76 ID:aLrF49TP]
- >>103
ありがとうございます、ただ単純に2つ書いてしまえば良いのですね。
- 107 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 10:20:05.19 ID:hP0cZcht]
- >>93
レイヤーもしくはタグの設定かな? 幾通りもあって具体的なコンテンツの概要によって様変わりしてくるから一概に言えないんだわ。 Unityはプロ用ツールなんでメチャ細かいんだよね。 で ここが肝なんだけど細かい割にプログラミングの自由度が無いのでメチャクチャ勉強しないといけない。
- 108 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 10:29:10.51 ID:ol0evQj0]
- >>93
単純にコライダをセットしてRayCastで当たり判定 つけたほうがシンプルな気がする
- 109 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 10:53:59.98 ID:NmJrzQPl]
- >>108
RayCastってポリゴン単位の交差判定じゃね 見かけ上の透過処理で透明に見えてるだけのピクセルとか判断出来ないんじゃね
- 110 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 11:00:33.54 ID:WHyCBKEt]
- >>93
すまん>>97は忘れてくれ 自前で計算する必要は一切無くて、これらを順番に使うだけでイケると思う Camera.ScreenPointToRay() Physics.Raycast() RaycastHit.textureCoord Texture2D.GetPixelBilinear()
- 111 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 11:24:12.81 ID:4ZWPcpqB]
- 80です。
白のターンでめくるのがうまく行かないのは自己解決しました。 (>>105さんの書き込みはそのあとでみましたが、まさにその通りでした。) 0.2ずつ変化させていた値をintに入れて比較に使っていたことが原因でした。 一部抜粋 board[r2,c2].transform.eulerAngles.x=180*n; color[r2,c2]=n; //colorはintで宣言していたために、0か1しか入らない //中略 print("color:"+color[r2,c2]+" (turn==0 && color[r2,c2]<=turn):"+(turn==0 && color[r2,c2]<=turn)); //これを出してみてやっと気がつきました。 if((turn==0 && color[r2,c2]<=turn) || (turn==1 && color[r2,c2]>=turn)){ /*なので黒のターンでは小数をintに入れたときの扱いによって偶然うまく行ったが、 白のターンの時には意図しないところでこの条件に引っかかってしまっていたために めくるのが途中で止まってしまった*/ 以下で黒のターンだと白のターンへ行く前に"next turn"と出力されるのに白のターンでは出なかったのは、 コンソールでCollapseを押していたことが原因のようでした。 これで無事互いにめくることができました。 出来上がったものをアップしなおしておきます。 [948.zip] とりあえず互いにめくることができるようになったリバーシ 7.15MB 2013-07-09 reversi.zip まだ互いのコマの数の表示やおける場所があるか判断して自動パスするのは実装していませんが、 一応遊べなくもないものです。 ありがとうございました。
- 112 名前:名前は開発中のものです。 mailto:sage [2013/07/11(木) 05:47:08.90 ID:o+jBqQg3!]
- PC2台で通信して、A側PCはキャラクターの背後(TPS視点)カメラ、
B側PCはそのキャラがいるマップを上空から見れるカメラみたいに プレイヤーごとに視点カメラを割り振ったりするにはどうすればいいんでしょう?
- 113 名前:名前は開発中のものです。 mailto:sage [2013/07/11(木) 07:38:18.56 ID:SVK4zm1x]
- 自分がAかBか判断するプログラム書いてカメラの位置を移動する
- 114 名前:名前は開発中のものです。 mailto:sage [2013/07/11(木) 19:43:47.51 ID:TcqdQJFO]
- Proのライセンスは2台のPCで使えるからといって友人と割り勘で買ってとしてだ(ダメなの承知で)
それで作ったアプリをそれぞれ個人のAppIDでリリースしてたらライセンス違反バレる?
- 115 名前:名前は開発中のものです。 mailto:sage [2013/07/11(木) 19:54:55.71 ID:MnA4N78X]
- どうやったらバレるの?
- 116 名前:名前は開発中のものです。 mailto:sage [2013/07/11(木) 19:58:07.30 ID:AIu9AUAV]
- バレるかバレないかは問題ではない。
バレたときに家から何から全部失う覚悟があるのかどうか。
- 117 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 01:43:10.69 ID:v7tqpEfT]
- 個人でPro+iOSPro買った俺に謝れ
- 118 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 01:58:10.21 ID:gm2/Ix5a]
- >>117
ごめん >>115 たとえばだけど、プロジェクトのビルド時とか、まさかまさかのアプリ起動時に、 オンラインで認証チェックが走るんじゃないかとかそういう恐怖妄想をしてみた。 だってバレる仕組みがないんじゃOSクリーンインストール繰り返して試用で使い続けてリリースする人がいっぱいいそうだもの。
- 119 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 02:56:57.82 ID:eFTjZRCv]
- >>118
> OSクリーンインストール繰り返して試用で使い続けてリリース 試用期間って、OSじゃなくてアカウントに紐付けられてるんじゃなかったっけ 作り直せば良いと言えばそうだけど、Asset Storeで買った物は消えるな
- 120 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 03:21:06.89 ID:gm2/Ix5a]
- >>119
Unityのライセンス認証で使うメアドとiOS Developer Programのメアドが同じじゃなきゃいけないのでなければ、 Unityの方だけコロコロ変えることは可能ってことになるからバレる仕組みがないと無法地帯な希ガス。
- 121 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 03:23:27.59 ID:gm2/Ix5a]
- >>119
あ!AssetStoreをAppStoreと空目してた! たしかに、Assetは使えなくなるかー。逆にいうとズルしてても制約はそれだけなんだろうか。
- 122 名前:名前は開発中のものです。 [2013/07/12(金) 03:47:36.45 ID:U8kp+ej9]
- 乞食視ね!
- 123 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 08:01:14.66 ID:CPcYi6xU]
- そういうのも含めたPro版の価格だろーよ
- 124 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 10:38:43.29 ID:exwSlWHu]
- 3DSMAXでcubeにテクスチャを使わず色をつけたもの(名前とカラー→オブジェクトカラー)をFBXで吐き出して
Unityに読み込んだら全部シルバーになってしまったんだけど、色情報を維持する方法ってあるんですかね? テクスチャだと面倒だし重くなるので簡単なものならMAXでつけた色を引き継ぎたいんだけど・・・
- 125 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 11:28:07.88 ID:qFWxcSxD]
- ライセンス料を払ってその利便性にみあう資金、利益がある層、
また、抜け穴をやりくりしてでも使いたい層、双方に対応できるってことだね。価格差別ってやつだ。
- 126 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 12:41:47.71 ID:gm2/Ix5a]
- >>122
ズルをするとはいっとらんさかい
- 127 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 13:06:22.05 ID:ONHYLHk3]
- だったら四の五の言わずに二本買えばいいんじゃね?
犯罪行為をしてもバレませんか? と質問しておいて犯罪をするとはいっとらんさかいと 言われても信用皆無だわな
- 128 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 13:16:21.93 ID:cg+FXtMH]
- 契約違反であって犯罪ではないけどな
- 129 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 14:21:42.06 ID:CPcYi6xU]
- 儲かったら買えばいいよ
- 130 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 17:22:11.42 ID:bMu8prF4]
- 友人とお前がゲームを完成させてから悩めばいい事
- 131 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 17:30:19.77 ID:ONHYLHk3]
- 著作権侵害は犯罪だろ、と言おうかと思ったが
>>130の指摘が正論すぎて言葉を失った 確かに完成させない限りは何ら問題にならない(実際には大いに問題だが) この犯罪者予備軍達が犯罪者にならずに済むことを俺は祈るw 俺ごときが祈るまでもなく大丈夫だとは思うがw
- 132 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 18:31:19.91 ID:cg+FXtMH]
- 何が著作権違反なんだ…
明らかに限られた範囲の私的複製なんだから、日本の法律上は問題ないだろ。 デンマーク法は知らないけど。 むしろ、UnityのEULAに「1ユーザー1ライセンスの原則」って明記してあるんだから、 完成させるまでもなく契約不履行で損害賠償を請求される可能性は十分あるけど。
- 133 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 20:30:48.81 ID:ONHYLHk3]
- ん? >>114は二人で使うって言ってるじゃない。私的複製の範囲を超えてる
- 134 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 21:29:44.81 ID:gm2/Ix5a]
- 5万ドル儲かるまで残り半分の支払いは待ってくれ
- 135 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 22:31:58.02 ID:cg+FXtMH]
- >>133
2人だろうが3人だろうが、特定可能な人の間で使うなら私的複製。
- 136 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 22:54:49.76 ID:pIoGzvnf]
- Unityの勉強を始めたいと思っています
近々PCを買い換えるのですが、AMD A8のグラボ無しとかだと厳しいですか? 2Dのゲーム(RPG、SLG)を作りたいと思っているので、それほど高価なPCは必要ないと予想していますが、甘いですか?
- 137 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 23:10:24.01 ID:Tn4nTOmR]
- >>136
自分が2Dとして使うつもりでも、中の仕掛けは平行投影で表示する3Dであって、 「2Dだからロースペックでいい」みたいな話は基本的に見当違い
- 138 名前:名前は開発中のものです。 mailto:sage [2013/07/12(金) 23:26:53.88 ID:U8kp+ej9]
- 2Dならプチコンで作ればいい
|

|