フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他
■注意事項
質問と答え以外は禁止
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
・http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
http://unity3d.com/jp/unity/faq
・MSDN
http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
■前スレ
【ゲームエンジン】Unityなんでも質問スレpart11
https://mevius.5ch.net/test/read.cgi/gamedev/1691129256/l50
探検
【ゲームエンジン】Unityなんでも質問スレpart12
■ このスレッドは過去ログ倉庫に格納されています
2023/11/06(月) 16:50:23.83ID:aWH6Xwln
252名前は開発中のものです。
2023/11/26(日) 13:33:35.58ID:ap8K17/p 2022/8/15 サイバーエージェントのパフォーマンスチューニングバイブル
https://github.com/CyberAgentGameEntertainment/UnityPerformanceTuningBible
9.3 コンポーネントの取得
同じ GameObject にアタッチされている他のコンポーネントを取得する GetComponent() も注意が必要な 1 つです。
前節の tag プロパティや name プロパティ同様にネイティブコードで実装された処理を呼び出していることもそうですが、指定した型のコンポーネントを「検索する」コストがかかることにも気をつけなければなりません。
下記サンプルコードでは毎フレーム Rigidbody コンポーネントを検索するコストがかかることになります。頻繁にアクセスする場合は、あらかじめキャッシュしたものを使い回すようにしましょう。
毎フレーム GetComponent() するコード
void Update()
{
Rigidbody rb = GetComponent<Rigidbody>();
rb.AddForce(Vector3.up * 10f);
}
https://github.com/CyberAgentGameEntertainment/UnityPerformanceTuningBible
9.3 コンポーネントの取得
同じ GameObject にアタッチされている他のコンポーネントを取得する GetComponent() も注意が必要な 1 つです。
前節の tag プロパティや name プロパティ同様にネイティブコードで実装された処理を呼び出していることもそうですが、指定した型のコンポーネントを「検索する」コストがかかることにも気をつけなければなりません。
下記サンプルコードでは毎フレーム Rigidbody コンポーネントを検索するコストがかかることになります。頻繁にアクセスする場合は、あらかじめキャッシュしたものを使い回すようにしましょう。
毎フレーム GetComponent() するコード
void Update()
{
Rigidbody rb = GetComponent<Rigidbody>();
rb.AddForce(Vector3.up * 10f);
}
253名前は開発中のものです。
2023/11/26(日) 13:35:36.82ID:ap8K17/p ついでに2022.3.10f1で検証してきた
https://i.imgur.com/itDtIfy.png
この差を気にするか気にしないかはきのこたけのこ張りの宗教戦争なので、きのこが好きかたけのこが好きかによって意見が真っ二つやね
https://i.imgur.com/itDtIfy.png
この差を気にするか気にしないかはきのこたけのこ張りの宗教戦争なので、きのこが好きかたけのこが好きかによって意見が真っ二つやね
254名前は開発中のものです。
2023/11/26(日) 13:49:05.74ID:sKe5WX7u まぁ初心者のときにやることとして
アップデートでprintするとメチャログ埋まるやん
それを見て、あっやべーアップデートでそういう事しちゃあかんなと思えればいいんでねーかな
printですらこんなに沢山なんだから他の処理やったら大変だ!と思えればキャッシュしてやろーって思わないなら向いてね~ってことで(笑)
アップデートでprintするとメチャログ埋まるやん
それを見て、あっやべーアップデートでそういう事しちゃあかんなと思えればいいんでねーかな
printですらこんなに沢山なんだから他の処理やったら大変だ!と思えればキャッシュしてやろーって思わないなら向いてね~ってことで(笑)
255名前は開発中のものです。
2023/11/26(日) 14:08:31.06ID:kOB5vzh5 俺がGetComponetするのはStartかAwakeの中
それと何かと衝突した時とかの特定のイベント時くらいかな
Updateの中で常時使わないね
それと何かと衝突した時とかの特定のイベント時くらいかな
Updateの中で常時使わないね
256名前は開発中のものです。
2023/11/26(日) 14:13:45.97ID:J5rQpI/4 神々が言い争ってるみたいですが、
結局、私はupdate()内でGetComponent() を記載しまくっても
さほど問題にはならないということでしょうか?
結局、私はupdate()内でGetComponent() を記載しまくっても
さほど問題にはならないということでしょうか?
257名前は開発中のものです。
2023/11/26(日) 14:17:57.98ID:RHrCXnE8 例えどんなにマシンのスペックが上がったとしても
要求される表現のハードルが上がるだけなので宗教もクソもない
無駄な負荷のかからない「当たり前」のコードを書く習慣をつけておけばいいだけ
PS5やPCゲーム主流の現在でも、何故パフォーマンスチューニングなるものが必要なのか考えればわかる話
要求される表現のハードルが上がるだけなので宗教もクソもない
無駄な負荷のかからない「当たり前」のコードを書く習慣をつけておけばいいだけ
PS5やPCゲーム主流の現在でも、何故パフォーマンスチューニングなるものが必要なのか考えればわかる話
258名前は開発中のものです。
2023/11/26(日) 14:21:07.35ID:ap8K17/p その当たり前の物差しが万人共通であればの話ね
259名前は開発中のものです。
2023/11/26(日) 14:24:26.35ID:aCF9jYUz GCのスパイクは塵積だし、いざ原因を探そうって時に心当たりが山盛りあったら手に負えなくね?
260名前は開発中のものです。
2023/11/26(日) 14:29:32.88ID:J5rQpI/4 現状、
<GameManager.cs>
void Update()
{
for (int i = 0; i < Array01.Length; i++)
{
if(i == 10){
this.objects[0].GetComponent<Hogehoge>().変数B = this.objects[I].GetComponent<Hogehoge>().変数A;
}else{
this.objects[i+1].GetComponent<Hogehoge>().変数B = this.objects[I].GetComponent<Hogehoge>().変数A;
}
}
で正しく動いてくれました。
で、>>243さんのご指摘にある「GetComponentをupload()に書くのは好ましくない」というご意見から
今、>>243さんの記述してくれたコードを理解して
それを実装して、これと同じことを再現しようとしています。
ただ、this.objects[添字].GetComponent<Hogehoge>().変数名;という1文だけで
済んでいる現状で問題ないなら分かりやすいこの記述方法で行きたいなあというのが正直なところです。
<GameManager.cs>
void Update()
{
for (int i = 0; i < Array01.Length; i++)
{
if(i == 10){
this.objects[0].GetComponent<Hogehoge>().変数B = this.objects[I].GetComponent<Hogehoge>().変数A;
}else{
this.objects[i+1].GetComponent<Hogehoge>().変数B = this.objects[I].GetComponent<Hogehoge>().変数A;
}
}
で正しく動いてくれました。
で、>>243さんのご指摘にある「GetComponentをupload()に書くのは好ましくない」というご意見から
今、>>243さんの記述してくれたコードを理解して
それを実装して、これと同じことを再現しようとしています。
ただ、this.objects[添字].GetComponent<Hogehoge>().変数名;という1文だけで
済んでいる現状で問題ないなら分かりやすいこの記述方法で行きたいなあというのが正直なところです。
261名前は開発中のものです。
2023/11/26(日) 14:33:47.06ID:RHrCXnE8 少なくとも関数コールの結果をキャッシュして無駄な計算を減らすと良いのは
プログラミングとして当たり前の概念
たとえばsin,cosなどの関数は引数に対して結果が同じだから、
キャッシュしておくと高速化できる
可読性を落としてまでGetComponentケチれとは言わないが
Updateで毎回コールするくらいなら変数にキャッシュすれば済むので手間じゃないだろう
あと、
GetComponent<Hoge>.Fuga();
GetComponent<Hoge>.Piyo();
みたいに続けざまに書くのもヤメレw
プログラミングとして当たり前の概念
たとえばsin,cosなどの関数は引数に対して結果が同じだから、
キャッシュしておくと高速化できる
可読性を落としてまでGetComponentケチれとは言わないが
Updateで毎回コールするくらいなら変数にキャッシュすれば済むので手間じゃないだろう
あと、
GetComponent<Hoge>.Fuga();
GetComponent<Hoge>.Piyo();
みたいに続けざまに書くのもヤメレw
262名前は開発中のものです。
2023/11/26(日) 14:38:54.57ID:ap8K17/p まあ今はUnity勉強中で動けばなんでもOKだろうから毎フレームGetComponentでも別に問題ないよ
ただ259みたいな宗派もいることは頭の片隅に置いといてね
ただ259みたいな宗派もいることは頭の片隅に置いといてね
263名前は開発中のものです。
2023/11/26(日) 14:43:48.07ID:RHrCXnE8 UpdateでGetComponentはまだわかるがUpdateでGCは流石にないw
過去にこう言うコード書く奴が居て >>259 のような悪夢が襲って大変な目に遭ったことがあったんよ
プレイしてると何故か引っかかった動きをするんだもん
Incremental GCもフレーム分散するだけだからUpdateでGCには効果なし
過去にこう言うコード書く奴が居て >>259 のような悪夢が襲って大変な目に遭ったことがあったんよ
プレイしてると何故か引っかかった動きをするんだもん
Incremental GCもフレーム分散するだけだからUpdateでGCには効果なし
264名前は開発中のものです。
2023/11/26(日) 14:48:03.88ID:J5rQpI/4 >動けばなんでもOKだろうから
いや、そこまで妥協したいというわけでも無いです。。。
その、>>243にあるコードって、
現在自分が書いてる<gamemanager.cs>
public GameObject[] Array01;
void Start(){
Array01 = new GameObject[10];
GameObject obj = (GameObject)Resources.Load("プレハブ名");
for (int i = 0; i < Array01.Length; i++)
{Array0[i] = Instantiate(obj, new Vector2(i,0.0f), Quaternion.identity);}
}
で、いうと、
GameObject型の配列じゃなく、prefabのクラス型で配列を宣言して、
あとは同じことをしてその配列に突っ込みなさいって感じですか?
で、prefabのクラス型で配列で作ったら、いちいちGetComponentしなくてもいいよって
理解で正しいですか?
いや、そこまで妥協したいというわけでも無いです。。。
その、>>243にあるコードって、
現在自分が書いてる<gamemanager.cs>
public GameObject[] Array01;
void Start(){
Array01 = new GameObject[10];
GameObject obj = (GameObject)Resources.Load("プレハブ名");
for (int i = 0; i < Array01.Length; i++)
{Array0[i] = Instantiate(obj, new Vector2(i,0.0f), Quaternion.identity);}
}
で、いうと、
GameObject型の配列じゃなく、prefabのクラス型で配列を宣言して、
あとは同じことをしてその配列に突っ込みなさいって感じですか?
で、prefabのクラス型で配列で作ったら、いちいちGetComponentしなくてもいいよって
理解で正しいですか?
265名前は開発中のものです。
2023/11/26(日) 14:57:45.07ID:o5cSag8H いつになくスレがまともだ。。。
266名前は開発中のものです。
2023/11/26(日) 14:58:57.43ID:ap8K17/p267名前は開発中のものです。
2023/11/26(日) 15:05:48.10ID:uqB1fo0P GetComponentをUpdateの中で呼ぶにしても先にnullチェックするだけで効率化されるのにUpdate毎にGetComponent呼ぶのは流石にアホのすること
268名前は開発中のものです。
2023/11/26(日) 15:10:57.38ID:RHrCXnE8 そんな時はTryGetComponentを使うのがおすすめ
nullチェック相当も全部これで間に合う
nullチェック相当も全部これで間に合う
269名前は開発中のものです。
2023/11/26(日) 15:15:03.57ID:RHrCXnE8 ああ間違ったキャッシュ変数のnullチェックのことね
それならどっち道必要だわごめん
それならどっち道必要だわごめん
270名前は開発中のものです。
2023/11/26(日) 15:25:20.80ID:ap8K17/p Unity2019辺りで
GameObject obj = Instantiate(prefab);
DestroyImmediate(obj);
Debug.Log(obj?.name);
みたいなコード書いたらヌルポだったんだけど、Unity2022辺りは改善されたのかな
こういう細かい仕様って今日みたいな機会でもないとわざわざ調べる気にならんのよね・・・
GameObject obj = Instantiate(prefab);
DestroyImmediate(obj);
Debug.Log(obj?.name);
みたいなコード書いたらヌルポだったんだけど、Unity2022辺りは改善されたのかな
こういう細かい仕様って今日みたいな機会でもないとわざわざ調べる気にならんのよね・・・
271名前は開発中のものです。
2023/11/26(日) 15:33:06.23ID:J5rQpI/4 >>266
ありがとうございます。がんばります!!
絶対Unityから逃げません!
今作ってる処女作が完成したら、ここで皆さんに配布させてください!
絶対「面白い」って言わせてみせます!
(それまでに何度かまた障害にぶつかると思うんでまた相談させてください)
ありがとうございます。がんばります!!
絶対Unityから逃げません!
今作ってる処女作が完成したら、ここで皆さんに配布させてください!
絶対「面白い」って言わせてみせます!
(それまでに何度かまた障害にぶつかると思うんでまた相談させてください)
272名前は開発中のものです。
2023/11/26(日) 16:00:34.31ID:sKe5WX7u 宗派かぁ
癌になるから肉食わない
ビーガンなので肉食わない
ビールも酒も飲む
宗教で禁止されてるから飲まない
どれもすんげー長生きするとかしてないじゃん、これで二百年生きますならそれすればいいけど、二百年生きてヨボヨボじゃね
パソコンもソフトも変わらんよ
OSはますます肥大化してるんだし
いくらアプリの細かいところをやったところでね
処女作ならサクッと完成品作って動く喜び味わうのがいいよ
動かしてみて引っかかるとかの現象が起きればそれは改良するチャンス
次に活かせばいいだけや
まずは完成品やで
癌になるから肉食わない
ビーガンなので肉食わない
ビールも酒も飲む
宗教で禁止されてるから飲まない
どれもすんげー長生きするとかしてないじゃん、これで二百年生きますならそれすればいいけど、二百年生きてヨボヨボじゃね
パソコンもソフトも変わらんよ
OSはますます肥大化してるんだし
いくらアプリの細かいところをやったところでね
処女作ならサクッと完成品作って動く喜び味わうのがいいよ
動かしてみて引っかかるとかの現象が起きればそれは改良するチャンス
次に活かせばいいだけや
まずは完成品やで
273名前は開発中のものです。
2023/11/26(日) 17:30:21.75ID:J5rQpI/4 すみません、
>>243さんのコード試してみてるのですが
GameObject obj = Instantiate(prefab); // プレハブから複製オブジェクトを生成・配置する
で、
「インスタンス化したいオブジェクトが null です」とエラーが出ます。
自分もコードみてて気になってたんですが、
自分が書いてたコードの時でいうところの
GameObject obj = (GameObject)Resources.Load("プレハブの名前");みたいに
どこかでプレハブ化しているオブジェクトの名前を記述しなければならない気がするんですが
違いますか?
例えば、
public GameObject prefab;
void Start()
{ GameObject obj = Instantiate(prefab); }
これでは、prefabにはなにも入っていません。
記述漏れかな?とか。
>>243さんのコード試してみてるのですが
GameObject obj = Instantiate(prefab); // プレハブから複製オブジェクトを生成・配置する
で、
「インスタンス化したいオブジェクトが null です」とエラーが出ます。
自分もコードみてて気になってたんですが、
自分が書いてたコードの時でいうところの
GameObject obj = (GameObject)Resources.Load("プレハブの名前");みたいに
どこかでプレハブ化しているオブジェクトの名前を記述しなければならない気がするんですが
違いますか?
例えば、
public GameObject prefab;
void Start()
{ GameObject obj = Instantiate(prefab); }
これでは、prefabにはなにも入っていません。
記述漏れかな?とか。
274名前は開発中のものです。
2023/11/26(日) 17:37:44.06ID:sKe5WX7u パブリックなんだからインスペクタで指定してるんでしょきっと
275名前は開発中のものです。
2023/11/26(日) 17:49:39.47ID:ap8K17/p >>273
MonoBehaviourを継承したスクリプトがアタッチされたオブジェクトが予めシーンのどこかに配置されてる前提になるけど、このオブジェクトを選択するとInspectorにpublicの変数が表示されてそこにオブジェクトを指定したりできるようになる
243はその前提のコードになってる
MonoBehaviourを継承したスクリプトがアタッチされたオブジェクトが予めシーンのどこかに配置されてる前提になるけど、このオブジェクトを選択するとInspectorにpublicの変数が表示されてそこにオブジェクトを指定したりできるようになる
243はその前提のコードになってる
276名前は開発中のものです。
2023/11/26(日) 17:56:54.74ID:wJ4Ewbd+ (0,0,0)にあるオブジェクトの情報を取得する方法が知りたいんですが、
レイを飛ばすのとコライダーを使う以外に手っ取り早い方法ってないのでしょうか?
オブジェクトを(0,0,0)ちょうどに置くので余計なことをしないでgameobject関数に入れたいのですが…
レイを飛ばすのとコライダーを使う以外に手っ取り早い方法ってないのでしょうか?
オブジェクトを(0,0,0)ちょうどに置くので余計なことをしないでgameobject関数に入れたいのですが…
277名前は開発中のものです。
2023/11/26(日) 18:17:53.87ID:J5rQpI/4 >>275
ほんとだ、ゲームマネージャーのスクリプトのインスペクタに
prefabの枠ができてました!
初歩的なことかもしれませんが
プレハブ化したオブジェクトをその枠にドラッグしようとしたら
プレハブクリックしたらプレハブのインスペクタに切り替わっちゃうんですが
これ、どうすればいいんですか?^^;
ほんとだ、ゲームマネージャーのスクリプトのインスペクタに
prefabの枠ができてました!
初歩的なことかもしれませんが
プレハブ化したオブジェクトをその枠にドラッグしようとしたら
プレハブクリックしたらプレハブのインスペクタに切り替わっちゃうんですが
これ、どうすればいいんですか?^^;
278名前は開発中のものです。
2023/11/26(日) 18:19:48.20ID:J5rQpI/4 あー、すみません。
ドラッグじゃなくて、枠のほうで選べるんですね
すみません。解決しました。
ドラッグじゃなくて、枠のほうで選べるんですね
すみません。解決しました。
279名前は開発中のものです。
2023/11/26(日) 18:21:25.49ID:nqSny9Yy みんなはどんなPCでゲーム制作してるの?
MacBookかWindowsPCかで悩むわ
どっちにしてもデスクトップは置き場ないから
ノートPCになる
MacBookかWindowsPCかで悩むわ
どっちにしてもデスクトップは置き場ないから
ノートPCになる
280名前は開発中のものです。
2023/11/26(日) 18:21:35.61ID:sKe5WX7u >>276
シーンにあるobjectを一覧にしてそのトランスフォームが原点か否か見ればよくね?
シーンにあるobjectを一覧にしてそのトランスフォームが原点か否か見ればよくね?
281名前は開発中のものです。
2023/11/26(日) 18:32:14.78ID:J5rQpI/4 うおおおおおおおおおおおおお!!!
すごいっす!!!!
>>243さん、すごいっす!!!
update()内にGetComponent無しで
完全に一緒の状況になりました!!!
これで前より軽くなってるってことですよね!
すごいっす!感動です!
すごいっす!!!!
>>243さん、すごいっす!!!
update()内にGetComponent無しで
完全に一緒の状況になりました!!!
これで前より軽くなってるってことですよね!
すごいっす!感動です!
282ドーンおじ
2023/11/26(日) 18:42:25.15ID:vo5TLBjQ ID:J5rQpI/4のおかげでこのスレのレベルが格段に上がった!褒めて使わす!m9⎛´・ω・`⎞ドーン!
ID:sKe5WX7uのせいで低クオリティになってる!消えろ!死ね!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!
ID:sKe5WX7uのせいで低クオリティになってる!消えろ!死ね!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!
283名前は開発中のものです。
2023/11/26(日) 18:52:37.05ID:kOB5vzh5284名前は開発中のものです。
2023/11/26(日) 19:21:28.97ID:wJ4Ewbd+ >>280
すいません、スクリプトで取得したいんです
gameobject関数に入れた自作変数に(0,0,0)にあるオブジェクトはこれだよってしたいんですよね
(0,0,0)は実際には動かすんですけどややこしいので説明省きました
すいません、スクリプトで取得したいんです
gameobject関数に入れた自作変数に(0,0,0)にあるオブジェクトはこれだよってしたいんですよね
(0,0,0)は実際には動かすんですけどややこしいので説明省きました
285名前は開発中のものです。
2023/11/26(日) 20:04:29.42ID:wJ4Ewbd+ >>284
chatGPTに聞いてもPhysics.OverlapSphereかRaycast使えって言われるんですよね
指定された座標のオブジェクト情報を取得したいだけなんで「そんなことせなあかんか?」って思ったんですけど、調べてもそれしか無さそう?
chatGPTに聞いてもPhysics.OverlapSphereかRaycast使えって言われるんですよね
指定された座標のオブジェクト情報を取得したいだけなんで「そんなことせなあかんか?」って思ったんですけど、調べてもそれしか無さそう?
286名前は開発中のものです。
2023/11/26(日) 20:13:44.84ID:uqB1fo0P シーンに直置きしてるならシリアライズフィールド使うかStartで自分から登録されに行けばよくないか?
287名前は開発中のものです。
2023/11/26(日) 20:25:02.75ID:nqSny9Yy288名前は開発中のものです。
2023/11/26(日) 20:29:11.75ID:YEGARdnY いわゆるグリッド移動ならインデックス管理しておいて、そのインデックスにオブジェクトを格納しておけばいいけど
指定したグローバル座標にあるオブジェクトを取得するのはRayかOverlap~しかないんじゃないかな
いや、これらが取得するのは厳密にはColliderだからObjectに変換する必要あるけど
タグかレイヤーで目的以外は弾けば無駄が少ない
指定したグローバル座標にあるオブジェクトを取得するのはRayかOverlap~しかないんじゃないかな
いや、これらが取得するのは厳密にはColliderだからObjectに変換する必要あるけど
タグかレイヤーで目的以外は弾けば無駄が少ない
289名前は開発中のものです。
2023/11/26(日) 20:39:15.05ID:ap8K17/p Physics.Raycastを嫌う理由がGC発生によるパフォーマンスの低下だとするなら、Physics.RaycastNonAllocを使えばいい
使ったことないけどOverlapSphereも同様らしい
GC発生を嫌ってるわけではないとなると目的が不明瞭なので適切な提案ができない
使ったことないけどOverlapSphereも同様らしい
GC発生を嫌ってるわけではないとなると目的が不明瞭なので適切な提案ができない
290名前は開発中のものです。
2023/11/26(日) 21:06:45.28ID:wJ4Ewbd+ >>286,288,289
まとめての返信で失礼します
288さんの言うようにグリッド移動ですね。語彙力無くてすいません
GCとか後々のことを意識してのことではありました。初心者知識ですがわざわざ余計な処理を走るのを避けたかったんです。
なんか、もうちょい軽い処理でいけそうだなぁ…って考えたんですけどね…
インデックス管理もなんとなくやることは分かってる程度で実行したことないんで…例えば10×10×10の立体的な碁盤を用意したりしたらそれはそれで全て管理したら処理が重そうだし
とりあえず教えていただいた関数使ってみます!ありがとうございます
まとめての返信で失礼します
288さんの言うようにグリッド移動ですね。語彙力無くてすいません
GCとか後々のことを意識してのことではありました。初心者知識ですがわざわざ余計な処理を走るのを避けたかったんです。
なんか、もうちょい軽い処理でいけそうだなぁ…って考えたんですけどね…
インデックス管理もなんとなくやることは分かってる程度で実行したことないんで…例えば10×10×10の立体的な碁盤を用意したりしたらそれはそれで全て管理したら処理が重そうだし
とりあえず教えていただいた関数使ってみます!ありがとうございます
291名前は開発中のものです。
2023/11/26(日) 21:12:43.41ID:sKe5WX7u292名前は開発中のものです。
2023/11/26(日) 21:14:07.82ID:sKe5WX7u293ドーンおじ
2023/11/26(日) 21:25:02.28ID:vo5TLBjQ >>291-292
なんだその回答は!?低クオリティすぎんだろ!?死ねよ!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!
なんだその回答は!?低クオリティすぎんだろ!?死ねよ!m9⎛´・ω・`⎞;y=ー(゚д゚)・・∵. ドーン!
294名前は開発中のものです。
2023/11/26(日) 21:27:08.12ID:wJ4Ewbd+ >>292
舐めてました?すいません。笑
まぁ軽く出来るならやっとこうぐらいの精神ですかね。出来ないなら出来ないってきっぱり分かっときたかったんですよね。自分で調べる分だと悪魔の証明になっちゃいそうだったんで
プレイヤーが1,0,1にいるなら正面の1,0,2のオブジェクトは何か?ってのをやりたかった。でもまぁ後は自分で試行します。
舐めてました?すいません。笑
まぁ軽く出来るならやっとこうぐらいの精神ですかね。出来ないなら出来ないってきっぱり分かっときたかったんですよね。自分で調べる分だと悪魔の証明になっちゃいそうだったんで
プレイヤーが1,0,1にいるなら正面の1,0,2のオブジェクトは何か?ってのをやりたかった。でもまぁ後は自分で試行します。
295名前は開発中のものです。
2023/11/26(日) 22:08:54.91ID:kOB5vzh5 >>287
ディスプレイなんて何でもいいけど小さいと使いにくいだけ
ディスプレイなんて何でもいいけど小さいと使いにくいだけ
296名前は開発中のものです。
2023/11/26(日) 22:24:40.93ID:uqB1fo0P そういうのはアルゴリズム組んだほうがええんちゃうか
物理空間上でうにゃうにゃするとUnityの癖に悩まされたりバグの温床になったりする
物理空間上でうにゃうにゃするとUnityの癖に悩まされたりバグの温床になったりする
297名前は開発中のものです。
2023/11/26(日) 22:25:46.37ID:sKe5WX7u ドーンおじの正体はこれな
141 ドーンおじ sage 2023/10/08(日) 09:20:11.70 ID:FDh2RFJV
あーうぜぇ!製品レベルのもん見せたらサークルがバレんだろ!
このエロゲの作者は5chで初心者虐めてる嫌な奴って噂になったら売れなくなるだろ!m9?´・ω・`?ドーン!
141 ドーンおじ sage 2023/10/08(日) 09:20:11.70 ID:FDh2RFJV
あーうぜぇ!製品レベルのもん見せたらサークルがバレんだろ!
このエロゲの作者は5chで初心者虐めてる嫌な奴って噂になったら売れなくなるだろ!m9?´・ω・`?ドーン!
299名前は開発中のものです。
2023/11/27(月) 02:36:36.68ID:BoRbbeFq ID:sKe5WX7u
あれだけ宗派云々で盛り上がった後なのに
世界には俺以外の宗派は存在しないし認めないと思ってるアホやね
あれだけ宗派云々で盛り上がった後なのに
世界には俺以外の宗派は存在しないし認めないと思ってるアホやね
300名前は開発中のものです。
2023/11/27(月) 09:04:30.48ID:jh8FMahn ドーンおじとやらもきっと、最初は真面目に質問に答えてたけど、292みたいなのがいるからマジレスするのがアホらしくなって荒らしに転向したんだろうなあ
そう考えるとなんか可哀想
そう考えるとなんか可哀想
301名前は開発中のものです。
2023/11/27(月) 11:41:20.00ID:wHJ3vaA9 URPで2Dのレンダラーを使用中に3Dのライトを表示する方法、
もしくは複数のレンダラーを同事に使用する方法はありますか?
2D Lightと普通のライトを合成して使いたいです
もしくは複数のレンダラーを同事に使用する方法はありますか?
2D Lightと普通のライトを合成して使いたいです
302名前は開発中のものです。
2023/11/27(月) 11:56:05.86ID:aMnFU6g7 >>294
指定座標からraycast出してhitしたオブジェクトをGetComponentしたらいいよ
指定座標からraycast出してhitしたオブジェクトをGetComponentしたらいいよ
303名前は開発中のものです。
2023/11/27(月) 12:09:35.21ID:noS+cgi4 こんにちは質問です。
プレハブにアニメーションをつけて、いくつかの状態を切り替えて使おうとしました。
たとえばトイレ便器のフタがしまった状態から、フタが開くアニメ、フタ開いた状態、便座も開いた状態、というようにキーフレームが作ってあります
で、再生時の初期状態として欲しい状態が60フレームにあるとして
ロード後に自動で60フレームにするにはどうしたらよいでしょうか
かってに全フレーム再生してラストで止まるか、何も再生されず1フレームのままか、の2パターンはやれるのですが。
プレハブにアニメーションをつけて、いくつかの状態を切り替えて使おうとしました。
たとえばトイレ便器のフタがしまった状態から、フタが開くアニメ、フタ開いた状態、便座も開いた状態、というようにキーフレームが作ってあります
で、再生時の初期状態として欲しい状態が60フレームにあるとして
ロード後に自動で60フレームにするにはどうしたらよいでしょうか
かってに全フレーム再生してラストで止まるか、何も再生されず1フレームのままか、の2パターンはやれるのですが。
304名前は開発中のものです。
2023/11/27(月) 12:26:46.66ID:aMnFU6g7 >>303
Startに
Animator animator;
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
animator.Play(stateInfo.fullPathHash, 0, 1);
1のところが0~1でどこらへんから再生させるか調整するって感じです?
60フレーム目とかで判別できないので
小数点いれて調整してみてねってことで
Startに
Animator animator;
AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);
animator.Play(stateInfo.fullPathHash, 0, 1);
1のところが0~1でどこらへんから再生させるか調整するって感じです?
60フレーム目とかで判別できないので
小数点いれて調整してみてねってことで
305名前は開発中のものです。
2023/11/27(月) 12:29:51.25ID:KkPr08oo 次の質問する前に回答してくれてる人には最低限のマナーとして返信はしましょう
306名前は開発中のものです。
2023/11/27(月) 12:42:50.33ID:jh8FMahn >>303
https://qiita.com/ntkgcj/items/29cc215f248a5f4721cd
AnimationClipの最初から再生するのはこれでできるとして、この第3引数で再生位置を指定できる
再生中のAnimationClipが変数clipで、0.5秒の位置から再生したければ第3引数は 0.5f / clip.length
https://qiita.com/ntkgcj/items/29cc215f248a5f4721cd
AnimationClipの最初から再生するのはこれでできるとして、この第3引数で再生位置を指定できる
再生中のAnimationClipが変数clipで、0.5秒の位置から再生したければ第3引数は 0.5f / clip.length
307名前は開発中のものです。
2023/11/27(月) 13:24:07.06ID:noS+cgi4308名前は開発中のものです。
2023/11/27(月) 13:43:13.65ID:FJPYb+2K309名前は開発中のものです。
2023/11/27(月) 14:01:23.70ID:/j0+2mxV >>303
そういう時はそれぞれ別のアニメーションクリップで作るのがunityの作法だよ
そういう時はそれぞれ別のアニメーションクリップで作るのがunityの作法だよ
310名前は開発中のものです。
2023/11/27(月) 16:23:02.57ID:HmVHwFbH すみません、駄目元でお尋ねします。
Random.Range( 最小値, 最大値 )の乱数関数なんですが
例えば、「0〜10までのどれかが出るが、0は出にくい」
って感じの設定はできませんか?
もし出来るなら大変ありがたいんですが
んな都合の良い乱数まではできませんよね?
Random.Range( 最小値, 最大値 )の乱数関数なんですが
例えば、「0〜10までのどれかが出るが、0は出にくい」
って感じの設定はできませんか?
もし出来るなら大変ありがたいんですが
んな都合の良い乱数まではできませんよね?
311名前は開発中のものです。
2023/11/27(月) 16:29:23.99ID:vSro46YA Random.Range(0, 100)
なら出る数字は0〜99のどれか(100は含まれない)で、0が出る確率は1%になるけど、これの応用だと無理?
なら出る数字は0〜99のどれか(100は含まれない)で、0が出る確率は1%になるけど、これの応用だと無理?
312名前は開発中のものです。
2023/11/27(月) 16:32:22.43ID:vSro46YA if (rand == 0)
{
// 1%の確率で発生する処理
}
else if (10 <= rand && rand < 20)
{
// 10%の確率で発生する処理
}
else if (20 <= rand && rand < 30)
{
// 10%の確率で発生する処理
}
……(以下略)
馬鹿正直に書くとこうなる
もっとスマートにできそうだね
{
// 1%の確率で発生する処理
}
else if (10 <= rand && rand < 20)
{
// 10%の確率で発生する処理
}
else if (20 <= rand && rand < 30)
{
// 10%の確率で発生する処理
}
……(以下略)
馬鹿正直に書くとこうなる
もっとスマートにできそうだね
313名前は開発中のものです。
2023/11/27(月) 16:37:07.06ID:/j0+2mxV >>310
返すのがintならできる
if(Randam.Range(0.0f,1f)>0を出したい確率){
Return Randam.Range(1,11);
}else{
Return 0;
}
実際にゲームを作るとfloat返しでやりたくなるはずだと思うんだけど
それはややこしいな
返すのがintならできる
if(Randam.Range(0.0f,1f)>0を出したい確率){
Return Randam.Range(1,11);
}else{
Return 0;
}
実際にゲームを作るとfloat返しでやりたくなるはずだと思うんだけど
それはややこしいな
314名前は開発中のものです。
2023/11/27(月) 16:53:02.98ID:noS+cgi4 >>309
わかりましたプレハブを小分けにしてやってみますありがとうございます
わかりましたプレハブを小分けにしてやってみますありがとうございます
315名前は開発中のものです。
2023/11/27(月) 17:16:14.23ID:/j0+2mxV316名前は開発中のものです。
2023/11/27(月) 17:22:55.31ID:HmVHwFbH317名前は開発中のものです。
2023/11/27(月) 18:39:13.12ID:noS+cgi4 >>315
うーむ、ロード時にどのanimが再生されるかの、あの線で繋ぐUIのやつ、あれってどこに保存されてるんですかね?シーンファイル?
うーむ、ロード時にどのanimが再生されるかの、あの線で繋ぐUIのやつ、あれってどこに保存されてるんですかね?シーンファイル?
318名前は開発中のものです。
2023/11/27(月) 19:18:54.48ID:BkO9IT7E >>302,296
回答ありがとうございます。アルゴリズム組むのも都合が悪そうなので結果レイキャストで処理しました。
回答ありがとうございます。アルゴリズム組むのも都合が悪そうなので結果レイキャストで処理しました。
319名前は開発中のものです。
2023/11/27(月) 19:50:17.45ID:/j0+2mxV >>317
それはアニメーションコントローラーファイル
それはアニメーションコントローラーファイル
320名前は開発中のものです。
2023/11/28(火) 00:31:52.76ID:hSn23D6b >>319
なんとか計画通りに作れました皆さんありがとうございます
なんとか計画通りに作れました皆さんありがとうございます
321名前は開発中のものです。
2023/11/28(火) 21:44:10.27ID:+pwcdcfH プログラマーとアーティストのための新しいUIツールキットのデモ | Unityブログ
https://blog.unity.com/engine-platform/new-ui-toolkit-demos-for-programmers-artists
https://blog.unity.com/engine-platform/new-ui-toolkit-demos-for-programmers-artists
322名前は開発中のものです。
2023/11/29(水) 09:07:08.53ID:8Z5oyTA+ すみません、rigidbody 2dについて教えて欲しいのですが
例えば、ファミコンのスーパーマリオやロックマンで
崖ギリギリでも1ドットさえ乗っていれば
プレイヤーは立ったりすることできるんですが
現状、半分くらい崖から身を乗り出すとプレイヤーが傾いて
落ちてしまいます。
rigidbody 2dの設定で済む話なのかわかりませんが
どこかのチェックや数値の問題なのでしょうか?
あと、その落ちる時にもドット絵のオブジェクトが物理法則に則って
前のめりに回転して落ちるんですが角度がついたときに
ご丁寧に斜め状態のドット絵を強制的に作ってしまうんですが
これもSprite Rendererとかのどこかのチェックの有無で解決しそうですが
違いますか?
例えば、ファミコンのスーパーマリオやロックマンで
崖ギリギリでも1ドットさえ乗っていれば
プレイヤーは立ったりすることできるんですが
現状、半分くらい崖から身を乗り出すとプレイヤーが傾いて
落ちてしまいます。
rigidbody 2dの設定で済む話なのかわかりませんが
どこかのチェックや数値の問題なのでしょうか?
あと、その落ちる時にもドット絵のオブジェクトが物理法則に則って
前のめりに回転して落ちるんですが角度がついたときに
ご丁寧に斜め状態のドット絵を強制的に作ってしまうんですが
これもSprite Rendererとかのどこかのチェックの有無で解決しそうですが
違いますか?
323名前は開発中のものです。
2023/11/29(水) 09:14:12.75ID:oA7FsBQ7324名前は開発中のものです。
2023/11/29(水) 09:33:25.13ID:8Z5oyTA+325名前は開発中のものです。
2023/11/30(木) 00:19:57.27ID:toSL22aW Yokohara_h(@Hirokazu Yokohara)さんがポストしました:
え?Unityが以前買収したweta全員解雇するの?出すって言ってたツールは?同じく買収されてるZivaとかspeedtreeはどうなるんだろ?
https://x.com/yokohara_h/status/1729663063568036108?s=51&t=v_xy-gl7y1zQf182MLmXWg
うっわ...Unity完全にオワタやんこれ
wetaは虎の子やったんちゃうんかwあんだけ喧伝しといてもうゲームエンジンはUE一強やんけこれじゃ
え?Unityが以前買収したweta全員解雇するの?出すって言ってたツールは?同じく買収されてるZivaとかspeedtreeはどうなるんだろ?
https://x.com/yokohara_h/status/1729663063568036108?s=51&t=v_xy-gl7y1zQf182MLmXWg
うっわ...Unity完全にオワタやんこれ
wetaは虎の子やったんちゃうんかwあんだけ喧伝しといてもうゲームエンジンはUE一強やんけこれじゃ
326名前は開発中のものです。
2023/11/30(木) 00:22:03.65ID:toSL22aW Weta Digital閉鎖とか冗談にもなってないわ
327名前は開発中のものです。
2023/11/30(木) 00:25:28.15ID:toSL22aW 更にまだ色々と削減するつもりみたいやな
328名前は開発中のものです。
2023/11/30(木) 10:50:42.51ID:CMyAP9YG 質問です。2Dゲーム制作においてですが
オブジェクト自体の当たり判定とは別にトリガー用の判定エリアも設けたい場合
ひとつのオブジェクトにBox Collider 2Dを2個つけるということをしている人がいます。
これはなんら普通のことでしょうか?それともあまりお勧めできることではない感じですか?
オブジェクト自体の当たり判定とは別にトリガー用の判定エリアも設けたい場合
ひとつのオブジェクトにBox Collider 2Dを2個つけるということをしている人がいます。
これはなんら普通のことでしょうか?それともあまりお勧めできることではない感じですか?
329ドーンおじ
2023/11/30(木) 11:13:55.62ID:VyxU6IGx 複数コライダーは索敵の基本だよ!敵が近くに居たら撃つ!弾が近くにきたら避ける!そのためのコライダーだね!m9⎛´・ω・`⎞ドーン!
330名前は開発中のものです。
2023/11/30(木) 11:22:10.62ID:2rFXTlkJ331名前は開発中のものです。
2023/11/30(木) 11:29:53.09ID:CMyAP9YG332名前は開発中のものです。
2023/11/30(木) 11:39:41.86ID:CMyAP9YG え?あれ?
自分今勘違いしているかもです。
これは、追加するBoxCollider2Dにはそれ用のオブジェクトを作って
そこに貼り付けたスプライトで管理するのか?
それなら確かに、BoxCollider2Dは区別しなくてもいいわけですが。。。
ひとつのオブジェクトのスプライトの中で2つのBoxCollider2Dを管理できると思ってるんですが。。。
自分今勘違いしているかもです。
これは、追加するBoxCollider2Dにはそれ用のオブジェクトを作って
そこに貼り付けたスプライトで管理するのか?
それなら確かに、BoxCollider2Dは区別しなくてもいいわけですが。。。
ひとつのオブジェクトのスプライトの中で2つのBoxCollider2Dを管理できると思ってるんですが。。。
333名前は開発中のものです。
2023/11/30(木) 11:44:29.52ID:CMyAP9YG つまり、ひとつのオブジェクトに
当たり判定とトリガー判定のためのBoxCollider2Dが必要だと思ったら
そのオブジェクトでは当たり判定のBoxCollider2Dをつけて、
もうひとつはトリガー用のBoxCollider2Dを貼り付けたオブジェクトを別につくって
そのふたつのオブジェクトをいちいち合わせて考えるってことですかね?
自分のイメージだとぜんぜん違うんですが。効率悪そう。。。
普通に、ひとつのオブジェクトに2つBoxCollider2Dをくっつけて
スプライトの中で、それぞれのBoxCollider2Dから反応の関数をもらえると思ってました。
当たり判定とトリガー判定のためのBoxCollider2Dが必要だと思ったら
そのオブジェクトでは当たり判定のBoxCollider2Dをつけて、
もうひとつはトリガー用のBoxCollider2Dを貼り付けたオブジェクトを別につくって
そのふたつのオブジェクトをいちいち合わせて考えるってことですかね?
自分のイメージだとぜんぜん違うんですが。効率悪そう。。。
普通に、ひとつのオブジェクトに2つBoxCollider2Dをくっつけて
スプライトの中で、それぞれのBoxCollider2Dから反応の関数をもらえると思ってました。
334名前は開発中のものです。
2023/11/30(木) 11:53:58.64ID:CMyAP9YG あー、ついに来たか。
親オブジェクト、子オブジェクトとか、それかー。それ使うんですね。
鬼門じゃないんですか、これは。理解できるかなー。
親オブジェクト、子オブジェクトとか、それかー。それ使うんですね。
鬼門じゃないんですか、これは。理解できるかなー。
335名前は開発中のものです。
2023/11/30(木) 12:01:32.79ID:CMyAP9YG ゲームオブジェクトには複数のコライダーを配置できますが、
その場合、個別にどのコライダーがヒットしたかを検出することができません
しかし、解決策はあります
ゲームオブジェクトの子オブジェクトを作成してそこに各コライダーをアタッチすること、
コライダーがアタッチされているゲームオブジェクトにさらに検出用のスクリプトをアタッチすることで実現することができます
↑
これですよね?
コレダーに名前つけてそれぞれを区別したらいいだけだと思うんですけど
Unityはそれを採用してないってことですよね
その場合、個別にどのコライダーがヒットしたかを検出することができません
しかし、解決策はあります
ゲームオブジェクトの子オブジェクトを作成してそこに各コライダーをアタッチすること、
コライダーがアタッチされているゲームオブジェクトにさらに検出用のスクリプトをアタッチすることで実現することができます
↑
これですよね?
コレダーに名前つけてそれぞれを区別したらいいだけだと思うんですけど
Unityはそれを採用してないってことですよね
336名前は開発中のものです。
2023/11/30(木) 12:32:21.42ID:kx/hSsho337名前は開発中のものです。
2023/11/30(木) 12:54:18.87ID:CMyAP9YG >>336
>Unity2022.2からCollision Layer Overrideという
>オブジェクトごとに特定のレイヤーと衝突するかの設定が出来る機能が追加
うおおおおおおおおおおおおおおおお!!
自分osの問題で2021なんです、、、泣きます!!!!!
>Unity2022.2からCollision Layer Overrideという
>オブジェクトごとに特定のレイヤーと衝突するかの設定が出来る機能が追加
うおおおおおおおおおおおおおおおお!!
自分osの問題で2021なんです、、、泣きます!!!!!
338低クオリティでごめんねごめんね
2023/11/30(木) 13:10:24.45ID:Iy36Ltve これでどのコライダーがぶつかったかはとれるよ
https://i.gyazo.com/4ea1df0c0dda8be8b040fa3ce288babc.png
例えばこの時
https://i.gyazo.com/cc78c5164b830dbe38390a69645837b2.png
これは3が返る
この時
https://i.gyazo.com/01bfc6172a9fc81147bd5342ef72b4bd.png
これは2が返る
動きはこんな感じ
https://i.gyazo.com/879e10b2ce566bb4a25e9fac83cb91bf.mp4
入れ替えて見ると
ちゃんとぶつかりも反応してる
https://i.gyazo.com/4ea1df0c0dda8be8b040fa3ce288babc.png
例えばこの時
https://i.gyazo.com/cc78c5164b830dbe38390a69645837b2.png
これは3が返る
この時
https://i.gyazo.com/01bfc6172a9fc81147bd5342ef72b4bd.png
これは2が返る
動きはこんな感じ
https://i.gyazo.com/879e10b2ce566bb4a25e9fac83cb91bf.mp4
入れ替えて見ると
ちゃんとぶつかりも反応してる
339低クオリティでごめんねごめんね
2023/11/30(木) 13:14:39.04ID:Iy36Ltve340名前は開発中のものです。
2023/11/30(木) 13:42:59.93ID:CMyAP9YG >>338
ありがとうございます。
複数のコライダーを順番に配列にいれといて管理するんですね?
foreachで回してカウントしてトリガーを返してきたカウントからどのコライダーか判別すると。
これ、配列に入るコライダーの順番は、インスペクタの並び順ですか?
つまり、例えば、一部のコライダーのインスペクタを触りたいときは
c2ds[1].isTrigger = true;とかでいけますよね?
ありがとうございます。
複数のコライダーを順番に配列にいれといて管理するんですね?
foreachで回してカウントしてトリガーを返してきたカウントからどのコライダーか判別すると。
これ、配列に入るコライダーの順番は、インスペクタの並び順ですか?
つまり、例えば、一部のコライダーのインスペクタを触りたいときは
c2ds[1].isTrigger = true;とかでいけますよね?
341名前は開発中のものです。
2023/11/30(木) 13:56:27.19ID:CMyAP9YG というのも、自分の作ってるゲームでは
オブジェクトのBoxCollider2DのisTriggerのon,off
ちょくちょく切り替えるようにしてるんで
>>338さんのを導入するとしたら
今のBoxCollider2Dを配列入れ込む話になるんで
ちょっとどうなるんだろう、って。
今はBoxCollider2Dひとつだけなんで、BoxCollider2D bc;で
void Start()内でbc = GetComponent<BoxCollider2D>();やってるんですよ。
それを変えるわけですよね
オブジェクトのBoxCollider2DのisTriggerのon,off
ちょくちょく切り替えるようにしてるんで
>>338さんのを導入するとしたら
今のBoxCollider2Dを配列入れ込む話になるんで
ちょっとどうなるんだろう、って。
今はBoxCollider2Dひとつだけなんで、BoxCollider2D bc;で
void Start()内でbc = GetComponent<BoxCollider2D>();やってるんですよ。
それを変えるわけですよね
342名前は開発中のものです。
2023/11/30(木) 14:12:00.62ID:n4imjDK6 インスペクタで触る?
コードでやるならenableでいけるでしょ
コードでやるならenableでいけるでしょ
343名前は開発中のものです。
2023/11/30(木) 14:34:34.68ID:CMyAP9YG enableてオブジェクトのアクティブ、非アクティブ化にだけ使用してるみたいです。
例えば「Unity isTrigger 切り替え enable」でぐぐってみましたが
enableでBoxColliderのisTriggerを切り替えてるケースが見当たらず
みんな、だいたいGetComponent<Collider>().isTrigger = false;的なことやってるみたいです。
例えば「Unity isTrigger 切り替え enable」でぐぐってみましたが
enableでBoxColliderのisTriggerを切り替えてるケースが見当たらず
みんな、だいたいGetComponent<Collider>().isTrigger = false;的なことやってるみたいです。
344名前は開発中のものです。
2023/11/30(木) 14:40:55.06ID:CMyAP9YG 自分で調べた感じですがenableはGetComponent<Renderer>().enabled = false;とか見るに
コンポーネントまるごとチェックをはずしたり、したい場合に使うんじゃないでしょうか
BoxCollider2Dのアクティブのチェックを外したい場合とか。
自分はBoxCollider2Dの、isTriggerのチェックを外したいとかなんで
enableは使わない感じじゃないでしょうか
コンポーネントまるごとチェックをはずしたり、したい場合に使うんじゃないでしょうか
BoxCollider2Dのアクティブのチェックを外したい場合とか。
自分はBoxCollider2Dの、isTriggerのチェックを外したいとかなんで
enableは使わない感じじゃないでしょうか
345名前は開発中のものです。
2023/11/30(木) 14:48:45.12ID:CMyAP9YG あと、>>338のコードを読み解こうと頑張っているんですが
ContactFilter2Dってどんなものなのか、どなたか教えて頂けないでしょうか。
なにが返ってくるのか検索してもぜんぜん解説が無いのです
利用しているコードはあるんですが、どういうものなのかの説明がされてなくて
リファレンスも英語のものだけ?しか見当たらず、ちょっとなんなのかわからず
検索結果からしても、これマニアックなんですかね、使うの。
ContactFilter2Dってどんなものなのか、どなたか教えて頂けないでしょうか。
なにが返ってくるのか検索してもぜんぜん解説が無いのです
利用しているコードはあるんですが、どういうものなのかの説明がされてなくて
リファレンスも英語のものだけ?しか見当たらず、ちょっとなんなのかわからず
検索結果からしても、これマニアックなんですかね、使うの。
346低クオリティでごめんねごめんね
2023/11/30(木) 14:52:15.27ID:Iy36Ltve 簡単なのなので、自分でテストするだけ
https://i.gyazo.com/5d5f60e3f6147f4530d4d4f9365175b5.png
c2ds[2].isTrigger = false;
c2ds[2].enabled = false;
片方をコメントアウトしてどちらが機能するかみればいいだけだよ
10秒あればできるから、わざわざぐぐるとか無駄じゃね?
https://i.gyazo.com/5d5f60e3f6147f4530d4d4f9365175b5.png
c2ds[2].isTrigger = false;
c2ds[2].enabled = false;
片方をコメントアウトしてどちらが機能するかみればいいだけだよ
10秒あればできるから、わざわざぐぐるとか無駄じゃね?
347名前は開発中のものです。
2023/11/30(木) 14:54:45.69ID:n4imjDK6348低クオリティでごめんねごめんね
2023/11/30(木) 14:57:08.73ID:Iy36Ltve >自分はBoxCollider2Dの、isTriggerのチェックを外したい
という事は、ぶつかりは取りたいという事?
であればenableは不要になるけど
isTriggerのチェックを外すことがどういうことなのか分からんので、なんとも・・・
という事は、ぶつかりは取りたいという事?
であればenableは不要になるけど
isTriggerのチェックを外すことがどういうことなのか分からんので、なんとも・・・
349名前は開発中のものです。
2023/11/30(木) 15:17:19.00ID:n4imjDK6 元々、どのコライダーが当たったのか?
が欲しかったんだよね?
なら読み解くとかいらんことしないで使えばいいんじゃね?
その内わかるようになるでしょ
が欲しかったんだよね?
なら読み解くとかいらんことしないで使えばいいんじゃね?
その内わかるようになるでしょ
350名前は開発中のものです。
2023/11/30(木) 18:16:16.06ID:CMyAP9YG >>349
>元々、どのコライダーが当たったのか?
>が欲しかったんだよね?
>なら読み解くとかいらんことしないで使えばいいんじゃね?
そうです。しかし、読み解けない状態、つまりはブラックボックス状態だと
うまく機能しない場合自分でどういう状況かわからないので、使わせて頂いても危険なんですよね。
例えば、現在記載してもらった>>338のコードを導入して
動いているですが、思った結果を吐いてくれてなくて、
「これは、なぜだ?」状態で悩ませています。
なるべく検索して調べているんですが、やはり解説がないので。
>>338のOnTriggerEnter2Dですが、
どのBoxCollider2Dのtriggerに触れたかわかるってことですよね?
例えば、print(_count );で毎回「1」と「2」が必ず同時にコンソールに表示されます。
でも、BoxCollider2Dの2個目のtriggerにしかチェック入れてないんですよ。
自分のイメージでは、コンソールには「2」だけが表示されなきゃならないイメージなんですが
毎回「1」と「2」が必ず同時にコンソールに表示されます。
なぜ?ってなってます。
>元々、どのコライダーが当たったのか?
>が欲しかったんだよね?
>なら読み解くとかいらんことしないで使えばいいんじゃね?
そうです。しかし、読み解けない状態、つまりはブラックボックス状態だと
うまく機能しない場合自分でどういう状況かわからないので、使わせて頂いても危険なんですよね。
例えば、現在記載してもらった>>338のコードを導入して
動いているですが、思った結果を吐いてくれてなくて、
「これは、なぜだ?」状態で悩ませています。
なるべく検索して調べているんですが、やはり解説がないので。
>>338のOnTriggerEnter2Dですが、
どのBoxCollider2Dのtriggerに触れたかわかるってことですよね?
例えば、print(_count );で毎回「1」と「2」が必ず同時にコンソールに表示されます。
でも、BoxCollider2Dの2個目のtriggerにしかチェック入れてないんですよ。
自分のイメージでは、コンソールには「2」だけが表示されなきゃならないイメージなんですが
毎回「1」と「2」が必ず同時にコンソールに表示されます。
なぜ?ってなってます。
351名前は開発中のものです。
2023/11/30(木) 18:31:12.78ID:CMyAP9YG _countは、どのBoxCollider2Dかを教えてくれる役割ですよね?
if(_bc1.IsTouching(_bc2)){
print(_count );
}
print();をココだけに記述している状態。
で、地面のオブジェクトにはふたつのBoxCollider2Dのつけており
上部のBoxCollider2Dはtriggerにチェックを入れていて通り抜ける。
下部のBoxCollider2Dは当たり判定有りなので、プレイヤーは上から落ちてきたら
まず上部のBoxCollider2Dを通過します。
自分のイメージでは、print();は上部のBoxCollider2Dに接触した時だけ
コンソールに表示されるべきなんですが、その時の_countの値で
どちらのBoxCollider2Dか判別できるんですよね?
ですが、現状、地面に降り立った時には
print();が2度表示されます。1、2と。
if(_bc1.IsTouching(_bc2)){
print(_count );
}
print();をココだけに記述している状態。
で、地面のオブジェクトにはふたつのBoxCollider2Dのつけており
上部のBoxCollider2Dはtriggerにチェックを入れていて通り抜ける。
下部のBoxCollider2Dは当たり判定有りなので、プレイヤーは上から落ちてきたら
まず上部のBoxCollider2Dを通過します。
自分のイメージでは、print();は上部のBoxCollider2Dに接触した時だけ
コンソールに表示されるべきなんですが、その時の_countの値で
どちらのBoxCollider2Dか判別できるんですよね?
ですが、現状、地面に降り立った時には
print();が2度表示されます。1、2と。
352名前は開発中のものです。
2023/11/30(木) 18:38:03.93ID:n4imjDK6 相手もいずトリガー状態やろ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【ネトウヨ終了】大人気ユーチューバー「高市早苗のことをまともだと思うやつは私のコンテンツにさわらないでください」 [339712612]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 外務局長「中国さんごめんなさぁ...」小野田「中国なんかどうでもいいっ!」高市「首脳会談したい」マスコミ「立憲が悪いっ!!」 [237216734]
