トップページgamedev
1001コメント378KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2015/01/18(日) 15:07:35.72ID:KSRpGyGF
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/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質問スレッド14
http://peace.2ch.net/test/read.cgi/gamedev/1418120993/

■本スレ
【3Dゲームエンジン】Unity総合スレッド24
http://peace.2ch.net/test/read.cgi/gamedev/1415828892/

■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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
注意事項:アセットおじさんは優しく愛でましょう
0591名前は開発中のものです。2015/02/14(土) 19:39:29.75ID:bNXlFl7J
>>590
よくわからんけど、マップデータを配列で作るんじゃだめなの?
スクロール位置に合わせてインスタンス化すればいいんじゃないかと思うけど
0592名前は開発中のものです。2015/02/14(土) 19:40:45.80ID:bNXlFl7J
ああ、むしろタイルエディタみたいなのでマップそのものを作りたいってことか
0593名前は開発中のものです。2015/02/14(土) 19:51:58.27ID:8+PxBYYS
>>590
Tile編集のEditorScriptを買ってくるか(AssetStore)
UnityのwikiにあるAutoSnap系のスクリプト拾ってきて改造して使うのが良いんじゃ無いのかな
0594名前は開発中のものです。2015/02/14(土) 20:57:37.76ID:4Nx9EEyY
>>590
Assetsあるよ。
今外出中なので帰ったら教えるよ。

または詳しい方、いらっしゃいましたらお願いします。
0595名前は開発中のものです。2015/02/14(土) 21:30:47.87ID:iG4Xcajb
>>590
アセットをかえばいいと思いますよ
0596名前は開発中のものです。2015/02/14(土) 21:38:30.59ID:n6w3RVqC
なんかアルゴリズム自体を質問する人とか
それ自体がゲーム作りの醍醐味だと俺は思うんだが・・・
0597名前は開発中のものです。2015/02/14(土) 22:13:27.53ID:l4caZ+8s
アルゴリズムでも未開拓ジャンルならまだしも、シューティングとかはある程度決まっているし。

ゲーム開発が未経験の人にアルゴリズム、フローチャートを書けっていうのも酷な話

初めての人は簡単な物から作れっていうのも言うまでもないけど。

ちな、Unityは3年前のCeleronでHDDでも簡単なシューティングゲームと2Dゲームをつくることぐらいなら出来る。ソースは漏れ。
0598名前は開発中のものです。2015/02/14(土) 22:21:11.05ID:NXv7wH0B
自分も最初はアルゴリズムを作る考え方や概念みたいな物の見当すらつかなかった。
情報を必死に探して実践していくうちに出来る様にはなるんだけどな。
0599名前は開発中のものです。2015/02/14(土) 22:32:28.15ID:a4wIGID5
すみません、質問させて下さい。
名前でゲームオブジェクトをFindできるのは理解しているのですが、
Instantiateしたクローンを扱うにはどうすればいいでしょう?
例えば、Instantiateしたオブジェクトが近くにあるかどうかを
判断する場合、
力技でやろうとすると全部のクローンに名前をつけて
全てが範囲内に無い、とする方法しか思い浮かばないのですが、
スマートな方法は無いでしょうか…。
0600名前は開発中のものです。2015/02/14(土) 22:32:59.24ID:YKFgM1K4
基本をおさえてない奴はどこまでいっても出来たつもりになるだけ
0601名前は開発中のものです。2015/02/14(土) 22:36:10.44ID:XW2NT4EH
>>599
Instantiateしたオブジェクトをその時点で配列なりリストなりでもっておくべきだろう
0602名前は開発中のものです。2015/02/14(土) 22:48:59.78ID:B35NEH1c
プレハブにタグ付けっていう方法もあるけどね
0603名前は開発中のものです。2015/02/14(土) 22:52:20.54ID:oJTpdVxr
>>588
UIいじるためにはそんな宣言をしないといけないんですね。。。

ちなみにjavaの場合の宣言方法ってどなたかわかりますでしょうか
0604名前は開発中のものです。2015/02/14(土) 23:04:48.14ID:n6w3RVqC
>>599
単純な座標の比較ならそんなに重い処理だと思わないなぁ

