質問させていただきます
海外のサイトを参考に見て回っているのですが、下記の様な攻撃判定方法にてインスペクターからattackbleLayerに複数設定できる事は理解できました
void Attack() { timeSinceAttack += Time.deltaTime; if (Input.GetButtonDown("Attack") && timeSinceAttack >= timeBetweenAttack) { timeSinceAttack = 0; //Attack Side if (yAxis == 0 || yAxis < 0 && Grounded()) { //anim.SetTrigger("1"); Collider2D[] objectsToHit = Physics2D.OverlapCircleAll(attackTransform.position, attackRadius, attackableLayer); if (objectsToHit.Length > 0) { pState.recoilingX = true; } for (int i = 0; i < objectsToHit.Length; i++) { //ここで、スクリプトで攻撃が行うことをすべて実行します。 //私の場合、Hitメソッドを他のオブジェクトにアタッチされたEnemyスクリプトに渡します。 //ここでは、見たい場合に備えて、実際に使用しているスクリプトをコメントアウトしました /*Instantiate(slashEffect1, objectsToHit[i].transform); if (!(objectsToHit[i].GetComponent<EnemyV1>() == null)) { objectsToHit[i].GetComponent<EnemyV1>().Hit(damage, 0, -YForce); } if (objectsToHit[i].tag == "Enemy") { Mana += ManaGain; }*/ } } }
したい事
- 仮にLayerを"Enemy""MapObj"の2つ設定した場合、"MapObj"レイヤーには pState.recoilingX = true;を適用させないようにできるのでしょうか?
それとも単純に適用させない同じような処理を"MapObj"用に書いてしまえば良いでしょうか?
わからない、理解しきれていない事
- youtubeの動画でも同じような処理を確認したのですが、foreachを使っている場合の差異などあれば
- unityで同じようなPhysics2Dを使った処理の解説など、勉強できるサイト等有ればご紹介ください。
あなたの回答
tips
プレビュー