- Home /
Melee Attacking script doesn't work
Hey guys, beginner here. I recently attempted to make my players take damage when two objects collided. When one player would press the attack button, the gameobject that I created (to represent the sword of the player) 'touches' player2. However, nothing happens. I'm sure that class playerattack works, but class attacktrigger doesn't. Thank you
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerAttack : MonoBehaviour {
private bool attacking = false;
private float attackTimer = 0;
private float attackCd = 0.3f;
public Collider2D NinjaAttackTrigger;
private Animator anim;
void Awake(){
anim = gameObject.GetComponent<Animator>();
NinjaAttackTrigger.enabled = false;
}
void Update() {
if (Input.GetKeyDown (",") && !attacking) {
attacking = true;
attackTimer = attackCd;
NinjaAttackTrigger.enabled = true;
}
if (attacking) {
if (attackTimer > 0) {
attackTimer -= Time.deltaTime;
}
else {
attacking = false;
NinjaAttackTrigger.enabled = false;
}
}
anim.SetBool("Attacking", attacking);
}
}
ATTACK TRIGGER STARTS HERE
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AttackTrigger : MonoBehaviour {
public int dmg = 10;
void onTriggerEnter2D (Collider2D col) {
if(col.isTrigger == true && col.CompareTag("Knight")) {
col.SendMessageUpwards ("Damage", dmg);
dmg--;
print("working");
}
}
}
OnTriggerEnter2D - this function should be a capital O, you have a lowercase o.
By fixing that, it should solve your problem.
Answer by AcePilot10 · Jun 12, 2017 at 09:10 AM
Change onTriggerEnter2D to OnTriggerEnter2D (Capital O) :)
Your answer
Follow this Question
Related Questions
2D melee Combat with SphereCastAll Problem 1 Answer
How can I find on which side of an EdgeCollider2D a collision takes place? 1 Answer
Collider2D.IsTouchingLayers() delayed reaction 1 Answer
Sprites not recognized as whole-spinning in different directions 0 Answers
Creation of Edge Colliders at Runtime 0 Answers