ちょっと自信ないけど
C#って特定の要素で配列をソートする機能あるっけ?
あるならそれを使って無駄な比較処理を減らせるかも
0605名前は開発中のものです。2015/02/14(土) 23:07:00.06ID:BSW4M70t
理想としてはパーツを選択して編集画面でクリックしたらポンと表示されるような感じをイメージしてるんだが
AutoTileSetというアセットを見つけたんだが自作した絵を使うことはできるの?
>>592
タイルエディタというのか...ググってみたらまさにそれだった
マップデータを配列していくのもかなり手間がかかりそう
>>593
AutSnapってなに?ググったけどよくわからなかった...
>>594楽しみにしてます!
0606名前は開発中のものです。2015/02/14(土) 23:13:38.73ID:8+PxBYYS
>>599
instantiateしたオブジェクトを直接管理するか
Findで探すのが599のフレームワークになってるならinstantiateしたオブジェクトがGameObject insと仮定して下記みたいに名前をつけ直せばいいじゃないか
ins.name = "InstantiatedObject";
0607名前は開発中のものです。2015/02/14(土) 23:44:21.26ID:T4CbhSse
>>599
そのインスタンスを作った親でGetcomments系の関数で配列で処理すれば良いよ
06086032015/02/14(土) 23:58:40.39ID:oJTpdVxr
自己解決しました。
どうやらこれだったようです。
import UnityEngine.UI;

質問に答えようとしてくれた方が居ましたらありがとうございました。
スレ汚し失礼しました。
0609名前は開発中のものです。2015/02/15(日) 00:56:55.13ID:CHNnOi+4
基本的なことが魔がわかっていないことはわかっていますが
教えていただければ嬉しいです。

新GUIを使って
アイテムを取ったら得点が表示されるようにしたいです。

canvas/Textに表示させたい場合

void Start ()
{
Text msg = GameObject.Find ("Canvas/Text").gameObject.GetComponent<Text> ();
● ●●●●= GameObject.Find("Player").gameObject.GetComponent<GetItem>();
msg.text = "アイテム数"+ (?????);
}

こんなかんじで出来るのでしょうが
何を入れればいいのか不明です。

よろしくお願いします。

いつも教えてもらってばかりなのでMonaコインでよければ差し上げます。
0610名前は開発中のものです。2015/02/15(日) 01:25:46.59ID:ZxL1y1ye
>>599
昔、秋葉マップアセットの建物を、全て、リソースからロード。かつそれらをlistからlinqで一定の距離以下のオブジェクトのみ探し出して描画ってやったら、FPSが7ぐらいしか出なかった。この時に判別させてたオブジェクトは2700ぐらいだったかな?

そんでもって、この時考えたのが、Colliderで当たり判定を作ってOnTriggerStayのオブジェクトのみ、描画したらFPSは30で行けた。



>>609
すまないが、正直何がしたいかよくわからないから、憶測で語らせてもらうと。
まず、Score変数をつくる。んで、得点獲得時に、AddScore(int score)関数を実行して、得点が増加するとして、
//スコアが保持される。
public int Score{get; private set;}
Text msg;

void Start(){
msg=GameObjdect.Find("ScoreText").GetComponent<Text>();
}
void Update(){
msg.text = "Score : "+Score.Tostring();
}

//加算時に適当なところから加算分を引数に呼び出される。
void AddScore(int point){Score+=point;}

別に加算時に、msg.textを更新する仕様でもいいかもしれんが…

微妙な誤字あったらすまん
0611名前は開発中のものです。2015/02/15(日) 01:36:15.10ID:FFcIOilT
>>584
窓予定でした。

>>585
SSDはノートだから、付けっぱなし不可、ちょこちょこ再起動をすることを考慮してですか?

>>587
ありがとうございます。
i5のメモリ8Gあたりを考えてます。

>>589
デスクはかなりスペック落とせますよねー。
これから上京して就活しようかと思ってて、狭い部屋を想定してノートを考えてます。
0612名前は開発中のものです。2015/02/15(日) 02:00:04.99ID:Q8LcdohO
>>609
アセットをかえば簡単ですよ
0613名前は開発中のものです。2015/02/15(日) 02:45:29.31ID:CHNnOi+4
>>610
すみません。

頂いたモノを参考に改めて自分で考え直しらた
いつもやっているようなやり方で問題ありませんでした。

