【3Dゲームエンジン】Unity質問スレッド9
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2014/05/08(木) 08:44:31.15ID:3QHRiisFWindows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3他
次スレは>>970を踏んだ方が建てること。ダメなら>>980か>>990が建てて下さい。
■前スレ
【3Dゲームエンジン】Unity質問スレッド8
http://toro.2ch.net/test/read.cgi/gamedev/1394451694/
■本スレ
【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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
0405名前は開発中のものです。
2014/06/02(月) 18:54:00.81ID:+fBdINaq特にないです。やっていくうちに
書くことはできなくても、どちらも読めるようになっていくと思われます。
0406名前は開発中のものです。
2014/06/02(月) 20:09:10.81ID:EN+Ir0CJレスありがとうございます。
では、まずはjavascriptで頑張ってみようと思います。
ありがとうございました。
0407名前は開発中のものです。
2014/06/02(月) 20:27:26.89ID:aS4p/dtz後、JSは作られた当初から変態仕様なんだけど、更に方々で拡張されて仕様が滅茶苦茶
分かり難いし
0408名前は開発中のものです。
2014/06/02(月) 20:40:27.19ID:Ay+am4Juアセット犬いつもご苦労
0409名前は開発中のものです。
2014/06/02(月) 21:29:41.07ID:5I2OSzs6別に作るという方針で決定してるならそれで問題はないけど
動かない訳ではない。
インポートセッティングのアニメーションタブ、
それぞれのアニメーションの項目について
Mask>Transformで出てくるボーン全てに
チェックを入れてやれば動くようになる
0410名前は開発中のものです。
2014/06/02(月) 21:38:51.38ID:EN+Ir0CJ正直、見てるコードがjavascriptなのかC#なのかの区別すら分かってないのですが
ttp://unity3d-study.seesaa.net/article/365776158.html
この当たりのサンプルゲームのコードの記述ってjavascriptですよね?
0411名前は開発中のものです。
2014/06/02(月) 21:49:07.29ID:5I2OSzs6頭がusingなんちゃらとか
そのあとあたりに
public class XXX : MonoBehavior
とかあったりするとC#
まぁ実際unity scriptはゼロからだと
かえって勉強しにくそうな印象はあるな。
0412名前は開発中のものです。
2014/06/02(月) 21:57:26.21ID:EN+Ir0CJレスありがとうございます。
私が今日一日で回った初心者サイトや入門サイトのほとんどは
こういう記述だったので、javascriptでまずはやろうと思います
>>407様はパフォーマンス的な理由でC#が良いとの事ですが
初心者の私にはひとまずパフォーマンス面は考えなくていい(考えられない)と思うので
0413名前は開発中のものです。
2014/06/02(月) 22:08:27.75ID:jFKVQN2Mこいつすごいよな。
どんなに疎まれても病的に続ける遺伝子。
日本人「私は人が嫌がることをすすんでやります」
朝鮮人「私は人が嫌がることをすすんでやります」
アセット君は典型的な後者の遺伝子を持っている。日本人には到底理解できないメンタル。すごい。
0414名前は開発中のものです。
2014/06/02(月) 22:21:10.88ID:K/3IBsUzアセット買えばどうにかなると思うよ
特に韓国製は最高!
0415名前は開発中のものです。
2014/06/02(月) 22:23:53.13ID:aS4p/dtzvarで変数宣言するのはJS
ま、プログラミングやったこと無いんだったら言われても何も分からんだろうから、自分で
やってみて判断すればいい、どの道、同梱アセットとかどっちか一方でしか提供されて
ない場合が多いからソース読んで勉強する気ならどっちも分からんと困る部分はある
0416名前は開発中のものです。
2014/06/02(月) 22:27:04.12ID:K/3IBsUz前者と後者の違いがわかりません
アセット購入したらわかりますか?
0417名前は開発中のものです。
2014/06/02(月) 22:54:24.77ID:EdLqyx4Vホント無知で役立たずだなあ
0418名前は開発中のものです。
2014/06/02(月) 23:14:33.63ID:5rUTb0caありがとうございます
試してみます
0419名前は開発中のものです。
2014/06/03(火) 00:00:54.63ID:1QGZsiejレスありがとうございます。
一応、普通のCは1年ほどやっていたのでごく普通の関数、変数、ポインタ
くらいは分かります。
とりあえず、慣れるためにサンプルゲーム理解する所からやってみます。
0420名前は開発中のものです。
2014/06/03(火) 00:24:53.65ID:qeHdX0ZUC#だってvar使うじゃんよーとかいってみるテスト
0421名前は開発中のものです。
2014/06/03(火) 00:39:49.50ID:B2scxBWm対してJSの場合、文法的にローカル変数宣言にはvarが必須
0422名前は開発中のものです。
2014/06/03(火) 01:29:01.14ID:qeHdX0ZUでもUnityのというか.NetなJSだと varに型宣言必須に近いよね。
0423名前は開発中のものです。
2014/06/03(火) 03:01:24.11ID:z1ep9OdU0424名前は開発中のものです。
2014/06/03(火) 04:51:17.46ID:2JU+/4Xk"a"というモーションの再生修了後"b"というモーションを流したいのですが、
どう書けば良いでしょうか?
animation.Play("a");
animation.Play("b");
宜しくお願いいたします。
0425名前は開発中のものです。
2014/06/03(火) 10:56:56.94ID:ndg8wmnUキーを押したら切り替えたいとか色々ある訳だが
とりあえずこの辺か?
ttp://ameblo.jp/knors/entry-11152990897.html
あとこの辺が自分で読めるようにならないとどうにもならない
ttp://docs.unity3d.com/ScriptReference/Animation.html
UnityJapanで日本語リファレンスも作ってくれていたが
本家が更新されたので要確認。
4.5での変更は恐らく反映されていない
ttp://docs-jp.unity3d.com/Documentation/ScriptReference/Animation.html
0426名前は開発中のものです。
2014/06/03(火) 13:12:02.02ID:yKR/2PQH標準でなければASSETS STOREにあるものでも構いません。
0427名前は開発中のものです。
2014/06/03(火) 14:45:34.86ID:2JU+/4Xkありがとうございます。
参考にさせていただきます!
0428名前は開発中のものです。
2014/06/03(火) 14:46:33.51ID:2JU+/4Xkありがとうございます。
参考にいたします!
0429名前は開発中のものです。
2014/06/03(火) 15:33:24.65ID:qeHdX0ZU見かけが同じになるものが欲しいならiPhone用にplugin書くのが一番なんだが、プラットフォーム依存になる。
見かけにて無いけどNGUIで実装されているものなら
ttps://www.assetstore.unity3d.com/en/#!/content/10024
これくらいしかない
つかDatePicker系は殆ど見ないな
0430名前は開発中のものです。
2014/06/03(火) 22:51:15.04ID:MprFx/72public class A_Script : MonoBehaviour {
public bool HIT;
void OnTriggerEnter2D(Collider2D col ){
HIT = true;
}
}
public class B_Script : MonoBehaviour {
public bool HIT_UKETORITAI;
void Update () {
bool HIT_UKETORITAI GetComponent<A_Script>().HIT;
}
}
こんな感じの事をやりたいです
0431名前は開発中のものです。
2014/06/03(火) 23:00:47.33ID:ndg8wmnUまぁ毎回ゲットコンポーネントとか重いだろうから
public class B_Script : MonoBehaviour {
A_script ascript
void Start(){
ascript=gameObject.GetComponent<A_Script>();
}
void Update () {
if(ascript.HIT==true){
処理
}
}
とかの方が一般的かとは思うが
0432名前は開発中のものです。
2014/06/03(火) 23:27:57.03ID:ndg8wmnUA_Script ascript;
だ。
0433名前は開発中のものです。
2014/06/03(火) 23:42:13.28ID:MprFx/72こんな感じで毎フレームの結果が欲しいのですがA_Scriptからコピペした方が良いでしょうか?
public class A_Script : MonoBehaviour {
public bool HIT;
void Update ()
//-------着地---------
if(Physics2D.Linecast(transform.position + transform.up * 1,transform.position - transform.up * 1f,groundLayer)){
HIT =true;
}else{
HIT = false;
}
}
}
}
public class B_Script : MonoBehaviour {
public bool HIT_UKETORITAI; //
void Update () {
bool HIT_UKETORITAI GetComponent<A_Script>().HIT;
if(HIT_UKEROTITAI){
処理
}}
}
0434名前は開発中のものです。
2014/06/03(火) 23:54:08.99ID:k/6hu66m>>431 さんは貴方のやっていることは、
同じ相手に電話をかけるために、毎回104で電話番号を問い合わせる様なもの
だったら初めに番号登録しておいた方がはやいですよ。と、論理的、効率的な仕事の進め方を教えてくれているのです
0435名前は開発中のものです。
2014/06/04(水) 07:26:32.13ID:Q3rHarV8いや、431で書いたようにスタートでゲットコンポーネントしておけばそれでいいんだって。
毎フレームやる必要はなくなる。
newしている訳ではないので新しいインスタンスができる訳ではない。
ttp://forum.unity3d.com/threads/is-using-getcomponent-slow.37548/
ここでサンプルに示してある。
ただ正直ゲットコンポーネントどのくらい重いの?ってのは
どうもよくわからん部分もあって昔のマニュアル見ると
transformとかもキャッシュしておくと早いよって話だった。
ttp://docs.unity3d.com/410/Documentation/ScriptReference/index.Performance_Optimization.html
このページ中段 3. Cache component lookups の項。
>The latter code will run a lot faster since Unity doesn't have to find the transform component in the game object each frame
"後のコードは毎フレームトランスフォームコンポーネントを見つける必要がないからずっと速い"
でも先日改定されたマニュアルにはその辺の話は載ってなかったりする。
内部的に何か変わったのかもしれない。
なのでよくわからなかったら毎フレームゲットコンポーネントしちゃっていい気がする。
重くて動かねぇ、ってなったら考えれば。
0436名前は開発中のものです。
2014/06/04(水) 08:08:32.65ID:Lbw1ASRl変数に直接アクセスするのにかかる時間を1とした場合
GetComponentでアクセスするのにかかる時間=100〜150
GameObject.Findでゲームオブジェクトを探すのにかかる時間=500以上
という印象。しかもGameObject.Findはシーン中のゲームオブジェクトの数に比例して
探すのにかかる時間が増える
0437名前は開発中のものです。
2014/06/04(水) 08:14:12.05ID:8KIZKPRb0438名前は開発中のものです。
2014/06/04(水) 12:21:00.66ID:nMbazG+P・ピンボールを作りたい
・問題点:真横や真縦にボールが反射すると永久的に真横、真縦にしかボールが反射しない
サンプルを探すとそれを解消する記述がありました。
rigidbody.velocity = rigidbody.velocity.normalized * 2; //よく分からないが減速を防ぐらしい
if (Mathf.Abs(rigidbody.velocity.y) < 6) { //y角度が6を下回ったら現Y値に定数を乗算して角度を付ける
rigidbody.velocity.y = rigidbody.velocity.y * 12;
}
if (Mathf.Abs(rigidbody.velocity.x) < 6) { //上のX軸版
rigidbody.velocity.x = rigidbody.velocity.x * 12;
}
0439名前は開発中のものです。
2014/06/04(水) 12:23:21.92ID:nMbazG+P1→3に3倍とかすると効かなくなります。
「Mathf.Abs(rigidbody.velocity.y) < 6」の6や
「rigidbody.velocity.y * 12;」の12などの定数値を2とか9とか30とか
色々いじってもみたのですが、どうも解消しません。
スケールを変えると何か変わるんでしょうか?
解決策でもアドバイスでもなんでもいいので教えて頂きたいです
0440名前は開発中のものです。
2014/06/04(水) 13:46:19.51ID:UFWon8x6ttp://docs.unity3d.com/Manual/class-Rigidbody.html
>もしゲーム内で違うスケールのインスタンスが必要になった場合、
>トランスフォームのスケールの値を調整しても大丈夫です。
>If your game requires that your GameObject needs to be instantiated at different scales, it is okay to adjust the values of your Transform’s scale axes.
とは書いてあるがなぁ…
0441名前は開発中のものです。
2014/06/04(水) 14:15:30.60ID:UFWon8x6ちょっと試してみたがそこまでは差がなかった。
フロートの値をキャッシュした状態で100回参照と
100回ゲットコンポーネントして参照で20〜25倍ほど。
0.0000011〜0.0000015
0.000025〜0.000027
って感じだ。
あとtransform.Translateで移動も試してみたが
計算の分はどちらも同じになるからか差は5倍ほどだった。
ただ最初の一回だけになるとキャッシュの効きも問題になってくるから
案外100倍くらいいくかもね。
0442名前は開発中のものです。
2014/06/04(水) 17:02:52.78ID:9KI8lsdG一括変更したりって出来ますか?
例えばpositionのxを選択しているキーフレームだけ
全て0を入れるという感じです。
1
0443名前は開発中のものです。
2014/06/04(水) 17:32:19.14ID:UFWon8x6ただfbxからインポートしたアニメーションは
基本的にリードオンリーになってるから
改変するならデュプリケートする必要はある、はずだったと思うw
この辺
ttp://docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html
あとこの辺とか
ttp://answers.unity3d.com/questions/8172/how-to-add-new-curves-or-animation-events-to-an-im.html
0444名前は開発中のものです。
2014/06/04(水) 19:44:38.20ID:Lbw1ASRl調べたのか、ありがとうw
多少誇張したけど、現実もやはり絶望的といっていいほどのコストがかかることが分かった
頻繁に参照するものは変数として持っておくのがいいというのは間違いなさそうだ
何でもかんでも持てばいいってものではないよね? そのための変数もメモリを食うわけだし
0445名前は開発中のものです。
2014/06/04(水) 21:05:29.00ID:9Ism3M0L乙です。
思う事は桁が違うのは良くないよなーってことかな、特にPCに比べてチープな携帯端末だと酷い事になりそう。
0446名前は開発中のものです。
2014/06/04(水) 21:11:42.94ID:pjcs31dL0447名前は開発中のものです。
2014/06/04(水) 21:15:42.90ID:9Ism3M0LGameObjectへの参照だとGetComponentが別途必要になるから型別に必要なものをAwakeとかStartで保持すべきじゃないの?
SetActiveメソッドだけが必要なら446の言う通りなんだけど、元の流れは特定のComponentの値を取りたいって事なんだし。
0448名前は開発中のものです。
2014/06/04(水) 21:24:36.11ID:aHG66iZTUnityの本にピンボールを作るってのがあるけど
どの本か忘れた
0449名前は開発中のものです。
2014/06/04(水) 22:42:27.40ID:9KI8lsdG編集するためにはデュプリケートすれば良かったんですね!
ありがとうございます。
一つ目のURLは、スクリプトをオブジェクトに貼り付けると
スクリプトからアニメーションクリップの座標を入力出来るという
ところまでは出来たのですが
ゲームの再生中のみで、アニメーションクリップのキーフレーム自体に
反映する事ができませんでした。
unityで選択しているキーだけを調整したい場合
その部分だけにアクセスしたり、再生中以外に反映する事は難しいのでしょうか?
2つ目のURLに関してはスクリプト自体機能しませんでした。
0450名前は開発中のものです。
2014/06/04(水) 22:58:31.54ID:FB/90mt30451名前は開発中のものです。
2014/06/05(木) 09:02:53.22ID:qzXgCvLf0に何を掛けても・・・
0452名前は開発中のものです。
2014/06/05(木) 09:33:57.96ID:xgNwEVLI同じ操作だから操作しない、などという「判断」を加えることが
いかにCPUサイクル食うだろうかを思えば。
ただメインメモリ、1次2次3次キャッシュから拾ってくるのではそれぞれで
えらい違いなはずでしかし最初の一回はどちらにせよメインメモリ行きなのだとすれば
むしろその差の問題になってしまっている可能性はある。
transformがGetComponent<Transform>()なのはどうも間違いないようで
ttp://www.slideshare.net/RyoheiTokimura/ss-35321624
これの24、25あたり見るとやはりtransformとか頻繁に使う場合は
キャッシュしておくべき、というのは間違ってないっぽい。
0453名前は開発中のものです。
2014/06/05(木) 09:55:44.65ID:xgNwEVLIまぁやはり下のは9年のとかだからそのままじゃ無理かw
一年位前の記事だができている、っぽい記事はある。
ttp://www.repica.jp/staffblog/tech/2013/07/19/973/
それのさらに元記事
ttp://d.hatena.ne.jp/maximilianahead/20120125/1327509943
4.5だとまたアレコレ変わっているんだろうからまたあれだが。
多分下のヤツをさらに改変してデュプリケートしたものに
セットカーブとかすれば良いんだろうって感じはする。
エディタ拡張とかはこの辺とかみるといいかも。
ttp://terasur.blog.fc2.com/blog-entry-734.html
どんなエラーが出てるかわからんのであれだが多分もとのヤツも
そんなにどうしようもなく動かないってことはないんだと思う。
エラーとリファレンスみながらちと直してやれば動くんじゃないかな
0454名前は開発中のものです。
2014/06/05(木) 13:00:47.83ID:AILFZ1NR0455名前は開発中のものです。
2014/06/05(木) 15:26:18.63ID:G3Z0LOYH解決しました。ありがとうございました
0456名前は開発中のものです。
2014/06/05(木) 22:19:49.39ID:EsydIN120457名前は開発中のものです。
2014/06/05(木) 22:37:18.63ID:G3Z0LOYHあくまでUnityというアプリケーションの動作の話ね
Unityにどんなデータを食わせるか(どんなゲームを作るか)で、最終的に必要なスペックは変わってくる
一つの球体と四つの直方体と一つの平面を使ったゲームと、1000個の巨大な3Dオブジェクトが登場するゲームでは
当然要求されるスペックが変わってくるでしょ?
0458名前は開発中のものです。
2014/06/05(木) 22:54:38.79ID:K/1kZWBP/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
___
/ \
/ノ \ u. \ !?
/ (●) (●) \
| (__人__) u. | クスクス>
\ u.` ⌒´ /
ノ \
/´ ヽ
____
<クスクス / \!??
/ u ノ \
/ u (●) \
| (__人__)|
\ u .` ⌒/
ノ \
/´ ヽ
0459名前は開発中のものです。
2014/06/05(木) 23:07:20.05ID:AILFZ1NRアセット買えば快適になると思うよ
0460名前は開発中のものです。
2014/06/05(木) 23:15:56.02ID:0uWBYDa/Unityをゲームの編集コアとして使う分にはグラフィックアクセラレータ持ったMacMiniでも事足りるよ。
MacAirとかだとグラフィック性能が足りないので(HD4000とか)3D向けのビデオ回路もってれば十分
だいたいMacをUnityで使うってことはiPhoneが対象って事だとおもうのでそれなら何でも問題なかろうと思わんでもない。
基本的に3DやりたいならWindowsマシンのグラフィックボードの良いのつかってiPhone版のビルドだけショボイMac使うのが吉。(MacMiniなら10万しないしね)
0461名前は開発中のものです。
2014/06/05(木) 23:28:46.30ID:3PE7uskpIntes386、メモリは256Mあれば大丈夫かな〜
0462名前は開発中のものです。
2014/06/06(金) 00:56:11.05ID:GYJ+3zDwどうせスマホの方がfps落ちるので。。
ただ、3D素材作成にBlender使ってるんだけどこれはmid2010(nvidia 320M)の方がストレスない感じです
CPUよりグラボを危惧した方がよいのではないかと
macにこだわるのならdGPU積んでるiMacやMBP系が無難かと
ただし一部のiMacにもintelオンボのみのモデルがあるようなのでご注意
いっそ普段使いはMacのままで、一丁win組んじゃうのもいいかもですよ
レンダラにもゲーム機にもなりますし
無駄にnvidia Titanとかベンチでぶん回した後で虚無感に覆われたり、cuda学んで挫折したりとかできます。
ただ、エロゲは仮想環境でも困らないし、むしろその方が緊急時にさくっとポーズして、必要とあらばなかったことにも出来るので悩ましい所です
0463名前は開発中のものです。
2014/06/06(金) 02:33:54.90ID:fiXgqsvo可能であればやり方を教えてほしい
0464名前は開発中のものです。
2014/06/06(金) 02:35:56.18ID:k9iXKL+r大量に置きたいんだが、こういう時ってterrainって奴を使うのがいいの?
0465名前は開発中のものです。
2014/06/06(金) 02:37:28.47ID:GYJ+3zDwデバッガのアタッチなら実機でもエミュでもかわらんだろ
logcatならつなぐだけだし
あなたが具体的になにをデバッグと呼んでるのかをkwsk
0466名前は開発中のものです。
2014/06/06(金) 03:00:19.70ID:DGQ6uiLTアセット買えばできると思うよ
0467名前は開発中のものです。
2014/06/06(金) 03:02:39.37ID:XajoU/RN0468名前は開発中のものです。
2014/06/06(金) 03:11:49.75ID:NGa64/Th見た目だけならScaleで-1でも入れればよかろう
物理的に反転なら配列にはき出して入れ替えてからTexture生成
0469名前は開発中のものです。
2014/06/06(金) 03:26:37.35ID:XajoU/RN見た目だけでいいんだが
GUIに貼るテクスチャなんだがScale-1はGUIに反映されなくね?
0470名前は開発中のものです。
2014/06/06(金) 03:58:35.02ID:XED3QHWaたまにAsset名のフォルダに入ってなくて、何がインポートされたのかわからんくなったりしてるから、
整理したい。
0471名前は開発中のものです。
2014/06/06(金) 08:45:33.63ID:DGQ6uiLT0472名前は開発中のものです。
2014/06/06(金) 09:54:08.58ID:nRRLGBQk解決しました。ありがとうございます
それはさておき、
・親子関係のスプライト
・子スプライトは親スプライトの上に重なっている
という状態で、親スプライトの透明度を変えたときに子スプライトの透明度も一緒に変えるにはどうしたらいいんだろうか
互いに重なっていないなら普通に両方の透明度を同時に変えればいいけど
重なっている場合は両方の透明度を変えるとおかしくなるよね?
「親と子のスプライトの透明度を変えたものを重ねて表示」
ではなく
「親と子のスプライトを重ねたものを透明度を変えて表示」
したいんだけどどうすればいいんだろうか
0473名前は開発中のものです。
2014/06/06(金) 11:12:26.07ID:afO8OfRs0474名前は開発中のものです。
2014/06/06(金) 11:34:55.63ID:nRRLGBQkUnityにそういう機構が最初からあるものと思ってた
アセットを買う以外の解決方法がなければそうするしかないと思ってたから
大人しく自力で合成することにしよう
どうもでした>>473
0475名前は開発中のものです。
2014/06/06(金) 12:42:11.52ID:NGa64/ThNGUIのSpriteだと親WidgetのAlphaを操作すると子に及ぶように作られてる。
UnityのSpriteと異なりUIとして作っているから親のAlphaが影響する方が有り難いからなんだろう。
とりあえず普通に処理するならAlphaを操作する親スクリプトに一緒に処理したい子のGameObject情報を持たせるのが良いんじゃ無いの?
0476名前は開発中のものです。
2014/06/06(金) 12:53:45.72ID:nRRLGBQk>>475自身が書いてるとおり、UnityのSpriteは親のAlphaが子に影響しないんでしょ?
0477名前は開発中のものです。
2014/06/06(金) 12:53:51.04ID:afO8OfRs合成結果が意図と違うって話なので的外れ
0478名前は開発中のものです。
2014/06/06(金) 13:51:31.10ID:jcJkxeee0479名前は開発中のものです。
2014/06/06(金) 14:48:25.00ID:nRRLGBQkだよね。やはり自分でやるしかない
>>478
無事解決しました。ありがとう。君のアドバイスはいつも的確で最高に助かります
0480名前は開発中のものです。
2014/06/06(金) 15:05:26.57ID:VY4Mbaslテンプレに入れよう
0481名前は開発中のものです。
2014/06/06(金) 15:13:44.73ID:J2UyRbQ10482名前は開発中のものです。
2014/06/06(金) 15:18:39.84ID:nRRLGBQk実害は生じないと思うよ
0483名前は開発中のものです。
2014/06/06(金) 15:23:35.03ID:nRRLGBQkあのレスは誰にも実害を与えないし、罵詈雑言で人を傷つけるわけでもない。
少々鬱陶しい程度の存在感でありながら、ごくまれに正鵠を射ていることもあり。
その上多くのレスがスレを賑わすことはスレの勢いをのばし、
それは畢竟Unityというツールが有用で多くの人が使用していることを客観的な数値として表現するのに一役買っている。
Unityを貶めたい意図なら逆の効果をもたらしている頭の弱いアホだが、
Unityの価値を高めたい意図なら、真逆に見えてそれを達成している、極めて知的な書き込みなんだよ!(ババーン)
>>478
ホント、ありがとうね。君のアドバイスで解決しまくるから。今日も明日も明後日も
0484名前は開発中のものです。
2014/06/06(金) 15:30:12.01ID:J2UyRbQ1Asset買っても本当に出来なかった子か
0485名前は開発中のものです。
2014/06/06(金) 16:36:11.97ID:V414/gy8タイトル画面 → ステージ1 → クリア画面 → ステージ2 → 全クリ画面
↓ ↓
ゲームオーバー画面 ← ← ←
ゲームはステージに入ると、初速度を持ったボールが自動的に飛び出し、
あとはブロックにぶつかりながら反射、というごく普通のピンボールです。
しかし、上記をビルドし、ステージ1をクリア(ステージ1は問題なし)、その後クリア画面から
ステージ2に入るとステージ2表示直後、ボールが発射されず開始位置で静止してしまい
ゲームになりません。
初速度はスクリプトのrigidbody.AddForceで設定しており、ビルドせずunity上で再生ボタンを押して
ステージ2を再生すると、問題なく設定した初速度でボールが打ち出され、ゲームできます。
なぜかビルド後、ステージ1→クリア画面を経てステージ2に入った時だけボールが静止してしまいます。
何か考えられる要因はありますか?
0486名前は開発中のものです。
2014/06/06(金) 16:41:20.50ID:V414/gy8ステージ2のシーンを作る → ステージ1のゲームオブジェクトを全コピー→
ステージ2のシーンを選択→空のステージ2シーンのゲームオブジェクトへ貼り付け
という手順で作り、速度やクリア判定処理をしているボールのスクリプトだけステージ2用
のものに差し替えました。
こういう、他のシーンのオブジェクトをコピーして他のシーンに貼りつけるというのは
もしかしてまずかったりしますか?
0487名前は開発中のものです。
2014/06/06(金) 16:42:54.67ID:nRRLGBQkだから、彼のレスを見てもアセットは買えないんだっての。だから発狂のしようもない
論理的思考ができないのは許すから最低でも日本語を分かろうぜ
0488名前は開発中のものです。
2014/06/06(金) 17:42:29.13ID:1HsYzGg/シーン遷移とかはエディタ上の実行でも行われるんだし
デバッグログとかかましてシーン遷移でステージ2にいっても
ちゃんとaddForce実行されてるかとか見てけば?
ビルドの時だけダメとかだとちょっと面倒だけど
それだって簡易にGUI使ってデバッグログ表示的な
ことははできるし。
0489名前は開発中のものです。
2014/06/06(金) 17:57:52.41ID:V414/gy8レスありがとうございます。
unityのデバッグ上で
・ステージ2シーンのみ再生 :問題なし
・クリア画面シーン→ステージ2移行 :問題なし
・ステージ1→クリア画面→ステージ2 :ボール動かず
なんです
builldsettingsに登録する順序?
オブジェクトをシーンを渡ってコピペした事が問題?
など昨日から考えてるのですが、全く解決の糸口さえ分からなくて質問してみました
とりあえず、ご指摘通りステージ2に入ったら瞬間addforce値を
デバッグで見てみる事にします
0490名前は開発中のものです。
2014/06/06(金) 22:21:36.74ID:OYwMguSf0491名前は開発中のものです。
2014/06/06(金) 22:43:40.80ID:ty0PybCXGetComponentは任意の文字列でスクリプト指定するんだが?
0492名前は開発中のものです。
2014/06/06(金) 23:16:49.51ID:1HsYzGg/Unityの話というよりC#の話だろうからそっちで聞いた方が。
あれは多分コンパイルされるんだろうから動的にってのは
無理なんじゃないかと思うが
0493名前は開発中のものです。
2014/06/06(金) 23:33:13.92ID:NGa64/ThString渡す形式のメソッドもあるぞい
HingeJoint hinge = gameObject.GetComponent("HingeJoint") as HingeJoint;
SomeScript ss = gameObject.GetComponent("SomeScript") as SomeScript;
でも任意の文字列でってなると
object anObject = gameObject.GetComponent("HOGE"+id);
とか左辺がobjectにしかできずにこのあと型認識のif文がつきまとうし結局意味なくない?
>>490のやりたいことがイマイチ把握できんわ
0494名前は開発中のものです。
2014/06/07(土) 00:23:04.11ID:wmEs6LFzでも使いどころがいまいちわからん…
interfaceで受けて複数のスクリプト跨いで多態しちまうとかかなあ
煮詰めたらなんか嬉しいことありそうな気もするのだけど実装例が思いつかない
0495名前は開発中のものです。
2014/06/07(土) 01:23:50.18ID:xvmka8tf0496名前は開発中のものです。
2014/06/07(土) 01:43:31.06ID:wmEs6LFzもはや何のことやらだよwww
そりゃまあ気分転換に3Dモデルやら漁っているうちに思い付くかもしらんけどさ
それで思い付いた訳ではないのだけど、例えば使い方が似通ってるけど互換性のないコンポーネントをまとめたいって時に使えるかもなって思った
スプライトスタジオなコンポーネントとNGUIのUISpriteで表現されてるオブジェクトを混在で透過的に扱いたい場合とか。
GameObjectコンポジットにしたクラスで纏めろよって言われる気がするし現にそうしてるけど、コンポーネントの段階をまとめておいて多態できると薄皮一枚減るなとも
0497名前は開発中のものです。
2014/06/07(土) 05:30:05.52ID:MmGYU6Hwアセット犬ペロペロ
0498名前は開発中のものです。
2014/06/07(土) 06:51:10.37ID:hoepzNkhその買ったAssetをインポートした時の配置場所なんだけど・・・
0499名前は開発中のものです。
2014/06/07(土) 07:10:35.84ID:yYkQLJoL0500名前は開発中のものです。
2014/06/07(土) 08:30:23.38ID:xvmka8tfアセット買えばわかると思うのこと
0501名前は開発中のものです。
2014/06/07(土) 08:56:27.42ID:a7LAxARk俺はそのままにしてるな
場所を移動してもupdate時はmetaファイルで追いかけて移動先のが差し替わるようにできてるからあんまり気にしなくなった。
問題はやっぱ要らないって時に探して削るのがめんどくさい事かな>>Asset名フォルダに入ってない奴
0502名前は開発中のものです。
2014/06/07(土) 08:59:25.47ID:Joa68O0sそうなのかぁ。こういうニーズって結構ありそうだから
Unityにそういう機構が最初からあるものと思ってた
アセットを買う以外の解決方法がなければそうするしかないと思ってたから
大人しく自力で合成することにしよう
どうもでした>>473
479 名前:名前は開発中のものです。[sage] 投稿日:2014/06/06(金) 14:48:25.00 ID:nRRLGBQk
>>478
無事解決しました。ありがとう。君のアドバイスはいつも的確で最高に助かります
483 名前:名前は開発中のものです。[sage] 投稿日:2014/06/06(金) 15:23:35.03 ID:nRRLGBQk
このレスは非常に高度に計算されてる。
あのレスは誰にも実害を与えないし、罵詈雑言で人を傷つけるわけでもない。
少々鬱陶しい程度の存在感でありながら、ごくまれに正鵠を射ていることもあり。
その上多くのレスがスレを賑わすことはスレの勢いをのばし、
それは畢竟Unityというツールが有用で多くの人が使用していることを客観的な数値として表現するのに一役買っている。
Unityを貶めたい意図なら逆の効果をもたらしている頭の弱いアホだが、
Unityの価値を高めたい意図なら、真逆に見えてそれを達成している、極めて知的な書き込みなんだよ!(ババーン)
>>478
ホント、ありがとうね。君のアドバイスで解決しまくるから。今日も明日も明後日も
487 名前:名前は開発中のものです。[sage] 投稿日:2014/06/06(金) 16:42:54.67 ID:nRRLGBQk
>>484
だから、彼のレスを見てもアセットは買えないんだっての。だから発狂のしようもない
論理的思考ができないのは許すから最低でも日本語を分かろうぜ
>>501
アセットを買えばすべて解決するよ?
0503489
2014/06/07(土) 09:28:29.84ID:OKEJleQ3// クリア判定
if(hitcount == 5)
{
// 一時停止後クリア画面表示のため停止処理をループ
var cnt : int = 0;
while(cnt <= 15000000)
{
// 一時停止
Time.timeScale = 0;
cnt += 1;
}
// 40000000カウント超過でクリア画面遷移
if(cnt >= 15000000)
{
// クリア画面表示
Application.LoadLevel("clear");
}
}
ステージ1のこのtimescaleがずっと効いていた事でステージ1から開始してステージ2に入った時のみ
初速度を設定していてもボールが動かなかったようです
スクリプトの処理がシーンをまたぐ事を知りませんでした
てっきりスクリプトの処理はそのシーンでのみ有効なのかと(クラスによってまたぐ、またがないがある?)
0504489
2014/06/07(土) 09:29:44.37ID:OKEJleQ3if(hitcount == 5)
{
// 一時停止後クリア画面表示のため停止処理をループ
var cnt : int = 0;
while(cnt <= 15000000)
{
// 一時停止
Time.timeScale = 0;
cnt += 1;
}
// 40000000カウント超過でクリア画面遷移
if(cnt >= 15000000)
{
// 一時停止解除
Time.timeScale = 1;
// クリア画面表示
Application.LoadLevel("clear");
}
}
これで解消しました
■ このスレッドは過去ログ倉庫に格納されています