[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
436(2): 2018/08/17(金)18:04 ID:/P5tUkj4(1) AAS
剣を振った時にプレイヤーの前にコライダを出して当たり判定をを作ったんだけど、剣をふってないときにコライダを引っ込めるスクリプトが分からない、誰か助けて
437: 弟子 ◆rZPPjYuxmQ 2018/08/17(金)20:11 ID:ni8AyJER(1) AAS
出せたなら、その反対をやればいいと思うけど、出したコ一ドはどんなコードですか?
438: 2018/08/17(金)21:06 ID:jjg/SVIP(1/2) AAS
コライダーって出したり引っ込めたりするもんなのか?
439: 2018/08/17(金)21:13 ID:53TbFepx(1) AAS
コライダを消せばいいやん。(false)
440(1): 436 2018/08/17(金)22:51 ID:Cl208u38(1/2) AAS
プレイヤーの前方に当たり判定のコライダとなるこのスクリプトをアタッチしてて
public class AttackController : MonoBehaviour {
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Enemy")
{
Destroy(coll.gameObject);
Debug.Log("hit Object");
}
}
441(2): 436 2018/08/17(金)22:52 ID:Cl208u38(2/2) AAS
プレイヤーコントローラーのスクリプトは下のスクリプトで右クリックでアタック時にSetActive
でコライダを表示するようにして敵を攻撃する当たり判定にしてるんだけど、一回攻撃するとコライダ出っぱなしになる
消すように色々ためしたけど上手くいかない、アドバイス頼みます
public GameObject AtariHantei;
void Update()
{
//アタック
if (Input.GetMouseButtonDown(1))
{
this.animator.SetTrigger("AttackTrigger"); //アニメ再生
省3
442: 2018/08/17(金)23:27 ID:jjg/SVIP(2/2) AAS
詳しくはわからんけど根本的にやり方間違ってそうな気がするな
443(1): 弟子 ◆rZPPjYuxmQ 2018/08/18(土)00:11 ID:cxAelueQ(1/2) AAS
>>440,441
とりあえず、そのスクリプトを生かしてコード書いてみました
現状ではコライダーをオフにするコードがないので、コライダーにぶつかった際にオフにするという通知をします
public class AttackController : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Enemy")
{
Destroy(coll.gameObject);
省15
444(1): 弟子 ◆rZPPjYuxmQ 2018/08/18(土)00:14 ID:cxAelueQ(2/2) AAS
あぁテストする際、
void Start()
{
SetOffAtariHantei();
}
に入れて最初は通過、その後クリックで当たるとした方が分かりやすかったかもしれません><
445(1): 2018/08/18(土)03:49 ID:FXerNp9n(1/2) AAS
なんで出っぱなしになって困ってる判定を敵にあたったら消すように改修すんの?
剣を振るアニメーション終わった後にとことこ敵の前に歩いていったら攻撃があたんの?
亜空間攻撃とはなかなか見ないゲームだな
どんなゲームかわからんけど普通は一定時間後にオフにすればいい
SetActive falseで消えることはわかってるだろうから一定時間後にその処理を呼ぶようにすればいい
一定時間後に処理を走らせる方法はいろいろあるからググって
わかんなかったらまた聞いて
446: 2018/08/18(土)03:53 ID:FXerNp9n(2/2) AAS
>>444
知らなければ答えなければいい
とか言って他人を煽るんだったら正しく答えてくれません?
なんで初心者が迷うような回答をいつもするんですか?
447(1): 2018/08/18(土)11:18 ID:CpHT33yN(1) AAS
>>441
アニメーションイベントを使うといいよ
具体的なメリットはアニメーションの好きなフレームでコライダーのオンオフできるところ
現状だと、例えば剣を振りかぶる動作の途中なのに敵がダメージ食らったりしてると思う
詳しくはウェブで!!
外部リンク:gametukurikata.com
448(1): 2018/08/18(土)11:49 ID:42eZyM7+(1/2) AAS
<<442
>>443
ありがとうございます
攻撃→コライダ出る→敵に当たる→コライダ消えるって感じなので、攻撃を空振りしたあとに
敵に当たるまでコライダ出っぱなしになるんだけど、これはどうすればいいの?
そもそもこの攻撃の当たり判定の仕方は根本的に間違ってるの?入門本三冊持ってるんだけど
どれにも攻撃の当たり判定は載ってなかったからネット検索してやってみたんだけども
アニメーションイベント使ってやった方がいいのだろうか?ちなみに本にはアニメーションイベントのやり方は載ってなくて
ググってみたけどよく分からなかった
449(2): 2018/08/18(土)12:18 ID:42eZyM7+(2/2) AAS
>>445
>>447
ありがとうございます、一定期間後の処理で出来るようになりました。
アニメーションイベントもわからないので調べて出来るようになろうと思う
void AtariKesu()
{
AtariHantei.SetActive(false);
}
void Update()
{
省6
450: 2018/08/18(土)14:52 ID:X+sFoNwa(1) AAS
>>448
間違い。
?コライダー出す→コライダー消す
?コライダーに当たる、
??の判定は別で処理すべき。
?で当たった判定を?に渡して、途中で消す作りにすべき。
451(1): 2018/08/18(土)17:20 ID:D8/ukjCM(1) AAS
raycastのrayって判定がけっこう曖昧になったりすることありますか?
マウスが乗ってるとこのterrainの座標を取得するのは問題なく出来てるんですが、xz座標を指定して高い位置から真下に飛ばしてヒットしたy座標を取得しようとすると取得できたり出来なかったり違った値が入ったりするんですが
少し感じたのはinfinityにするとしても発射位置を少し高くすると反応しなくなったりしてます
452(1): 2018/08/18(土)19:25 ID:An0BPv4U(1) AAS
>>449
アニメーションEventは一回わかると結構簡単だ
public void AtariKesu()のスクリプトをつける
アニメーションのEventにAtariKesuを入れるとそのコマに来たら呼び出してくれる
453: 2018/08/18(土)23:30 ID:47mEmEPe(1) AAS
>>451
曖昧になったと感じたことはない。
私は、な。
454: 2018/08/18(土)23:34 ID:CVdxGkvB(1) AAS
お前の話は聞いてない
455(1): 2018/08/19(日)00:14 ID:9mjqz3Tm(1) AAS
>>449
はじめて自分でアニメーションまでつけてやってみた
結構めんどくさかった
剣にコライダーつけてisTrigerをオン・オフにするようにした
コライダーのisTrigerのチェック入れておく(オフの状態)
public Collider2D coll2;
void Start () {coll2=GetComponent<Collider2D>();}
public void collOn(){coll2.isTrigger=true;}
public void colOff(){coll2.isTrigger=false;}
void OnCollisionEnter2D(Collision2D col) {Destroy(col.gameObject);}
省2
上下前次1-新書関写板覧索設栞歴
あと 547 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.035s