[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart8 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
274: 2022/10/11(火)11:37 ID:KW5vQeqF(3/7) AAS
drawrayの場合は第二引数で長さを指定するようです。
raycastの場合は第三引数で長さを指定するようです。
そこは理解しています。
275
(2): 2022/10/11(火)11:45 ID:3C7yoYb1(2/2) AAS
Vector2.down + new Vector2(0, -0.1f)

Vector2.downは定数で(0,-1)
だから結果は(0,-1.1f)
真下に長さ-1.1fのラインが出る
276: 2022/10/11(火)12:12 ID:2JPt9lFw(1) AAS
ごめん長さ1.1のラインね
意図してるのはこうじゃないの

var distance =0.1f
Vector2.down * distance
277
(1): 野球マン 2022/10/11(火)12:35 ID:e+HL0Coi(1/2) AAS
やっぱりDebugのrayって直感的じゃないよね
俺も苦手だから滅多に使わない
ワンタッチで当たり判定を表示してくれればいいのに
278
(1): 2022/10/11(火)13:30 ID:KW5vQeqF(4/7) AAS
>>277
うん 何故この程度の機能がないのか不思議
>>275
なるほど 
ただ、長さは1.1みたいですけど、原点から発射されることを考えると1.6fくらいにしないとだめみたいです
可視化できれば良いんですがね、、、
279: 2022/10/11(火)14:01 ID:KW5vQeqF(5/7) AAS
>>278
?あれ 謎なことを書いてしまった
280: 2022/10/11(火)14:09 ID:KW5vQeqF(6/7) AAS
raycastのlengthの1fというのが何基準なのかわかりますか?
drawrayと同じ値にすると反応しなくなる
drarayの場合は0.1fで十分な長さだけども
281: 2022/10/11(火)14:42 ID:NZSCknk1(1/2) AAS
レイキャストもデバッグドローも長さの1はワールドのtransformの1の長さで基準は同じ。
結果が違うなら、それぞれへの値の渡し方か、結果を確認する方法の方にミスがあるんだと思う。
空のシーンでも作ってその部分だけ記述してテストしてみたら?
282: 2022/10/11(火)17:51 ID:KW5vQeqF(7/7) AAS
回答ありがとうございます。
同じに設定したつもりですが、どこか違うでしょうか?

drawrayではこのようにレイが出ていますが、raycastではヒットはしません。raycastの長さを1fにするとヒットします。
画像リンク


外部リンク:ideone.com
void FixedUpdate()
{

if (isHitToGround())
{
Debug.Log("hit");
}

Debug.DrawRay(transform.position, Vector2.down - new Vector2(0,0.1f),Color.white, 1f);

}

bool isHitToGround()
{//接地判定用のレイキャスト
RaycastHit2D raycastHit = Physics2D.Raycast(transform.position , Vector2.down, 0.1f, groundLayer);
return raycastHit.collider != null;
}
283
(1): 2022/10/11(火)19:10 ID:NZSCknk1(2/2) AAS
>>275も書いてくれてるけど、デバッグドローの2つめの引数を
Vector2.down * 0.1f
にすればいいかと。
0.1はレイキャストの3つめの引数と同じ値です。

というか、できれば原点、方向、長さは変数にして、レイキャストに入れた値をデバッグドローにも使う、というようにしたほうがいいですよ。
284
(1): 2022/10/11(火)19:10 ID:SAEwODDn(1/2) AAS
DOTweenって軽いらしいんだけどどこまで使っていいのかな?

2Dのゲームのダメージ数の表示、敵や味方のノックバック、攻撃モーション、攻撃エフェクトなんかの頻発する処理に使っても大丈夫なレベル?

全部自前で用意するのはしんどい…
285
(1): 野球マン 2022/10/11(火)19:16 ID:e+HL0Coi(2/2) AAS
>>284
俺よく使ってるけど経験上そのうちノックバックと攻撃モーションでは
使いにくいな
というのも通常キャラには動作させるスクリプトを付けて手動で動かしてると
思うのだがそれにdotweenの動作をごちゃ混ぜにするとややこしくなる
俺がdotweenを使って楽なのはdotweenの動作で独立してる部分
286: 2022/10/11(火)23:49 ID:es9cxcgc(1) AAS
シェーダーのプロパティの値をスクリプトで変更したいんですけど、どうやったら出来ますか?(´・ω・`)
287
(1): 2022/10/11(火)23:56 ID:SAEwODDn(2/2) AAS
>>285
たしかにそれはそうだな
既存スクリプトとの組み合わせは避けるようにする

結局動作は別に重くはならない?
288
(1): 野球マン 2022/10/12(水)00:01 ID:JKWk9lrO(1) AAS
>>287
今まで使ってきて重くなったことはない
ただ気をつけないといけないのはアニメ動作中にシーンを移動すると警告が出る
俺はそれを避けるためにシーンが終わる時に動作してそうなトゥイーンを
変数に入れてシーンが終わる時にkillしてる
289: 2022/10/12(水)00:03 ID:MA+YbJGL(1) AAS
>>288
やっぱり軽いんだな
重さは気にせず使っていくわ

シーン切り替えは知らんかった
ノウハウの共有助かる
ありがとう
290: 2022/10/12(水)09:13 ID:G+gJ4ga/(1) AAS
Material.SetInt.あるいはSetFloatなど
291: 2022/10/12(水)09:16 ID:2sLn8UPK(1/8) AAS
>>283
回答どうも
drawrayの第二引数の長さはこうなりますよね
Vector2.down * 0.1f = vector2(0,-0.1)

raycastは第二引数で方向ベクトルを示しているだけで、長さを示しているわけではないのでしょうか?
raycastの第三引数で-0.1fを指定した場合、1.1fの長さになると考えていました

raycastの第三引数を0.1fにするとヒットしなくなります
292: 2022/10/12(水)16:53 ID:2sLn8UPK(2/8) AAS
↑質問しといてすみません、redditで質問してきます
293: 2022/10/12(水)16:59 ID:GDqTCPrY(1/5) AAS
へーRedditあるんだ見てみよ
294: 2022/10/12(水)17:01 ID:2sLn8UPK(3/8) AAS
見てみるとは?
295: 2022/10/12(水)17:18 ID:GDqTCPrY(2/5) AAS
そこは引っかからなくていい
296: 2022/10/12(水)18:18 ID:2sLn8UPK(4/8) AAS
ベクトルに対しての加算と乗算がごっちゃになっていたかもしれないです
297: 2022/10/12(水)18:21 ID:2sLn8UPK(5/8) AAS
Raycastの第二引数と第三引数は乗算されているのでしょうか
加算なのでしょうか?

こういう点がよくわからないですね、、、
298: 2022/10/12(水)18:35 ID:2sLn8UPK(6/8) AAS
長さ調べたらなんとなく乗算だなと理解しました
方向ベクトルに長さを追加する場合は乗算、という決まりでもあるのでしょうか?
299
(1): 2022/10/12(水)19:16 ID:GDqTCPrY(3/5) AAS
あるというかなんというか
長さが1(要素を二乗して足した平方根が1)であると方向だけを表せて
それに数値をかけて大きさを表した方が扱いやすいからお決まりのようにそう使う

どんなベクトルでも長さを1に直すことは出来る
やり方は要素を二乗して足したものでベクトルを割る
この操作を特に正規化(Normalize)といい、大抵のばあい組み込み関数としてnormalize(vector)は用意されている
300: 2022/10/12(水)19:21 ID:GDqTCPrY(4/5) AAS
Unityのスクリプトリファレンスに引数としてDirectionをくださいねって書いてあったら
中で正規化してくれてるかもしれないけど基本的に正規化した方向ベクトルを入れてあげよう
301: 2022/10/12(水)20:23 ID:2sLn8UPK(7/8) AAS
>>299
正規化ベクトル思い出しました
正規化ベクトルに10乗算したら10バイの距離
10加算したら11になるから、ちょっと分かりづらい

こんな感じでいいんですかね
302: 2022/10/12(水)21:17 ID:GDqTCPrY(5/5) AAS
せっすね
ベクトルの場合x,y,zのどれに10を足すの?ってことにもなるし
仮にx,yにだけ10足してzはたさないよって場合とか
距離的にどれだけ移動するのか?という点とかで設定する側としてはちょっと狙いづらい

仮に何かを移動させたが方向が(1,2,3)を正規化させた(0.267, 0.535, 0.802)だった場合
あっち方向に2.4だけ動いてねって言う方が
今の位置から(0.6168, 1.284, 1.924)動いてねって言うよりわかりやすい
後者の指示を聞いて距離は2.4だと即わかる人はいないとは言わんがそうそうお目にかかれない
303: 2022/10/12(水)23:36 ID:2sLn8UPK(8/8) AAS
ありがとうございました
確かに加算だとx yに同時に加算出来ないんですね、、、
1-
あと 699 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.012s