【3Dゲームエンジン】Unity 4 at GAMEDEV
[2ch|▼Menu]
[前50を表示]
650:名前は開発中のものです。
15/07/31 10:19:03.12 WovsSI2/.net
canvas下だとヒエラルキの上位のものから順に書かれていく
Spriteの場合は標準のものだとZwriteがオフになってる
…がZwriteはあまり関係ないはずだから
ちゃんとsortinglayerとsortingorderを指定してやるしかない
s~layer orderが同じスプライトはカメラとの距離でソートされてる気がするので
そこらへんはZの管理で頑張る

651:名前は開発中のものです。
15/07/31 10:28:59.90 3lV6tOCp.net
すみません、質問です。
親オブジェクトに付けたスクリプト内で、
親子関係を付けようと下記処理を書いたのですが、リンクされません。
何が問題か教えてください。
子供発生時、親の座標、回転値で表示されたのですが、親についていかないのです。
子供にはリジッドボディは付いていません。親は有り。
Instance(kodomo, transform.position,transform.rotation);
kodomo.transform.parent=transform;

652:名前は開発中のものです。
15/07/31 10:32:29.23 d/czsGKL.net
自分で作ってみりゃわかるけど2DはZ軸無視
Zがカメラより後ろにあると描写されない
描写順は変わらない
仕様で分る部分をsorting layerで管理、
細かな描写順の調整は order in layer で行うようにしないのは完全に設計ミス

653:名前は開発中のものです。
15/07/31 10:39:25.18 ZHJzifXL.net
>>651
((GameObject)Instance(kodomo, transform.position,transform.rotation)).transform.SetParent(transform);

654:名前は開発中のものです。
15/07/31 10:48:16.06 DOKGhZWC.net
2Dプロジェクトでシーン2つ作ったとして、3つ目のシーンだけ3Dにする(z軸を使う)事ってできる?

655:名前は開発中のものです。
15/07/31 12:51:33.42 AcTFWrHX.net
自分で作ったインスペクタのウィンドウタイトルって変えられないでしょうか?
インスペクタのタイトルタブに名前空間も表示されるんで、見た目が今ひとつ過ぎる…

656:名前は開発中のものです。
15/07/31 13:01:12.93 wWpmL9d1.net
>>653
有難うございました。無事、動作しました。
本当に助かりました。

657:653
15/07/31 13:44:35.39 zR+doXOc.net
>>655は下記の方法で、自己解決しました。
EditorWindow.GetWindow(typeof(Hoge));

EditorWindow.GetWindow<Hoge>("MyTitle");
あと、どなたか>>636について心当たりある方居ませんでしょうか?
(UnityEditorの変更フラグがONにならない以外は正常に動作してます。)

658:名前は開発中のものです。
15/07/31 13:52:14.68 sJXi0pxs.net
オブジェクトAが他のオブジェクト(アザー)にぶつかったとき、
アザーのタグを取得したいんですけどなんて書けばいいかわかりません・・・
GetTagなんたらかんたらって感じでしょうか・・・?

659:名前は開発中のものです。
15/07/31 14:00:53.72 YMxn16nT.net
>>658
CollisionのgameObject.tagじゃだめなのけ?

660:名前は開発中のものです。
15/07/31 14:06:28.92 sJXi0pxs.net
void OnCollisionEnter(Collision other)
{Collision Object.tag}
こんな感じですかね?

661:名前は開発中のものです。
15/07/31 14:09:56.37 YMxn16nT.net
>>660
リファレンスくらい読めばいいのに
void OnCollisionEnter(Collision other) {
string targetTag = other.gameObject.tag;
// hoge hoge fuga fuga
// bra bra bra
}

662:名前は開発中のものです。
15/07/31 14:17:00.82 5SPHf7EG.net
愚痴るくらいなら相手すんなよ
いつもの奴なのに

663:名前は開発中のものです。
15/07/31 15:13:59.72 RhyrBYaZ.net
まったくだ。荒らしに反応する奴も荒らし。これ不変の真理ね