下手に見た資料に合わせてやったことがかえって良くなかったです。
0614名前は開発中のものです。2015/02/15(日) 02:46:57.83ID:CHNnOi+4
>>611
何インチを買う予定か不明だけど
ノートパソコンの小さいモニター一個だとかなり不便を感じると思う。
自分はデスクトップでデュアルモニタですぞ。
0615名前は開発中のものです。2015/02/15(日) 04:35:09.68ID:ta2qBkZ/
>>611
自室オンリーの予定ならデスク一択
デュアルモニタの話出てるから便乗するけど
でかめの机(1.5mぐらい)が置ければ21.5インチのディスプレイ2個と
キーボードとマウス(&パッド)・ウェットティッシュとかが纏めて置ける

ノートの画面でも困らないけど、利便性考えたらデュアルモニタは相当良いよ
0616名前は開発中のものです。2015/02/15(日) 08:50:06.77ID:QwvTb0PL
>>603
元の質問に答えたの俺だけど、それはJavaじゃなくてJavaScriptね
Javaとは全く別物なので注意したほうがいいよ
0617名前は開発中のものです。2015/02/15(日) 08:56:31.37ID:QwvTb0PL
>>611
iOS向けに作る可能性が少しでもあるならMacにしといたほうがいいよ
今後絶対にないならWindowsでいいだろうけど
ちなみに自分もメインはノートだけど、スペックよりもモニタの解像度が重要
マルチモニタが理想だけど、フルHDあればとりあえず問題ない
0618名前は開発中のものです。2015/02/15(日) 10:24:36.60ID:ru5I4XVb
スクリプトのオブジェクトをプロジェクトビューで選択すると、
一部の変数を選択できるやん?

これって、エディター画面でゲームオブジェクトに追加した時は設定値が初期値になるっぽいけど、
スクリプトでaddcomponentした時は設定されないみたい。
そういうもん?

あとvector3とかはインスペクターに表示されないけど、
なんか属性指定すれば設定できるようになるの?
0619名前は開発中のものです。2015/02/15(日) 10:34:07.83ID:xIrvlcL9
>>618
publicな変数でクラス生成時に初期化されない、またはnullになってると設定できる
動的な追加では設定できないのが当たり前で、出来ることが便利機能だと考えた方がいい
0620名前は開発中のものです。2015/02/15(日) 11:13:24.69ID:dk3EfgeZ
>>619
ありがとうございます。
状況で挙動が変わる機能なんて混乱するだけですよね。
0621名前は開発中のものです。2015/02/15(日) 11:24:38.89ID:xIrvlcL9
>>620
いや、そう言うわけではなくて、使い分けが出来ると言う方が正しいかも
使い分けが解らないなら全部、GetCompornentしとけばおんなじだよ
0622名前は開発中のものです。2015/02/15(日) 15:17:07.76ID:FFcIOilT
>>614
>>615
今地方にいて、ほぼ裸一貫で上京して就職を目指そうと思ってて、
最初は三畳の部屋とかに住むことになると思うので…
最悪ノートでのデュアルディスプレイは考えています。

就職して落ち着いたら、デスクでデュアルディスプレイ、i5、GTX700〜あたりを考えてます。


>>617
自身では当面は開発予定はありません
就職先では可能性あると思うんですが、その場合は支給されると思ってます(希望的観測)
0623名前は開発中のものです。2015/02/15(日) 16:37:35.31ID:2tWXEZWy
すみません、少し質問したいんですが

配置されているobjectに対して銃弾を撃った時に、
弾が接触した瞬間にエフェクトを発生させそのオブジェクトの接触面とは反対側から
何事も無かったかのように侵入角度保ったまま弾を通す(はたから見てると貫通してるみたいな処理)
の場合どうすればいいんですかね?positionを変えてやっても角度変わるし……

