How do I make my fps character punch damage the enemies as I have made the scripts but the enemy is not injured?
I really want my player to punch to damage enemies and here are the scripts that i have made:
the punching animation/punching object creator(which should damage the enemy)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Player_punch_script : MonoBehaviour {
Image Player_fps_punch_end;
public GameObject Player_Punch;
void Start()
{
Player_fps_punch_end = GetComponent<Image>();
}
void Update () {
if (Input.GetMouseButtonDown(0))
{
Player_fps_punch_end.fillAmount = 15f;
Player_Punch.SetActive(true);
}
if (Input.GetMouseButtonUp(0))
{
Player_fps_punch_end.fillAmount = 0f;
Player_Punch.SetActive(false);
}
}
}
And the Physical punch object which should damage the enemies and is a child to the fpscontroller(player object) and heres the script:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Player_Punch_damage_script : MonoBehaviour {
public float playerdamageAmount = 2.0075f;
void OnTriggerEnter(Collider other)
{
//It will check for the name of the GameObject that had enter inside the enemy trigger
if (other.gameObject.tag == "Enemy")
{
Monster_hp_script.MonsterHealth -= playerdamageAmount; // reduce enemy hp
}
}
}
And finally here is the script for the enemy hp and death and all that:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Monster_hp_script : MonoBehaviour {
public float maxMonsterHealth;
public float MonsterHealthRegen = 0.0005f;
public static float MonsterHealth;
public static bool MonsterisDead = false;
// Use this for initialization
void Start () {
MonsterHealth = maxMonsterHealth;
}
// Update is called once per frame
void Update () {
if (MonsterisDead)
{
MonsterHealth += 0f;
}
else
{
MonsterHealth += MonsterHealthRegen;
}
if (MonsterHealth > maxMonsterHealth)
{
MonsterHealth = maxMonsterHealth;
}
}
}
But the player_damage_punch_script is not inflicting damage on the enemies that has the script.
And also I have set the isTrigger on the enemy collider to true and also i have set the isTrigger to true on the player punch box with the player_damage_punch_script
Your answer
Follow this Question
Related Questions
How to compare two different variables in two different scripts? 0 Answers
Big numbers 2 Answers
Can someone please help me find out what wrong with my code. 1 Answer
Object reference not set to instance for my timer and my text 0 Answers
How can I give each instance a enum mode from another script ? 0 Answers