664:名前は開発中のものです。
15/07/31 15:27:26.68 sJXi0pxs.net
void OnCollisionEnter(Collision other)
{
if (other.transform.CompareTag("hoge"))
{Destroy(other.gameObject);
fuge.soundplay();
てやってみたんですが何かしらオブジェクトに当たるたびに
エラーが出て処理ができないです・・・

665:名前は開発中のものです。
15/07/31 16:34:00.96 WovsSI2/.net
そうですか

666:名前は開発中のものです。
15/07/31 17:00:54.18 eoJ/TU2T.net
オブジェクトをプレハブ化してから、弾のように打ちたいのですが、どのようなコードをかければいいのでしょうか?
instantiateを使って何かすればいいんでしょうが、ネット上の情報がバラバラで具体的な方法がいまいち分かりません。

667:名前は開発中のものです。
15/07/31 17:04:11.90 jeCqhKTe.net
せめて日本語のチュートリアルくらいやれよ
初歩の初歩の初歩だろうに

668:名前は開発中のものです。
15/07/31 17:58:17.57 eoJ/TU2T.net
ですからやったうえで、説明が理解できなかったってことです。

669:名前は開発中のものです。
15/07/31 19:06:48.60 Vu5nLFYt.net
いやにふてぶてしいなw
そんなのお察しの通りプレハブをInstantiateして一定方向に動かすだけだと思うんだがな
君に限らないけど
何をどうしたか、何処までは出来たのか、何が上手くいかないのかも詳しく書かずに
丸投げしても教える方も教わる方も誰の得にもならないよ

670:名前は開発中のものです。
15/07/31 19:11:41.65 Lm2yc7i7.net
つかあれだけ詳しく書いてある事を理解できないのにこのスレのアドバイスで理解できると思う頭が凄すぎ。
それとも日本語や英語が苦手って意味か?ハングルとかも選べたはずだぞ。

671:名前は開発中のものです。
15/07/31 19:31:30.05 RhyrBYaZ.net
>>669 >>670
荒らしは失せろ

672:名前は開発中のものです。
15/07/31 19:40:58.38 eoJ/TU2T.net
ネット上の説明にも古いと思われるものが沢山あって、どれが現在のバージョンで使えるのが不明で、混乱しているのですが。

673:名前は開発中のものです。
15/07/31 19:51:04.84 Lm2yc7i7.net
後出しキタ━(゚∀゚)━。
言いたい事があるなら今全部言っとけよ。

674:名前は開発中のものです。
15/07/31 20:06:04.17 QPF7TamU.net
>>668
どのチュートリアルをやったの?
URLを示してくれれば解説するよ

675:名前は開発中のものです。
15/07/31 20:08:05.65 tOs9XGaN.net
>>672
unity5 3Dゲーム開発講座 翔泳社
の、chapter2を、おやりなされ。
するとすぐにできるようになるよ。
数日でこのぐらいできるようになるわさ。
URLリンク(i.imgur.com)

676:名前は開発中のものです。
15/07/31 20:08:59.52 YMxn16nT.net
なんだか久々に思うのだわ
「馬鹿にはムリ」って名言だなぁと

677:名前は開発中のものです。
15/07/31 20:29:46.93 HQFNNlDc.net
リファレンスにズバリそのままの説明があるしな。何故わからないのがわからない。

678:名前は開発中のものです。
15/07/31 22:06:48.24 aotWqykg.net
C#からカメラをorthographicにしたいのですが、どう記述すれば良いですか

679:名前は開発中のものです。
15/07/31 22:35:47.89 HQFNNlDc.net
>>678
なぜなんだぜ
camera.orthographic=true

680:名前は開発中のものです。
15/07/31 22:49:37.53 /tVBaXQz.net
なんかもう基礎が出来てない人が多すぎどんだけ無駄な事してんだか
退屈なようでも基本からやったほうがずっと効率いいのに

681:名前は開発中のものです。
15/07/31 22:51:56.85 aotWqykg.net
Camera camera = new Camera();
camera.orthographic = true;
をStart()でやるだけで合ってる?

682:名前は開発中のものです。
15/07/31 22:52:48.29 aotWqykg.net
camera.orthographic = true;でNullReferenceExceptionが出てる

683:名前は開発中のものです。
15/07/31 23:03:55.26 O0ttBGQQ.net
リファレンス見れないデバッグの仕方も知らない
こんな馬鹿が何人もいるはずない
ここのところずっと似たような質問してるの同一人物だな

684:名前は開発中のものです。
15/07/31 23:13:22.71 HQFNNlDc.net
>>681
メインのかめらの設定を変えたいなら
Camera.main.orthographic=true
スクリプトから新しくカメラ追加したいなら
addcomponentして戻り値をいじればいい

685:名前は開発中のものです。
15/07/31 23:57:43.03 aotWqykg.net
>>684
ありがとうございますタグからIDを参照する必要があったんですねC#をカメラにドロップすれば勝手にくくりつけられると思ってました
Unity使い始めたばかりで使い方わからなくて混乱する

686:名前は開発中のものです。
15/08/01 00:03:39.20 i1+vWcu3.net
>>685
ここはお前のためだけのスレじゃないんだ
個人レッスンして欲しいなら俺を当たりな
1時間5000円で指南してやるよ

687:名前は開発中のものです。
15/08/01 02:34:06.67 z8I0QfK2.net
ゲーム以前の問題なんですが
unityの画面に文字を出力させることができません
サンプルコードの通りに打っているのでプログラムにミスはないと思います
単に保存して実行するだけではダメなんでしょうか?

688:名前は開発中のものです。
15/08/01 03:01:44.94 jY947x09.net
GameObjectとしてSceneに配置しないとダメ

689:名前は開発中のものです。
15/08/01 07:09:42.68 N5rDgKfW.net
初心者だとデバッグのやり方がわかったところでバグを修正できないことなんて良くあるだろ
質問スレで質問が気にくわないなら見るのをやめるか無視してればいいのになんでも思い通りにならないと許せないお子様かな?

690:名前は開発中のものです。
15/08/01 07:18:38.30 2ZzDYBuY.net
URLリンク(japan.unity3d.com)
お願いだから最低これをやってから質問してくれ。
これが理解できないなら適正ないから止めたほうが無難。

691:名前は開発中のものです。
15/08/01 07:51:45.11 yel3dFfv.net
>>677
リファレンスの不親切な説明が、初心者に理解しにくい普通のことでしょうが。
でなければ、初心者向けの解説書なんて必要ないんだから。
その程度のことも分からないんですね。

692:名前は開発中のものです。
15/08/01 07:52:56.43 yel3dFfv.net
>>675
ありがとうございます。googlebookにありました。

693:名前は開発中のものです。
15/08/01 08:09:12.83 U5fFq4PZ.net
あれほど単純に説明してあるリファレンス読んでわかんないならやめればいいのに
googlebooksで覗き見とか端をしればいいのに

694:名前は開発中のものです。
15/08/01 08:28:27.25 IxTSbC0V.net
>>693
そこが問題なんでしょうね。
HelloWorldの表示ができてから、リファレンスなところを、いきなりリファレンスが多いのでは?
プログラムの初心者かどうかで分かれるよね。

695:名前は開発中のものです。
15/08/01 08:41:46.07 2ZzDYBuY.net
だからtutorialをやって欲しい。
何故tutorialで解らない事が書籍等なら解ると思えるのか。
本家動画なら完璧だけど日本の公式でも初心者レベルなら下手な書籍より詳しく解説してあるのに。

696:名前は開発中のものです。
15/08/01 10:11:32.85 Kqi02M3B.net
チュートリアルは、あれ以上簡単にならないと思った方がいい
だからあれを理解するまで繰り返しやる、調べる
それが出来ないとこの先も無理
Unityのチュートやる→C#の適当なテストプログラム作る を繰り返して上手くなるように努力した方がいい

697:名前は開発中のものです。
15/08/01 11:52:30.76 OJSte7FI.net
もっともだが、ここの質問の9割はチュートリアル、リファレンス、ググる。
これのいずれかで解決するからな。
そういったことすらできない初心者以前の輩を排除したらこのスレ誰も書き込まなくなるべ

698:名前は開発中のものです。
15/08/01 11:53:01.20 YjJigv1K.net
エスパーたちが集うUnity初心者質問スレ
みたいなスレをたてた方がいいかもね

699:名前は開発中のものです。
15/08/01 12:43:16.42 SKqTXBOa.net
みんなエスパーだよ!
夏帆のパンチラ全開だったな。
サトリン?も後半はエロエロ。

700:名前は開発中のものです。
15/08/01 14:39:14.68 Kqi02M3B.net
そもそもある機能を実装する方法はいくらでもあるから、
細かい仕様が詰らないと答える事もしにくい
仕様を細かく出して来ても、環境が違ったり仕様以外の部分が問題だったりと答えにくい
質問スレじゃなくて初心者スレでも立てるべきだったな

701:名前は開発中のものです。
15/08/01 17:33:05.44 jc9A8jvW.net
3DRPGでplayerはCharacterControllerとRigidbdyどっち使うのが一般的なのかな
マニュアルにはDoom 形式の 1 人称制御は物理的に現実的ではありませんとか書いてあるけど
チートぽい動きさすにはCharacterControllerがいいってことかな
実装時のメリット・デメリットとか分かればいいんだけど

702:名前は開発中のものです。
15/08/01 23:58:45.39 jXnEB+paG
公式の動画チュートリアルはぶっちゃけクソわかりにくいジャマイカ
5分毎ぐらいに細切れにしてるし、単調すぐる
使ってればイヤでもわかるような情報と、ゲームづくりの上で重要な情報が一緒くたになっててわかりにくいし、しかも大事なトコを重点的にレクチャー、とかじゃないのが決定的にダメ

703:名前は開発中のものです。
15/08/02 01:36:06.80 Vp2dKOLc.net
Unityって次のフレームで実行させたい場合はコルーチンを使う以外選択肢ないですか?
仮にコルーチンで実装したとしても、時間指定なので厳密なフレーム指定が出来ないと思うのですが、
どうやって次のフレームで実行する処理を実装できますか?

704:名前は開発中のものです。
15/08/02 01:41:54.15 Vp2dKOLc.net
すいません解決したっぽいです

705:名前は開発中のものです。
15/08/02 02:36:01.22 m7jtNAJR.net
>>703
coroutine yield return 0とかで検索してみたら
それ以外で思い付いたのはemptyゲームオブジェクトの
animatorにフラグ送ってステート切り替えさせ
新実装のStateMachineでEnter関数使うとか
ステートマシンはストリーム使ったフラグ管理みたいなのが
簡単にできるけど乱暴な気がする
(フラグごとにアニメーション必要とか)
UniRXとかもあるけど…難しい
コルーチンでやってみて

706:名前は開発中のものです。
15/08/02 03:13:57.54 ALbMT5T2.net
iOS用にビルドしようとしたとき、
Build and Run でビルドのフォルダを選択して Replace だと Xcode に進むのですが、
普通に(Replaceせずに) Build しようとすると
Key Not Found Exception が出ます。
これって、なにか環境設定ミスってるんでしょうか。

707:名前は開発中のものです。
15/08/02 09:08:40.08 F6edIxaF.net
解決したことに対して一時間も経ってからレスする男の人って……

708:名前は開発中のものです。
15/08/02 10:15:40.35 JWc0rPW1.net
>>701
慣性とか摩擦とか再現したいならRigidbody
方向キー離したら止まってほしかったらCharacterController
俺が作ってるものつくるゲームだと慣性でずれると困るからキャラコンつかってる
よくかんがえたらGetButtonUpでvelocityに0かければ同じことはできる。
初心者でも実装が簡単なのがキャラコンで、
ちょっとめんどくなる(接地判定とか)なるけど高機能なのがリジッドボディ

709:名前は開発中のものです。
15/08/02 10:30:45.83 U+39cdqX.net
Rigidbodyだとジャンプしてると摩擦が無いのでなかなか止まらないとかあるよね
かといって離すとぴたっと止まられるとちょっと違和感あるし

710:名前は開発中のものです。
15/08/02 10:39:13.48 j0uQ2tEd.net
>>706
アセットを買えば簡単に解決すると思います

711:名前は開発中のものです。
15/08/02 10:41:48.45 XpYqS+XP.net
久々に見たわアセットおじさん

712:名前は開発中のものです。
15/08/02 10:42:41.82 1RrGBk/h.net
頭おかしい

713:名前は開発中のものです。
15/08/02 12:49:51.79 JWc0rPW1.net
>>709
Physics Materialを使って調整すればいいんじゃないかな

714:名前は開発中のものです。
15/08/02 17:44:24.96 3QNXeBXM.net
最近、unityを知って触り始めたのですが、
セーブについて悩んでいます。
PlayerPrefsはスマホゲームには便利ですが、
windowsではレジストリを汚してしまうのでよろしくないですよね?
キャラクターの位置やステータス、進行状況などをセーブデータとして
保存と暗号化する方法を探したのですが、これといったものが
見つかりませんでした。
関連サイトや情報を教えていただけないでしょうか?
当方、DXライブラリでゲーム製作とC#をかじった程度です。

715:名前は開発中のものです。
15/08/02 19:51:20.74 sRVitmLQ.net
エディタ拡張でシーンファイルを開いたタイミングで処理をしたいのですが、なにか方法はないでしょうか?
EditorApplicationのデリゲートを調べているんですが、それらしきものもなく。。。

716:名前は開発中のものです。
15/08/02 20:08:14.40 RvbbQEG1.net
URLリンク(github.com)
これだとEditorWindowの子クラスでEditorApplication.OpenScene(path)呼んでるね
あとスレが下がりすぎてるんであげます

717:712
15/08/02 20:52:58.12 k/xxeCDy.net
>>716
レスありがとうございます!
自前のEditorスクリプトでシーンを開く事は想定していなく、例えばシーンファイルをダブルクリックして開いた際に、それを検知して処理を行いたいのです。
説明不足ですみません。

718:名前は開発中のものです。
15/08/02 21:21:02.54 /jmyPNb8.net
>>714
> これといったものが見つかりませんでした。
そんなわけは無い
C# system.io 暗号化とかの単語で検索すればいくらでも出てくる

719:634
15/08/02 21:45:34.51 sRVitmLQ.net
>>636 自己解決しました。
EditorApplication.MarkSceneDirty() を実行することにより、シーンに変更済みフラグを設定できました。

720:名前は開発中のものです。
15/08/03 00:38:08.06 sUAL5SV7.net
>>717
URLリンク(docs.unity3d.com)
これでいけそう

721:名前は開発中のものです。
15/08/03 00:45:09.11 sUAL5SV7.net
>720はextensionの話じゃないなすまん
InitializeOnLoadAttributeで起動時の検出はできるみたいだけどシーンのはないみたいね

722:名前は開発中のものです。
15/08/03 00:48:59.00 VCNUsCPH.net
unity3d editorscript detect scene load
コレでググればTopにでるよ

723:712
15/08/03 01:01:57.42 gdJQ1USB.net
>>720-721
そうなんですよね、起動時しかないんです。
あってもいいと思うんですが。。。
>>722
なるほど、シーン名を保存しておいてゴニョゴニョするわけですね。
できそうな気がしてきました、試してみます!
みなさん、有難うございました。

724:名前は開発中のものです。
15/08/03 01:07:59.38 sUAL5SV7.net
ググって出てきたのは力任せな気がする ヒエラルキーの変化イベントからシーン名変更時だけ選んでるわけで
URLリンク(answers.unity3d.com)
AssetModificationProcessor使うのが直感的

725:名前は開発中のものです。
15/08/03 21:48:38.92 k6yxb0aR.net
URLリンク(japan.unity3d.com)
上記のチュートリアル、player.csをまるままコピペしたけど動きません
ジョイスティックの表示はできたのですが、
All compiler errors have to be fixed before you can enter playmode!
UnityEditor.SceneView:ShowCompileErrorNotification()
というエラーが出てしまいました。player.csを元に戻すと動きます。
CrossPlatformInput.GetAxisRaw が赤くなってるのでコレかもしれないとも思うのですが
ナニをどうすればよいのか、分かりません、どなたかアドバイスいただけませんか?

726:名前は開発中のものです。
15/08/04 00:12:51.81 x4O7d8ht.net
>>725
知らんがな。
名前空間とかあってないとかじゃねーの?

727:名前は開発中のものです。
15/08/04 00:54:51.98 CdCFgkQu.net
じゃあ俺は{}の数が間違ってて閉じてないと適当にエスパー

728:名前は開発中のものです。
15/08/04 01:41:18.56 jsbxOowB.net
第三回のタッチパネル機能のあるプロジェクトダウンロードしたけど同じ結果でした
unity5.1.2f1だからダメってことですか?
assets storeからインポートしたのはSample Assets (beta) for unity4.6と書いてます
Assets/Scripts/Player.cs(33,27): error CS0103: The name `CrossPlatformInput' does not exist in the current context
というエラーも確認しました。また、括弧も閉じられていました。
コンポーネントの呼び出しみたいなこともしてないのですが、そんなもんなんですか?

729:名前は開発中のものです。
15/08/04 05:16:29.64 Wpm59TCv.net
error CS0103: The name `CrossPlatformInput' does not exist in the current context
このエラーメッセージで、検索してみれば?

URLリンク(qiita.com)
// 後
この漢字がダメみたい?
日本語でエディタがバグる?

730:名前は開発中のものです。
15/08/04 08:16:40.55 dDpbLmri.net
質問です
オブジェクトAとオブジェクトBにはtest.csが付いています
test.csにはhogeという変数が宣言されており、ゲームオブジェクトのネームがAならば0に、ネームがBならば5になります
オブジェクトAが、オブジェクトBのhoge変数を知るにはどうすればいいですか?
Findなどを試しましたが書き方が悪いのかなぜかうまくいきませんでした・・・

731:名前は開発中のものです。
15/08/04 08:19:20.52 gEK1E2WM.net
何をどうやってgetcomponentしてだめだっかくらいかけよ

732:名前は開発中のものです。
15/08/04 08:34:07.68 FRpxq3j9.net
Aのtest.csでBのオブジェクトを取得すりゃいいんでねーの

733:名前は開発中のものです。
15/08/04 09:05:42.90 BVz+WUji.net
>>730
オブジェクトA dog
オブジェクトB cat
とすると
dogのほうのスクリプトで
int modeLo = GameObject.Find("cat").GetComponent<test>().hoge;
で多分いく
hogeという名前をつけるのはやめたほうがいいとかなんとか。
hogeがpublic宣言じゃないと読み込めないから注意な
あとスクリプトの名前は先頭大文字のほうがええよ。俺小文字にしちゃうけど

734:名前は開発中のものです。
15/08/04 10:11:59.31 dDpbLmri.net
>>733
そのとおりにしてうまくいきました!ありがとうございます

735:名前は開発中のものです。
15/08/04 14:56:25.93 XK4uLt7d.net
An element with the same key already exist in the dictionary
というエラーが何やっても出てくるんですけどどういう意味ですか

736:名前は開発中のものです。
15/08/04 15:19:57.82 PLSswhe5.net
「要素は既に同一キーで辞書に存在する」

737:名前は開発中のものです。
15/08/04 18:46:11.71 ZoCpEnb/.net
つまり、全ては頭の中に入っている、だ。

738:名前は開発中のものです。
15/08/04 18:46:16.36 CHB2A97R.net
意味っていうか対処法が聞きたかったんだった
なんとなく訳はわかるけど辞書か何を示しているのかわからないしだだのハローワールドでも出てくるから何を示しているのかがさっぱりわからない

739:名前は開発中のものです。
15/08/04 18:53:24.68 PLSswhe5.net
>>738
新規プロジェクトでも出るのか?
Unityのバージョンは?
使っているOSは?
ビルドターゲットは何?
一般的過ぎるエラーメッセージの場合上の様な付帯情報の方が解決の糸口なんだぜ

740:名前は開発中のものです。
15/08/04 19:20:08.17 lR4yHysF.net
スーパーエスパーしてやるとそのエラーはMacでxcodeプロジェクトにアウトプットしたときによくでるやつ
たぶんunityのバージョンの問題だった気がするから書いてみ

741:名前は開発中のものです。
15/08/04 20:55:56.50 FkXeAL4H.net
unityとxcode最新にしたら、一括でビルド&ランしなくなった…泣
そしたら、ちょっっとまえにまたアップデート、直るかねぇ…

742:名前は開発中のものです。
15/08/04 21:13:00.24 PLSswhe5.net
>>741
xcode最新にするとダメなんだけどこれなんとかならんのかとiOS6位の時にかなり泣いたわ
xcode単体で起動してやれば済むことではあるんだけどさぁ、buildシーケンスの途中の無駄な待ち時間がもうね ('A`)

743:名前は開発中のものです。
15/08/04 22:47:16.38 FkXeAL4H.net
そうそうw
DWARF?をなんとか短縮できたけどいやはや、まだ長ひ…

744:名前は開発中のものです。
15/08/04 23:03:57.43 JnjMUCtt.net
FPS ControllerでFPSのようなものを作る場合に、自分のキャラクターも表示したいと思っています
そこで、設置したFPS Controller下にキャラクターを設置し、走るキーが押された際にLocomotion Playerなどについている走るアニメーションをしたのですが・・・・少し動きに違和感があるだけでなく、地形に応じてFPS Controllerとキャラクターがズレて行ってしまいます
(極端におかしな場面としては、木の枝のようなものにキャラクターのみが引っかかり、FPS Controllerだけ地面に着地してしまったりします)
本当はアニメーションをいじれればいいのですが無理そうなので、簡単な解決方法、良いアセットがあったら教えてください
よろしくお願いします

745:名前は開発中のものです。
15/08/04 23:41:35.98 BVz+WUji.net
>>744
もしかするとAnimatorのApplyRootMotionのチェックを外すとうまくいくかもしれん。
違うかもしれん。

746:名前は開発中のものです。
15/08/05 11:37:31.52 O2DRENoW.net
つかうまく表現してないだけなのかもしれんがなんかもう根本的に考え方が変なんじゃね
一人称と3人称のコントローラーの違いとかをちゃんとチュートリアルとかサンプルで見たのか?

747:名前は開発中のものです。
15/08/05 11:38:53.14 sQ0lfZB7.net
Unityの基本を覚えようとチュートリアルのブロック崩しを作ってるんですけど、
ボールを反射させるところで詰まりました・・・。なんか真横にしか反射しない上に
反射するたびにボールが欠けていって2回反射すると何も見えなくなっちゃいます・・・
何が悪いんでしょうか?C#で書いてるから?

748:名前は開発中のものです。
15/08/05 11:41:10.95 +K4+LokO.net
>>735のエラーはアップデートしたら出なくなりました
確認したつもりだったんですがunityのcheck for updateでは5.1.1で更新されなかったのに公式には5.1.2が来てたのでアプデしたら治りました
ありがとうございます
しかし今度は新しいエラーが2つ出るように
Namespace "System.Collections" is never used.
Namespace "UnityEditor" is never used.
この二つは何を意味しているのでしょう
情報はすぐ見つかったのですが知識が乏しくてよく理解できません
致命的なエラーではなさそうなので無視しても良さそうですしエラーの表示を消すことはできそうなんですけど根本的に改善することはできませんか
OSはMac yosemite 10.10.4
ビルドターゲットはよく分かりませんがおそらく初期設定
MonoDevelopでビルドすると出てきます
新規プロジェクトでDebug.Logしかつかってないのに出てきます

749:名前は開発中のものです。
15/08/05 11:45:43.78 CamXSh92.net
>>748
ちなみにそれエラーじゃなくて警告な
スクリプトのアタマでusing System.Collections;とか宣言してコレクション使いたいなーって書いたのに
実際のスクリプトでは使ってないけどいいのけ?
って教えてくれてるんだぜ、C#さん優しいな

750:名前は開発中のものです。
15/08/05 11:59:43.77 O2DRENoW.net
>>747
いろいろつっこみどころあるけど細かい事言ってたらキリがないから
プログラムも初心者でとりあえずそのまま真似てC#でやりたいならこっちがいいかも
もし2画面あるならビデオ見ながらやるとすごく効率いいよ
Creating a Breakout Game for Beginners
URLリンク(unity3d.com)

751:名前は開発中のものです。
15/08/05 12:22:47.27 3nvpsIXf.net
>>747
悪いのはお前の頭だろ!
ソースと設定見直せとしか言えん

752:名前は開発中のものです。
15/08/05 14:32:47.47 GZ4wlvWY.net
Physic MaterialのFrictionがあやしい

753:名前は開発中のものです。
15/08/05 15:22:58.95 2cx28vay.net
>>747
そうそう、一字一句、見直しから始めよう。それが近道。

754:名前は開発中のものです。
15/08/05 15:36:20.99 sA7q36NS.net
チュートリアルは英語でもビデオ版がいいな
マルチディスプレイで同じことやってけば確実に出来る
理解できず繰り返し見たり止めたりで1hモノが半日かかるとかざらだけど

755:名前は開発中のものです。
15/08/05 18:53:36.00 1L/gqVwO.net
ライトを微調整してたつもりが、プレビューモードだった
苦労が水の泡になった・・・・

756:名前は開発中のものです。
15/08/05 19:26:45.10 1PYrmJku.net
Unity5.1.2f1 Windows7 64bit
LeapMotion SDK インストール済み
OculusSDK インストール済み
下記の現象は自分の環境だけでしょうか?
EditorのLayoutでTallを選択し、シーンビューの右縁をクリックしたまま、マウスを左右に振りまくる。(要はシーンビューのリサイズをしまくる)
そうすると、作ったばかりの新規プロジェクトでも20秒から30秒でSUCCEEDED(hr)が出まくるようになり、Unityを再起動するしかなくなる。新規プロジェクトじゃなければもっと早いと思う。結構困ってます。
海外のフォーラムに色空間をガンマにすると治るという記述もあったんですが、改善しませんでした。

757:名前は開発中のものです。
15/08/05 22:01:37.52 hjm953sz.net
同じバージョンのUnityでレイアウトは適当にカスタマイズしてる状態だけど、
Sceneのリサイズしまくろうがエラーなんて出ないなぁ
SDKが関係あるとも思えないし、Tall設定が問題なのか?

758:711
15/08/05 22:11:40.17 k77xwiRO.net
>>718
英語が苦手で海外の掲示板とかしらべてなかったけど、
公式チュートリアルにセーブ関連の記載見つけてなんとかなりました。
この言葉が無かったら挫折してた、ありがとう。

759:名前は開発中のものです。
15/08/05 22:46:53.49 HHu91jjI.net
unityで良く使う共通処理ってどんな風に書けば良いかわかりません。
現在は
publicFunc.csに
namespace A {
  public class publicFunc : MonoBehaviour {
    static public int serachLayerNo(Animator _Animator, string targetLayerName){
      〜処理〜
    }
  }
}
と書いて
呼び出し側で
using UnityEngine;
using System.Collections;
using A;
〜略〜
layerNo[i] = A.publicFunc.serachLayerNo(mAnimator, layerStr);
という風にしてみました。
namespace Aとつけているのは現状このようにしたらできたからやっているのでよくわかってないです・・・
また というかインスタンスを作ってないのになんでクラスの関数呼び出せるのかも自分でわかっていないという・・・staticだから?
またこれだと複数の箇所で使うと関数にstaticがついてるから、値が共通になってしまうのでCanvasを複数つかうとバグるような気がしてます。
こういう共通した関数を実行するのはシングルトンを使う文献をネットでよくみかけるのですが
シングルトンはインスタンスを一つしかつくらないということなので尚更だめなような気がしてます。
単独ではつかわない(ゲームオブジェクトとかにセットしない)いろんな所のソースで呼び出す共通処理の書き方をお教え頂きたいです。

760:名前は開発中のものです。
15/08/05 22:51:01.59 sA7q36NS.net
リファレンス見ようよ
リファレンスのどこが理解できなかったの?

761:名前は開発中のものです。
15/08/05 23:26:13.29 CamXSh92.net
>>759
共通関数が欲しいだけのstatic method使いたいだけならMonoBehavior継承いらんだろ
とりあえずhas-aとかis-aとかの関係をきちんとわけて考える様にMSのC#本でも買っとけ
ぜんぜんかんけいないけどsealdで検索したら左翼ゲリラがでてきて困った出ござる

762:名前は開発中のものです。
15/08/05 23:38:17.67 HHu91jjI.net
いままでコピペでなんとなく作れてましたが
質問してみて基礎が分かってなさすぎと分かったので
リファレンスのスクリプティング概要 読み直してみようと思います。
C#の基礎の本も買おう・・・ 
>>760さん 758さん ご回答有難う御座いました。

763:753
15/08/06 01:13:24.94 +T7HGyLY.net
>>757
やっぱり全員の環境で起こるわけじゃないんですね。。。
Defaultでやっても「SUCCEEDED(hr)」エラーでたのでTailは関係ないみたいです。
Unity再インストールもしてみたんですが、特に変わらず。
エラーメッセージも「SUCCEEDED(hr)」しかでないし、情報不足過ぎて何のエラーかすらようわかりませぬよ。。。

764:名前は開発中のものです。
15/08/06 11:29:17.83 sN/F2r0B.net
すみません、shaderの質問です。
透過(半透明)させつつ他のオブジェクトの影が映るshaderってありませんか?

765:名前は開発中のものです。
15/08/06 13:13:27.54 1PCQOc0+.net
>>764
オブジェクト2つ用意して1つをshadowsonlyじゃだめなの?

766:名前は開発中のものです。
15/08/06 13:14:25.59 1PCQOc0+.net
ごめん読みまちがえた

767:名前は開発中のものです。
15/08/06 13:32:09.27 cBJpMccl.net
普通にスタンダードシェーダーじゃまずいのか?
ガラスとか宇宙服のヘルメットとかみたいな表現だろ?
日本語で詳しく説明されてるぞ

768:名前は開発中のものです。
15/08/06 13:39:42.75 1PCQOc0+.net
>>764
これかな?
URLリンク(famme-fatale.hatenablog.com)

769:761
15/08/06 15:45:39.19 sN/F2r0B.net
みなさんありがとうございます
765さんのでいけそうでしたが
Skinned Mesh Rendererを使っていると
だめみたいです。

770:名前は開発中のものです。
15/08/06 16:24:07.94 1PCQOc0+.net
>>769
こっちの環境ではMeshRenderer関係無くいけてる気がする
ReceiveShadowsのチェックはずれたりしてない?

771:761
15/08/06 16:46:26.22 sN/F2r0B.net
>>770
失礼しました。

772:名前は開発中のものです。
15/08/07 08:17:10.74 nAxCzz6h.net
>>107
自分もパーミッション勝手についちゃうけどその後どう?

773:名前は開発中のものです。
15/08/07 22:45:57.39 +bECwRrn.net
Unityって今からはじめるともう時代遅れとかある?
敷居高いイメージがが

774:名前は開発中のものです。
15/08/07 23:00:50.03 /TyZbXTY.net
FPS/TPSを作るならUnreal Engineの方がいいという意見もある
時代遅れと言うほど他に先んじてるものはないと思うが
敷居の高さは…

ド素人  RPGツクール   ウディタ        DirectX等    プロ
 ┝────────┼─────┤
..                         △
.                         多分この辺

775:名前は開発中のものです。
15/08/07 23:13:24.66 +bECwRrn.net
なるほどありがとう
やっぱり高めだなあ
勉強するよ

776:名前は開発中のものです。
15/08/07 23:18:48.35 6MPrjvWO.net
Unreal Engineは、何もせずにFPSが作れるし、初めからFPS用の配慮が行き届いている
ただ大手が作ったFPS以外ってなかなか売れないからね・・・・
スマホ用の簡単ゲーム作成が中心となるとUnityとそのライセンス形態が結構よかったりするんだな

777:名前は開発中のものです。
15/08/07 23:21:57.33 i52yCBjp.net
現状Unityで作れないものないから、
今から古いツール勉強してる使うくらいならUnityやる事を勧める
Unity無理ならWeb小説でも書けばよろし

778:名前は開発中のものです。
15/08/07 23:40:33.44 hsQCoUC9.net
>>775
プログラミングの知識があるならスクリプト自体は簡単だよ。C#の初級レベルさえ知ってればとりあえずチュートリアルはできる
UEはいい素材を持ってるならグラはかなり良いけどスマホ向けには重いしロイヤルティ5%も取られるよ(ただし売上3000ドルまではロイヤルティフリー)

779:名前は開発中のものです。
15/08/07 23:42:51.77 8P091hGo.net
そういえば昔の旧砂漠って流砂なかったの?

780:名前は開発中のものです。
15/08/07 23:43:17.19 8P091hGo.net
すまん誤爆

781:名前は開発中のものです。
15/08/07 23:52:01.26 +bECwRrn.net
>>778
プログラムはできるから嬉しいね
頑張ってみるよ

782:名前は開発中のものです。
15/08/08 00:00:09.80 js8lfIDK.net
なんかボタンコンポーネントから警告が大量に出るようになったんだけど
Parameter 'Highlighted' does not exist.
UnityEngine.UI.Selectable:OnValidate() こんなのが大量に。
Animatorはつけてるけどボタンアニメーション設定してないんだよね。

783:名前は開発中のものです。
15/08/08 00:14:15.28 Cum65bC1.net
>>782
俺は初心者だから意味わかんねーけど、それって、アニメーションの終わりを決めてないんじゃないのか?

784:名前は開発中のものです。
15/08/08 00:15:20.15 /O4Hr1O9.net
ツクールなんかより縛りがないからよっぽど簡単だわ

785:名前は開発中のものです。
15/08/08 00:57:31.45 prpVaKdz.net
流れで聞きたいんだけどUEとUnityって何が違うの?
UEはリアルって聞くけど、それってモデルの質とか
プログラムの書き方によって
変わるんじゃないの?と思うんだけど
Unityがモバイル向け、UEがハイエンド向け、と言われているのはどこなんですか

786:名前は開発中のものです。
15/08/08 01:13:22.91 WTntF6Fb.net
UEはライティングのおかげでクソみたいなモデルでも少しはそれっぽく見えるが負荷のかかる方式だからハイエンド向け(ただしモバイル向けの最適化にも力を入れるらしい)
UnityはおおむねUE3相当のグラだがその分軽いのでモバイル向け
ただしUnityは中間言語方式だから実行時コンパイルに処理を割いてる分(PC向け以外は5.2でIL2CPPが導入され解消される予定)と
グローバルイルミネーションにEnlightenっていうのをつかってるんだけどこれは基本的に高速だけど光源の数が増えると重くなる欠点がありUEのGIは多くても少なくても変わらないという特徴がある
つまりUnityは超ハイエンド向けになると逆に遅くなるのでコンシューマのAAAタイトルには使われてないね

787:名前は開発中のものです。
15/08/08 01:51:58.65 ULYH9pEs.net
UE4は言語がC++じゃなかったっけ?
ゲームプログラマーは歴史的にC++使いが多く、限られたハードウェアのリソースを
有効活用するためにメモリ管理をしたがるからベテランはUE4の方が
やりやすいってのも、あるんじゃないの
個人的にはC#はインテリセンスがよく効いてたりメモリ関連が自動だから
C++よりはとっつきやすいんじゃないかな。その分、重いけどわずらわしさは少ないのでラク
今はハードウェアのメモリが安価で大きくなってきてるからunityでも
AAAクラスでない限り実戦で使えるようになってきている感じかも

788:名前は開発中のものです。
15/08/08 02:01:44.65 Y1oBQifD.net
最近から見ればC++は低級言語化してきてるしな
今更カベージコレクションない言語使うとかやってられんわw

789:名前は開発中のものです。
15/08/08 10:47:59.68 396ATCKe.net
il2cppってc++に変換する技術っすよね?
c#もメモリ管理できないわけじゃないし、c++使う理由ないっすよね

790:名前は開発中のものです。
15/08/08 12:01:59.85 GX5HfKzG.net
なんらかのプログラミング経験があるならC#とか言語自体はたして問題ないよ
ゲーム初心者はオブジェクトやコンポーネントを使いこなすのが大変
アニメとかマテリアルとかはやればやるほど奥が深くなる

791:名前は開発中のものです。
15/08/08 12:14:48.75 nsvqXFx8.net
Unity5.1.2インストールしたんだけど、メニューからImport New Assetsの所を選んでもCustom Packageしか表示されません。
EffectsとかParticleSystemsとか表示されるのを期待したんだけど、Unity5はこういうもんですか?

792:名前は開発中のものです。
15/08/08 12:17:34.61 apaLX1ex.net
>>791 そういうものです

793:名前は開発中のものです。
15/08/08 12:34:39.49 GX5HfKzG.net
>>791
Import New Assets じゃなくてImportPackage だろ?
単にインストールした際にStandard Assetsをインストールしていなかっただけ
対処方法の詳細はググれば幾らでもある

794:名前は開発中のものです。
15/08/08 12:42:05.19 nsvqXFx8.net
再インストールの際のダウンロード時間短縮のために、UnitySetup64.exeをバックアップして、それで再インストールしてたのが原因でした。
UnityDownloadAssistant-5.1.2f1.exeを実行して、>>793さんの言うとおり、Standard Assetsをチェックしたら大丈夫でした。
お騒がせしました。

795:名前は開発中のものです。
15/08/08 21:28:10.10 N/D5gJUC.net
ところでUnityでフレームスキップしないように設定できる?

796:名前は開発中のものです。
15/08/09 01:49:33.02 XyY7+yoD.net
そこそこ大きいデータをunity内部で扱うためにsqliteを使いたいのですが、何かいいアセットなどありますか?
もしくは他にいい感じのDBなどはありますか?

797:名前は開発中のものです。
15/08/09 02:45:47.85 8vhmQCx9.net
>>796
sqliteを使うAssetはStoreで探せばいくつもある
DataBindをC#と密接にしたいのならオープンソース実装がGitHubにころがっている
どういう使い方をしたいかで決まるから自分で探す方が良い
なおどれもPlugin経由なのでプラットフォーム依存があるからAssetStoreなら評価をOSS物の場合はC#からの親和性とかを元にチェックする事

798:名前は開発中のものです。
15/08/09 11:58:29.14 1Y3sDlK9.net
UNITYでVSが標準になるとかならないとか
VSで何G喰うのかな
Cドライブがやばい、かと言ってリンクしようにもD以降も余裕ない
HDD買い増しか、いっそのことPC買い替えか

799:名前は開発中のものです。
15/08/09 12:40:41.84 MRvAVR8Q.net
URLリンク(www.visualstudio.com)
一応インストールのシステム要件は 4GBの空き容量になってるね
作業するなら大量に空きがあったほうがいいね

800:名前は開発中のものです。
15/08/09 14:23:00.07 /OhH7e0+.net
ラムダ式書くと、foreachで回すより明らかに遅いのだけど異常ですか?

801:名前は開発中のものです。
15/08/09 14:43:54.26 8vhmQCx9.net
>>800
foreachの中身を別関数にして呼び出せば同じ速度になると思うぞ

802:名前は開発中のものです。
15/08/09 14:59:07.10 /OhH7e0+.net
FidAllがやけに遅いと思ったけど、foreachでも別関数なら同じなのかな

803:名前は開発中のものです。
15/08/09 15:05:00.83 8vhmQCx9.net
>>802
内部的にはdelegateを渡したのと一緒で渡したLambda式を関数呼び出しするからね

804:名前は開発中のものです。
15/08/09 17:31:16.80 juyi80yV.net
テストプレイ中に稀に以下のエラーが発生して止まってしまうのですが、対処出来なくて困っています。
当方Unity5。
エラーの発生箇所がeditorやInspector臭いのですが、特にカスタマイズはしてないです。
せいぜい、OnValidate()でInspectorの変更をオブジェクトに適用させるくらいです。
MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
UnityEditor.GameObjectInspector.DoRenderPreview () (at C:/buildslave/unity/build/Editor/Mono/Inspector/GameObjectInspector.cs:680)
UnityEditor.GameObjectInspector.OnPreviewGUI (Rect r, UnityEngine.GUIStyle background) (at C:/buildslave/unity/build/Editor/Mono/Inspector/GameObjectInspector.cs:745)
UnityEditor.Editor.OnInteractivePreviewGUI (Rect r, UnityEngine.GUIStyle background) (at C:/buildslave/unity/build/artifacts/generated/common/editor/EditorBindings.gen.cs:309)
UnityEditor.ObjectPreview.DrawPreview (IPreviewable defaultPreview, Rect previewArea, UnityEngine.Object[] targets) (at C:/buildslave/unity/build/Editor/Mono/Inspector/Editor.cs:225)
UnityEditor.Editor.DrawPreview (Rect previewArea) (at C:/buildslave/unity/build/Editor/Mono/Inspector/Editor.cs:522)
UnityEditor.InspectorWindow.DrawPreviewAndLabels () (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:759)
UnityEditor.InspectorWindow.OnGUI () (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:386)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
(at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)

稀にしか発生せず結構お手上げ状態です。
よろしくお願いします。

805:名前は開発中のものです。
15/08/09 17:33:39.23 cORaqZFq.net
業務でやってるならUnityに聞いた方がいいんじゃないかな

806:名前は開発中のものです。
15/08/09 17:41:04.67 MRvAVR8Q.net
MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
でググると結構出てくるな
nullチェック時に==はオーバーライドしてんのか

807:名前は開発中のものです。
15/08/09 17:52:22.98 8vhmQCx9.net
>>804
エラーログからみるにテストプレイはUnityEditor上でALT+PかCMD+Pでプレイしてるんだよね
死んだ(Destroy済み)のGameObjectをUnityEditor上のインスペクタ(あるいはUnityEditor用のAsset)で開きっぱなしにしてない?

808:名前は開発中のものです。
15/08/09 18:06:36.80 juyi80yV.net
>>807
ここここれっぽいです!!! ありがとうございます!!
destroyされたGameObjectのprefabをInspectorに開きっぱなしです。
確かに、この状態だと100%発生しますね(恐らく生成のタイミングで)。
とはいえ、どうしてそうなるんでしょう

809:名前は開発中のものです。
15/08/09 19:30:08.93 MJa1D6eV.net
質問です。
CharacterControllerを使わずにそうさしてるのですが、接地判定がうまくいきません。
void CheckGround(){
if(Physics.Raycast(transform.position,Vector3.down,out hit, 10 )){
if(hit.collider.tag == "Ground"){
isGrounded = true;
}
}
で、処理してるのですが、isGroundedがtrueになりません。プレイヤーにBoxColliderとRigidbodyを
地面にはBoxColliderを付けて、タグを"Ground"にしています。
どなたかわかる方、または参考になるサイトをご存知の方居たら教えてください。

810:名前は開発中のものです。
15/08/09 19:35:54.21 a0bgjuvw.net
Unityの2Dモードで、何枚か張られているパネルをマウスでクリックして消すゲームを作っております。
同じプレファブを使い、同じコードを使ったところ、1個のパネルを消すと全て消えてしまいます。
spriterenderer,boxcolider2dを付けてます。
実装は、クリックされたら以下のコードが実行されます(panel.cs)
v2には、クリックポイントが入ります。
v2 = GameObject.Find("Main Camera").camera.ScreenToWorldPoint(v2);
RaycastHit2D hit = Physics2D.Raycast(v2, Vector2.zero);
if (hit) {
Debug.Log ("x:"+v2.x+" y:"+v2.y);
Destroy(this.gameObject);
return;
}
で、consoleで見ると、1個当たっただけで全部のパネルが消えているのが確認できました。
consoleに大量のx,yの表示がされております。
自分自身かどうか判断する方法は無いでしょうか?よろしくお願いいたします。

811:名前は開発中のものです。
15/08/09 19:57:23.46 a0bgjuvw.net
自己解決しました。申し訳ございません。

812:名前は開発中のものです。
15/08/09 22:15:38.25 iIBFuBQ/.net
Unityを使用するブラウザゲームをやっているんですが、
最近、数十分前には起動できていたのに、ゲームを立ち上げようとしたらUnityが消えてる(アンインストールされてる?)事があります。
(Unityダウンロードページでもnot installedになっている)
なにかウイルスか設定のようなものでこうなったりするんでしょうか?

813:名前は開発中のものです。
15/08/09 22:54:46.87 bQXYImrI.net
>>808
ギャグかよw
destroyしたからに決まってんだろうw
もう使わないよと言っておきながら使うという矛盾www

814:名前は開発中のものです。
15/08/09 22:58:41.88 bQXYImrI.net
>>812
きっと妖怪の仕業だわ
お祓いしなきゃね

815:名前は開発中のものです。
15/08/09 23:20:09.22 M1ulE9Fv.net
最初のシーンが重いのかUnityロゴ表示がかなり長くなってしまったので
シーン切り替えスクリプトのオブジェクトのみ配置したシーンを最初に作ったんだけど
変わらずロゴ画面でロードしてしまいます
なるべくロゴ表示を早く切り替えるのにはどうすれば良いですか?

816:名前は開発中のものです。
15/08/09 23:31:12.99 eHkK7Iki.net
Proを買う

817:名前は開発中のものです。
15/08/10 00:39:12.02 NcNOCafI.net
キャラIDとスキルIDをボタンの引数として登録する機能を作っています。
ボタンを押した時にShowSkillWindow(int, int)を実行するのですが、
2個目の引数の値をこの時点のiの値で呼び出したいのに、ボタンを押した時点での値で呼び出されてしまいます。
(この場合はループ終了後のiの値である5が引数になる)
public void Init(int charaID) {
for (int i = 0; i < 4; ++i) {
Button.ButtonClickedEvent clickEvent = new Button.ButtonClickedEvent();
Debug.Log("charaID:" + charaID + ", SkillID:" + i);
clickEvent.AddListener(() => BattleManager.I().ShowSkillWindow(charaID, i));
skillButtonList[i].GetComponent<Button>().onClick = clickEvent;
}
}
引数を固定させる方法か、代わりになる方法はありませんか?

818:名前は開発中のものです。
15/08/10 01:01:41.62 NcNOCafI.net
解決と言えるのか自信がないけど意図した動作が出来たので残します。
引数を保持するための構造体の定義を作っておき、そこから処理を呼ぶ方法で実装出来ました。
構造体を作って放置するのがメモリ的に不安なので、改善点あれば教えてもらえると助かります。
struct StrSkillAction {
public UnityAction SkillAction(int charaID, int skillID) {
return () => {
BattleManager.I().ShowSkillWindow(charaID, skillID);
};
}
}
public void Init(int charaID) {
for (int i = 0; i < 4;++i) {
Button.ButtonClickedEvent clickEvent = new Button.ButtonClickedEvent();
Debug.Log("charaID:" + charaID + ", SkillID:" + i);
StrSkillAction eventClass = new StrSkillAction();
clickEvent.AddListener(eventClass.SkillAction(charaID, i));
skillButtonList[i].GetComponent<Button>().onClick = clickEvent;
}
}


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

3756日前に更新/302 KB
担当:undef