istriggerは使わない方法でお願いします
0624名前は開発中のものです。2015/02/15(日) 16:38:26.41ID:jeOJtHGY
Oculus riftのSDKを使ってVRのゲームを作ってるんだけど、
OVRPlayerController.prefabをシーン内に配置して再生すると
左画面にmag uncalibratedってエラーが出て真っ黒になってしまう……
ググっても全く情報が出なくて困ってるんだけどどうすればいいんだろうか
0625名前は開発中のものです。2015/02/15(日) 17:45:22.88ID:wyzwpkn/
>>623
isKinematicを使う
06266242015/02/15(日) 18:23:44.56ID:jeOJtHGY
エラーが出てもエラー画面そのものを削除するという力技で自己解決しました
0627名前は開発中のものです。2015/02/15(日) 20:07:56.88ID:5j6iNpyi
ひとつ質問です。
Colliderの設定の中の"Is Trigger"をonにすると、その物体をすりぬけますよね。
その物体をすりぬけたものに対しSendMessageを使いたいのですが、
判定をどのようにして書けばいいでしょうか。できればJSでお願いします。
0628名前は開発中のものです。2015/02/15(日) 20:53:53.16ID:Q2iYFOAp
>>627
プログラムなんて使わずアセットを使った方が簡単ですよ
06296272015/02/15(日) 20:55:45.58ID:5j6iNpyi
>>268
アセットはすでに使っているんですよ。
0630名前は開発中のものです。2015/02/15(日) 20:59:33.15ID:wyzwpkn/
>>627
ttp://docs.unity3d.com/ScriptReference/Collider.OnTriggerEnter.html
そこの例文のDestroyをother.SendMessage()にしてやればいい
抜けた時に送りたいならOnTriggerExitでもいい
06316272015/02/15(日) 21:20:03.64ID:5j6iNpyi
>>630
ありがとうございます!
おかげで解決しました!
Trigger用の文もあるんですね…。知りませんでした。
0632名前は開発中のものです。2015/02/16(月) 00:47:57.34ID:0BQ1Muq+
>>581
ガタガタ揺れる床を作る時に床を直接動かすとモデルの動きがおかしくなるから描画位置だけ動したいなと思ったんだ。
0633名前は開発中のものです。2015/02/16(月) 05:07:01.88ID:2aCCCEIZ
頂点シェーダで動かせばいいんでないの
0634名前は開発中のものです。2015/02/16(月) 05:42:04.80ID:KNDKsl5H
>>632だけじゃないけど、変に抽象化して質問しようとする人って多いよね。

分かり易く伝えようとして空回りしてしまっているのか、
制作中の内容がバレたくない…的な自意識過剰なのか、
なんとなく初心者じゃない風にしたいのか。

何にしろ、質問は具体的に分かりやすく書いて欲しいところ。
0635名前は開発中のものです。2015/02/16(月) 11:23:41.99ID:bDlfzOlg
DestroydCityのTerrainをコピーして、別シーンにペーストすると、ライトマップとのリンクが切れてしまい、Terrainの見た目がコピー前より悪くなってしまいます。

ライトマップとのリンクが切れないように別シーンにコピーする方法はないでしょうか?
0636名前は開発中のものです。2015/02/16(月) 11:37:18.15ID:mc4PULKY
>>617
道路に丸い穴があいていて
通ったら落ちる様にしたいのですが
穴あきの道路オブジェクトを別途作るしかないでしょうか?
0637名前は開発中のものです。2015/02/16(月) 12:35:38.89ID:TwjzIkwe
どういう実装してるか伏せて「○○したいけど××」みたいなぼんやりした質問は
ぼんやりした返事をすればいいんだよな?

632みたいにさらに抽象化してて解消したい目的すら後出しだと返答も581くらいで精一杯だろ
コミュニケーションの勉強から始めて欲しい人が多すぎ
0638名前は開発中のものです。2015/02/16(月) 13:04:31.85ID:UmOo0eRX
くっそ素人な質問なんですが
Blender側でOrthographicにてモデリングしたものを
Unityで使うとパースがかかって形が変わると思うのですが
これが嫌な場合は、そもそもBlender側でPerspectiveにてモデリングする必要があるんですか?
どうやるのが一般的なのか知りたいです
0639名前は開発中のものです。2015/02/16(月) 13:23:29.11ID:IlMq3ak5
・からっぽのオブジェクトをヒエラルキービューに作成
・からっぽのJSファイルをプロジェクトビューに作成
・後者を前者にアタッチ
・Can’t add scriptエラー

このエラーの回避に必要な、JSファイルへ書き足すべき一文を教えてほしい。
何を要求されてるのか全くわからない。

ちなみにfunction NewBehaviourScript() {}じゃダメだった
0640名前は開発中のものです。2015/02/16(月) 13:56:46.12ID:m6a5mlH6
>>638
カメラのProjectionをPerspectiveからOrthgraphicに変えるだけ
0641名前は開発中のものです。2015/02/16(月) 14:06:32.50ID:WSJ1urCp
>>638
例えばサイコロをモデリングするのにOrthographとか関係あるのか?

