[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild1 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
441
(2): 436 [] 2018/08/17(金) 22:52:26.80 ID:Cl208u38(2/2) AAS
プレイヤーコントローラーのスクリプトは下のスクリプトで右クリックでアタック時にSetActive
でコライダを表示するようにして敵を攻撃する当たり判定にしてるんだけど、一回攻撃するとコライダ出っぱなしになる
消すように色々ためしたけど上手くいかない、アドバイス頼みます

public GameObject AtariHantei;
void Update()
{

//アタック

if (Input.GetMouseButtonDown(1))
{

this.animator.SetTrigger("AttackTrigger"); //アニメ再生

audioSource.PlayOneShot(AttackSE, volumeSE); //AttackSE

AtariHantei.SetActive(true); //コライダon

}
443
(1): 弟子 ◆rZPPjYuxmQ [sage] 2018/08/18(土) 00:11:37.07 ID:cxAelueQ(1/2) AAS
>>440,441
440(1): 436 [] 2018/08/17(金) 22:51:55.49 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");

}

}
とりあえず、そのスクリプトを生かしてコード書いてみました
現状ではコライダーをオフにするコードがないので、コライダーにぶつかった際にオフにするという通知をします
public class AttackController : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Enemy")
{
Destroy(coll.gameObject);
Debug.Log("hit Object");
transform.parent.SendMessage("SetOffAtariHantei");
}
}
で、プレイヤーには
void SetOffAtariHantei()
{
AtariHantei.SetActive(false); //コライダOff
}
を追加します
プレイヤーとあたり判定は親子関係にしました
画像リンク

画像リンク

これで敵を2対置いて、ミギクリした場合としない場合で判定がちゃんとされます
画像リンク

447
(1): 名前は開発中のものです。 [sage] 2018/08/18(土) 11:18:41.80 ID:CpHT33yN(1) AAS
>>441
アニメーションイベントを使うといいよ
具体的なメリットはアニメーションの好きなフレームでコライダーのオンオフできるところ
現状だと、例えば剣を振りかぶる動作の途中なのに敵がダメージ食らったりしてると思う

詳しくはウェブで!!
外部リンク:gametukurikata.com
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.028s