[過去ログ] 【3Dゲームエンジン】Unity質問スレッド29 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
303(1): 名前は開発中のものです。 [sage] 2017/06/13(火) 22:58:59.23 ID:zfyIvA2/(2/3) AAS
>>302302(1): 273 [] 2017/06/13(火) 22:53:59.21 ID:AdsyBo0X(3/4) AAS
レス版間違えたので再投稿ですw汚しちゃってすいません
>>274
元から平面ポリゴンでやってるのですが、トリガーにした時点で実際にポリゴンのない余白部分までもがあたり判定の範囲に含まれてしまいます。
川ポリゴンをterrainで作った溝の中に埋め込んでポリゴンのない部分にはプレイヤーが入れないようにするなどで
対処するしかないのかなぁ
MeshColliderのConvexプロパティはどうなってます?
true?
304(1): 名前は開発中のものです。 [] 2017/06/13(火) 23:26:13.82 ID:AdsyBo0X(4/4) AAS
>>303
trueです。
というか、MeshColliderのisTrigerをtrueにしたいならConvexをtrueにしないと
isTrigerのチェックボックスが解放されませんよね
305(1): 名前は開発中のものです。 [sage] 2017/06/13(火) 23:52:35.63 ID:zfyIvA2/(3/3) AAS
>>304
あ、そうなんだ
MeshColliderの経験少ないから知らなかった
軽く調べたらMeshCollider側で制約を回避するのは難しそうだね
川のMeshCollider側のIsTrigger&Convexはfalseにして、プレイヤー側のColliderで工夫したほうがいいのかも
プレイヤー側のColliderは簡単な形なのかな?
プレイヤー側で工夫したほうが楽チンな気がする
ただの勘だけど
306(2): 名前は開発中のものです。 [] 2017/06/14(水) 00:07:37.13 ID:KLD2ljQF(1) AAS
>>305
アドバイスありがとうございます
色々試してみます
実際にunity使ってみると仕様上かゆいところに手が届かないというか、もどかしい部分がいくつか出てきますね。
パフォーマンス優先してこういう仕様になってるんだろうけど
307: 名前は開発中のものです。 [sage] 2017/06/14(水) 01:20:45.16 ID:aj4pCFI6(1) AAS
MeshColliderでConvex有効にしないとOnTriggerEnter取れないのは5.xから
physicsはNVIDIA PhysX SDKに丸投げだから、PhysX SDKのver違いによる
仕様変更の可能性はある
PhysX SDKは開発者泣かせなSDKだからPhysXが原因でも不思議はないかなと思う
308(1): 名前は開発中のものです。 [sage] 2017/06/14(水) 02:33:52.50 ID:1sRsdZ3W(1) AAS
>>306
こ、これは乙じゃなくてConvexなんだからね
画像リンク
DCCソフト側でキューブを並べておいたらConvex入れても変形はしないみたい
Unityでやるよりちょっとマシ程度だけど、手間はどっちでやっても大差ないかもね
309: 名前は開発中のものです。 [sage] 2017/06/14(水) 02:39:49.10 ID:26YMgC2v(1/2) AAS
>>306
もう、アセットを買えばいいと思いますよ、そのレベルじゃ
310: 名前は開発中のものです。 [sage] 2017/06/14(水) 03:32:22.45 ID:lWyAf2s4(1) AAS
そのもどかしさわかるわー
MeshCollider + Rigidbody の組み合わせも CoverX=true強制になっててふざけんな状態だし
選択肢として可能にしておいてほしいもんだ
処理落ちどうのはこっちでカバーするし
311: 名前は開発中のものです。 [] 2017/06/14(水) 03:34:49.78 ID:+ijmGWca(1) AAS
>>308
それだと変形しないんですね
自分でアセットストアから小物(野菜とか)のメッシュデータ落としてconvexつけてみたんですが、やはり川の時と同じように変形してしまいます。
何が違うのかな...
312(3): 名前は開発中のものです。 [] 2017/06/14(水) 07:15:07.65 ID:haEDSL54(1/2) AAS
public static class GameObjectExtensions
{
public static void transformM(this Transform t){ 処理 }
}
void Start () {
gameObject.transformM (gameObject.GetComponent<Transform>());
}
このコードだとエラーになるんですが、Transform型の引数ってどうやって渡せばいいんですか?
313(1): 名前は開発中のものです。 [sage] 2017/06/14(水) 09:22:06.14 ID:B7+VHkXF(1) AAS
>>312
スクリプトが割り当てられたゲームオブジェクトなら
transformで取得できるよ
関係ないゲームオブジェクトなら
GameObject.Find("ゲームオブジェクト名").transform
あとMonoBehaviourを継承してないとStart()は呼び出されない。
public class Test : MonoBehaviour {
void Start () {
ChangeTransName(transform);
StaticTest.ChangeTransName(transform);
}
void ChangeTransName(Transform t) {
t.name = "ttt";
}
}
public static class StaticTest {
public static void ChangeTransName(Transform t) {
t.name = "test";
}
}
314: 名前は開発中のものです。 [sage] 2017/06/14(水) 10:05:33.54 ID:26YMgC2v(2/2) AAS
>>312
アセットを買えばいいと思いますが
315: 名前は開発中のものです。 [] 2017/06/14(水) 13:44:33.17 ID:haEDSL54(2/2) AAS
>>313
出来ました。ありがとうございます。
316: 名前は開発中のものです。 [sage] 2017/06/14(水) 14:21:39.03 ID:ip2y4rWT(1) AAS
>>312
拡張メソッドの話ではなかったみたいだが一応拡張メソッドの話を書いておこう
拡張メソッドのthis修飾子が付いた第1引数は呼び出し元のオブジェクトのように指定する
これはコンパイル時にstaticメソッドの呼び出しとして展開される
>>312のコードなら呼び出しは以下が正しい。
gameObject.transform.transformM ();
ただまあGameObjectExtensionsという名前に反してTransformを拡張してるとかツッコミどころは多い
317: 名前は開発中のものです。 [] 2017/06/14(水) 19:17:17.67 ID:7PoPt8+e(1/3) AAS
UNITYってC#とJavaScriptで記述するって言われたけど
JavaScriptどんな時必要になるの?
318(1): 名前は開発中のものです。 [] 2017/06/14(水) 19:19:42.12 ID:S/j3wJfD(1) AAS
C#分からないやつが使うとき・・・・。
319: 名前は開発中のものです。 [] 2017/06/14(水) 19:26:51.44 ID:7PoPt8+e(2/3) AAS
>>318
じゃあC#だけでいいのか
320: 名無し@キムチ [] 2017/06/14(水) 20:16:58.67 ID:1f23pPXc(1/6) AAS
本日は晴天なり
321: 名無し@キムチ [] 2017/06/14(水) 20:20:50.84 ID:1f23pPXc(2/6) AAS
あ、書き込めました。
しばらく書き込めない期間が続いていたので、ちょっとテストしてみました。ごめんなさい。
えっと初歩的な質問ですが、モノビヘイビアのスタート関数には行数制限があるのですか?
何か下のほうの行に書くと、その処理は無視されるみたいで、コピペして上のほうに持ってくるとちゃんと処理してくれるのですか?
これはいかなる理由に基づく現象なのでしょうか?
322(4): 名無し@キムチ [] 2017/06/14(水) 20:41:49.68 ID:1f23pPXc(3/6) AAS
これが主人公につけた当方のスタート関数です。
// Use this for initialization
void Start()
{
・・・長すぎるため省略・・・
MainCam = GameObject.Find("MainCamera(2)");
SubCam = GameObject.Find("Camera(2)");
animator1 = GetComponent<Animator>();
audioSources = GetComponents<AudioSource>();
sound01 = audioSources[0];
sound02 = audioSources[1];
sound03 = audioSources[2];
sound04 = audioSources[3];
sound05 = audioSources[4];
//sound06 = audioSources[5];
particle = GetComponent<ParticleSystem>();
MainCam.SetActive(false);
SubCam.SetActive(true);
InfoBox.SetActive(false);
・・・長すぎるため省略・・・ }
この関数 InfoBox.SetActive(false);のところまでしか処理されません。
それはsound06 = audioSources[5];を消しているからで、
この//sound06 = audioSources[5];をつけるとInfoBox.SetActive(false);も処理されなくなってしまいます。
行数にすると24行目までしか処理されないようです。
Unityの規約にスタート関数は24行までという規約でもあるのですか?
当方理由がわからず途方にくれています。
よろしくお願いします。
323(1): 名前は開発中のものです。 [sage] 2017/06/14(水) 20:52:09.23 ID:akYjCxEY(1) AAS
>>322
24行目までしか実行されないというのはどうやって確かめました?
デバッガでステップ実行?
324: 名無し@キムチ [] 2017/06/14(水) 20:55:15.55 ID:1f23pPXc(4/6) AAS
>>323
目視です。実際やってみて、それより下の処理が実行されてないことを確かめました。
325: 名前は開発中のものです。 [sage] 2017/06/14(水) 21:09:30.23 ID:Y03yzoRK(1/3) AAS
目視ってなんや?
326(1): 名前は開発中のものです。 [sage] 2017/06/14(水) 21:22:32.25 ID:nxSO0imy(1/4) AAS
処理されないなら、エラーコード出てないか?
327(1): 名前は開発中のものです。 [sage] 2017/06/14(水) 21:24:09.50 ID:nxSO0imy(2/4) AAS
あと、変数は、static連発してないよな?
上下前次1-新書関写板覧索設栞歴
あと 675 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.029s