>>639
多分他のスクリプトがエラー起こしてるんじゃないか?
0642名前は開発中のものです。2015/02/16(月) 14:14:37.41ID:OX20HRWK
スマホ(Android)でGameObjectをタッチしている位置に追従させたいのですが、以下のコードでおこなうと追従がコンマ数秒遅れる感じになってしまいます。
改善する方法はあるでしょうか?

Touch touch = Input.GetTouch(0);
transform.position = Camera.main.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, 10f));
0643名前は開発中のものです。2015/02/16(月) 14:23:59.59ID:UmOo0eRX
>>640
それって背景もOrthgraphicになりません?

>>641
あーそういうことですか!
理解しました
Orthgraphicでモデリングしたキャラクターに見慣れていたので
Perspectiveにすると違和感あったんですよね
Perspectiveになったときにどのように見えるのか意識してモデリングするようにしますわ

なんかUnityの質問とズレて申し訳ない
0644名前は開発中のものです。2015/02/16(月) 14:42:05.01ID:TwjzIkwe
>>642
スクリプト処理と描画のラグは改善できない気がする
見えている画面は1〜2フレーム前に描画されたもの、というレンダリングパス起因の
避けようがない問題だから
タッチパネルからの情報もラグ(バッファリング)されている可能性があるから
ここで発生するものも改善不可

目立たなくする為に高fpsで動作できるようなものにするしかないかもね
0645名前は開発中のものです。2015/02/16(月) 16:28:08.86ID:xdyyTiXX
>>642
Update() とLateUpdate()の両方に
処理書いたらどうかな?
0646名前は開発中のものです。2015/02/16(月) 17:32:30.68ID:OX20HRWK
>>644
そうなんですね。><
数フレームではなく数十フレーム以上遅れる感じですが、パズドラとかツムツムのような操作を軽快におこなわせるにはUnityは不向きなのでしょうか。

>>645
ダメでした。
0647名前は開発中のものです。2015/02/16(月) 17:37:36.28ID:mc4PULKY
ここで聞くのが適切出はないと思うけど、、。
アプリのアイコンてみなさんどうやって作ってますか?
0648名前は開発中のものです。2015/02/16(月) 18:38:38.51ID:TwjzIkwe
>>646
>数フレームではなく数十フレーム以上遅れる感じですが

それはちょっとおかしいと思う
似たような処理(オブジェクトから指の位置に伸ばしたスプライトで線を引く)をやってるけど
そこまで遅れていない
マルチタッチが必要ないなら
Vector2 TouchPos = Input.mousePosition;
みたいな感じでマウス入力に代えてみて(Androidでもタッチを拾える)

うちはこれで拾った値をカメラのワールド座標に変換してレイキャストの起点にし
レイキャスト→コライダ持ちのオブジェクトの接触点までライン、
的な処理をしてるけど大きなラグは感じてない
0649名前は開発中のものです。2015/02/16(月) 19:13:02.82ID:OX20HRWK
>>648

以下をおこなっているだけなのですが、何か使い方がおかしいんでしょうか。
マウスへの追従は早いのですが、タッチへの追従はすごく遅いのです。

2Dのプロジェクト作成
Cubeを配置してScriptを追加
コードは
void Update () {
Vector2 touchPos = Input.mousePosition;
transform.position = Camera.main.ScreenToWorldPoint(new Vector3(touchPos.x, touchPos.y, 10f));
}
0650名前は開発中のものです。2015/02/16(月) 20:20:19.66ID:JnS6vfCV
気合い
0651名前は開発中のものです。2015/02/16(月) 20:26:24.67ID:TwjzIkwe
>>649
うーん・・・端末の問題、とか?
こっちはF-01Fとペリアのz1とちょい型落ちのアクオス携帯では問題なく動いてる
0652名前は開発中のものです。2015/02/16(月) 20:33:26.38ID:xdyyTiXX
>>649
apkあっぷしてみたら?
0653名前は開発中のものです。2015/02/16(月) 21:15:02.43ID:Nat1f4Jb
>>649
色々キャッシュしても体感レベルで変わるか微妙だけど、どうかな

Transform cubeTrans;
Camera mainCam;
Vector3 touchPos;

void Awake () {
cubeTrans = gameObject.transform;
mainCam = Camera.main;
}

void Update () {
touchPos = Input.mousePosition;
touchPos.z = 10f;
cubeTrans.position = mainCam.ScreenToWorldPoint(touchPos);
}
0654名前は開発中のものです。2015/02/16(月) 21:33:04.06ID:bDlfzOlg
class hoge {
static GameObject prefab = Resources.Load("bee") as GameObject;
}

ってかんじでstaticメンバーに、Resources.Loadしたら
実際にLoadされるタイミングは

a) アプリケーションが開始した時に1回のみ
b) 最初にhogeクラスへのアクセスが発生した時に1回のみ

のどっちなんでしょうか?

まさかインスタンス生成毎にLoadされるってことはないと思うんですが。
0655名前は開発中のものです。2015/02/16(月) 21:41:33.35ID:Z0OsqIxj
a
0656名前は開発中のものです。2015/02/16(月) 21:41:56.22ID:Nat1f4Jb
>>654
ログ出してタイミング見ればいいよ。
static初期化タイミング云々は結構深くて、
「bかそれより前」という答え方になると思う。
0657名前は開発中のものです。2015/02/16(月) 21:51:29.10ID:2IYbTJ7l
>>655-656
なるほど、了解です!
有難うございました。
0658名前は開発中のものです。2015/02/16(月) 22:45:34.86ID:fIWuOMSy
GameObject obj に AnimationClip animClip を設定してアニメーションを表示させたいです。
このコードを実行したのですが、アニメーションは表示されませんでした。

一時停止して Animation コンポーネントの値を見ると
Animation が none (Animation Clip) になっています。
Animations には設定した Animation1 が入っていました。

Animation animation = obj.AddComponent("Animation") as Animation;
animation.AddClip(animClip, "Animation1");
animation.Play("Animation1");
animation.wrapMode = WrapMode.Loop;
animation.transform.position = new Vector3(-2, 0, -1);

間違いを指摘していただけると助かります。
0659名前は開発中のものです。2015/02/17(火) 00:43:54.95ID:EKF8Hxv8
>>658
何も間違っていない。
それでそのまま動く。
つまり他の何かが間違っている。
例えばアニメーションのキーに何も、もしくは有効な
アトリビュートのキーがはいっていない。
クリップのタイプが間違っている(プロジェクトビューで
アニメーションクリップを選んでインスペクターをデバッグモードにしたとき
Animation Typeが1になっていない、等々、色々考えられるが
他の全ての情報がなければ原因はわからない。
0660名前は開発中のものです。2015/02/17(火) 01:03:32.63ID:EKF8Hxv8
>>658
少し追記しておくとその文はStart()にそのまま書いてやってみた。
ちょっと気になるのは「animation」の識別子は本来
MonoBehaviourで定義されている。
勿論継承先で再定義すればオーバーライドされるだけだと思うし
実際そのまま動いているが書き方によっては
何かおかしなことになっているかもしれない。
0661名前は開発中のものです。2015/02/17(火) 02:36:05.80ID:2n27txD/
>>658
プログラムなんて無駄なことなんてせずにアセット使いましょうよ
0662名前は開発中のものです。2015/02/17(火) 08:15:28.59ID:MECuMyr0
>>654
コンストラクタに書いたらクラスが生成される度に実行されるよ
最初に一回にしたければ、クラス内のメソッド外に書けばいい
勿論スタティックにしないといけない
0663名前は開発中のものです。2015/02/17(火) 08:16:31.71ID:MECuMyr0
>>662
ごめん、なぜかコンストラクタに見えてた
それであってる
0664名前は開発中のものです。2015/02/17(火) 09:52:17.26ID:KhMWXerU
FBXのAnimation("Take 001"というクリップ名)が再生終了したら敵を削除したいのだけど、
うまく消えてくれません。。。
*********************************
function makeEnemy()
{
if(currentEnemy == null)
{
//敵 インスタンス複製処理
currentEnemy = Instantiate(Prefab_A, Prefab_A.transform.position, Prefab_A.transform.rotation);
}

//// アニメ再生終了したときに消したい)////
if(currentEnemy.animation["Take001"].normalizedTime == 1.0)
{
Destroy(currentEnemy);
currentEnemy = null;//カラに初期化
}
}


function Update ()
{
makeEnemy();
}
***************************************
0665名前は開発中のものです。2015/02/17(火) 10:40:04.69ID:qLqQg8Su
>>651-653

Nexus7(2013)とXperiaZ3で確認しても同様ですので端末の問題ではないと思います。
画面いっぱいを1秒で1周させるくらいの早さで指をくるくる回しても指先にくっついてくる感じですか?
こちらでは指先から完全に離れてしまって、0.3〜0.5秒くらい遅れてついてくる感じになってしまいます。
0666名前は開発中のものです。2015/02/17(火) 11:05:00.23ID:2n27txD/
>>664
アセットをかえば問題解決すると思いますよ
0667名前は開発中のものです。2015/02/17(火) 11:31:37.55ID:G8APQ3uB
>>664
//// アニメ再生終了したときに消したい)////
のif文はどこに置いているんだい?
0668名前は開発中のものです。2015/02/17(火) 12:07:26.71ID:T/HrOegi
>>664
小数の値って==で比較していいん?(´・ω・`)
0669名前は開発中のものです。2015/02/17(火) 12:45:28.87ID:2swKsT4k
>>667
敵を作成した後にです...??

>>668
え!ダメなの!?
0670名前は開発中のものです。2015/02/17(火) 12:51:59.60ID:Aj4qymuu
Unity無料版とネイティブプラグインについて質問なんですが、ネイティブ
プラグインはiOS/AndroidではUnity無料版でも利用できるというのは
理解してるんですが、iOS/Android向けネイティブプラグインの開発も
Unity無料版で可能なのでしょうか?
0671名前は開発中のものです。2015/02/17(火) 13:03:51.21ID:+/iTCq2X
>>669
浮動小数点数値は誤差を含むから積算結果が等値って方が珍しいんじゃないの?
積極的な対応は最小値epsilonを考慮した比較とか使うのが普通

>>670
AndroidはAndroid StudioとかiOSはXCodeで作る
Androidはjarにしてプラグインフォルダに持ち込み、iOSはビルド時にプラグインフォルダに突っ込んだソースファイルやlibがXCodeに渡されてコンパイルされる。
0672名前は開発中のものです。2015/02/17(火) 13:07:44.26ID:Aj4qymuu
>>671
ありがとうございます、Unity Pro版を持ってなくてFree版だけでも、
そういうふうにしてXcodeとかEclipseとかでネイティブプラグイン
作って実機デバッグ実行できる、というので合ってますか?
0673名前は開発中のものです。2015/02/17(火) 13:14:05.38ID:T/HrOegi
>>669
浮動小数点を含む等号演算子
http://docs-jp.unity3d.com/Documentation/ScriptReference/Mathf.Approximately.html
0674名前は開発中のものです。2015/02/17(火) 13:18:33.41ID:Zjjcxn9x
>>664
あ〜、ちょっと見てみたがどうもanimation.normalizedTimeは
再生が終わると0に即戻りするみたいだな。
かといって
if(currentEnemy.animation["Take001"].normalizedTime == 0.0)
ではその場で消えるw
まぁこの場合は
if(!currentEnemy.animation.isPlaying){

}
あたりが妥当なのだろう。
なにかのアニメーションが再生中か、なら
if(!currentEnemy.animation.IsPlaying("Take001"))
とかでもいいだろう。
まぁ再生を0.01から始めるようにセットしておいて0で判定とか
色々メンドクサイやり方も出来るとは思うが。
0675名前は開発中のものです。2015/02/17(火) 14:25:12.99ID:ecDuu/zi
>>672
あなたはとりあえずアセットを買うべきです
0676名前は開発中のものです。2015/02/17(火) 14:55:06.06ID:2swKsT4k
>>674
if(!currentEnemy.animation.IsPlaying("Take001"))
でやってみると、今度は、敵自体が発生しなくなりました...
0677名前は開発中のものです。2015/02/17(火) 15:00:05.58ID:2swKsT4k
676です。うそです。敵発生しました。すいません。でもやはり、消えてくれません...
0678名前は開発中のものです。2015/02/17(火) 15:04:31.22ID:mcIYbzPY
ユニテェイベントでシービューからイベントを送るか、スクリプトで送るか設計思想を整理できないんだが
0679名前は開発中のものです。2015/02/17(火) 15:05:03.82ID:Zjjcxn9x
ちなみに俺のところでは普通に出来た。
まぁC#でやってるんで何か動作上違いがあるのかもしれん。
0680名前は開発中のものです。2015/02/17(火) 15:06:23.78ID:Zjjcxn9x
あと当然だけどアニメーションがループモードだったりしたらどうにもならんな
0681名前は開発中のものです。2015/02/17(火) 15:07:52.43ID:+/iTCq2X
>>675
実機デバッグできんこたぁねぇが、Pluginは単体でUnitTestなどで完了させて置く方が良いよ。
Buildしないとデバッグできないから時間食ってしょうが無い
0682名前は開発中のものです。2015/02/17(火) 15:11:38.32ID:3tzJ35kx
>>641
ありがとう。シーンに使ってないスクリプトのエラーだった
0683名前は開発中のものです。2015/02/17(火) 18:31:25.37ID:v0NP1e2d
C# で MonoBehaviour の中で new GameObject() で作ったプレハブがヒエラルキーに大量に出てしまうのを防ぐにはどうすればいいですか?
Unity のエディタでいうとヒエラルキーのオブジェクトの右クリックのメニュー Create Empty のように入れ子にしたいです。
0684名前は開発中のものです。2015/02/17(火) 18:49:49.92ID:kxgu6e1v
質問よろしいでしょうか。
すごい初歩的な質問なのですが、立方体のオブジェクトをスナップで並べてみて
その上をAddforceで立方体で移動させると敷き詰めた立方体の継ぎ目に引っかかります。
いつもはその上に大きなコリジョンを作成し対応していますが、ランダム生成で
他のオブジェクトのマップを作成しようとした場合、対応が手間になる気がします。
敷き詰めたオブジェクトのPosition、Rotationを調べてみてもおかしな点はないように思えます。
移動させている立方体のY座標は小数点第五位以降で変動しているため、
何かしら問題が起きているようなのですが。。。
この原因と改善策に心当たりがおありの方はいますでしょうか。
長文失礼しました。よろしくお願いします。
0685名前は開発中のものです。2015/02/17(火) 18:51:22.42ID:BzlPeNOo
>>683
ヒエラルキ上でオブジェクトの子にしてるのと同じ状態にしたいなら
C#でも子にすればいいだけだよね

go = new GameObject;
go.transform.SetParent( this.transform,false );
で実行中のGameObjectの子になる
詳しくは
http://docs-jp.unity3d.com/Documentation/ScriptReference/Transform.html
とかで
0686名前は開発中のものです。2015/02/17(火) 19:06:07.64ID:tcro3/XJ
スクリプトいじったら自動的にコンパイルされるけど
たまにコンパイルされるまで時間かかるというか
されているのかされて無いのかわからないので
手動で確実にしたいんですが何か方法ありますでしょうか?
0687名前は開発中のものです。2015/02/17(火) 19:24:55.47ID:v0NP1e2d
>>685
できました!ありがとうございます!
0688名前は開発中のものです。2015/02/17(火) 20:08:29.74ID:2swKsT4k
ひとつのオブジェクトに2つのAudioSourceコンポーネントを設置して、
どちらかの効果音をランダムに再生したいのですが、GetComponents の行で、
"BCE0044: unexpected char: 0x0."
というエラーでひっかかります。
なぜでしょうか??

***************************
var splash_snd01 : AudioSource;
var splash_snd02 : AudioSource;
var sndRandomNum : int;

var audioSource : AudioSource[] = GetComponents(AudioSource);

sndRandomNum = Random.Range(1,2);
if(sndRandomNum == 1)
{
splash_snd01.PlayOneShot(splash_snd01.clip);
}
else if(sndRandomNum == 2)
{
splash_snd02.PlayOneShot(splash_snd02.clip);
}
0689名前は開発中のものです。2015/02/17(火) 20:25:23.18ID:Zjjcxn9x
>>688
var audioSource : AudioSource[] = GetComponents("AudioSource");
ということではなく?

>>686
F8を押すとかそういうことではなく?

>>684
それはもう引っかかるものなんだわ。自分で衝突判定と
衝突した時にどう処理するかを考えて書いてみればわかる。
多分立方体じゃなく板を置いても引っかかるときは引っかかるはず。
基本的にはどうにもならない。
移動側にスフィアコリダー使うとかそのくらいかな
0690名前は開発中のものです。2015/02/17(火) 21:01:58.00ID:kxgu6e1v
>>689
ご回答ありがとうございます。
そうですよね。物理演算な以上仕方ない気はしていました。
スフィアコリダー等で軽減すべきなんですね。
というかこの場合設計に問題ありということで別の対応を考えます。
ありがとうございます!スッキリしました!
■ このスレッドは過去ログ倉庫に格納されています