Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by hadi5680806 · Mar 29, 2021 at 09:17 PM · raycastraycastingdamagehow

Plz help I have a problem in my damage popup

I have a gun script and a target script and a damagepopup script. I want to get the damage popup when I hit something with my raycast and I want to get the damage on the popup. I also have damage variable in my gun script plz help.,Ok I have a script which is a damage popup script and a gun script and I have a variable in my gun script which is damage. I want to make a damage popup when I hit something with raycast which is in my gun script and I want to be the damage popup of my damage plz hep.

using System.Collections; using System.Collections.Generic; using UnityEngine;

public class Target : MonoBehaviour { public float health = 50f; public void TakeDamage(float amount)

 {
     health -= amount;
     if(health <= 0f)
     {
         Die();
     }
 }

 void Die()
 {
     Destroy(gameObject);

     
 }
 

}

using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; using CodeMonkey.Utils;

public class DamagePopup : MonoBehaviour { public static DamagePopup Create (Vector3 position, int DamageAmount, bool isCriticslHit) { Transform DamagePopupTransform = Instantiate(GameAsset.i.pfDamagePopup, Vector3.zero, Quaternion.identity);

     DamagePopup damagepopup = DamagePopupTransform.GetComponent<DamagePopup>();
     damagepopup.Setup(DamageAmount, isCriticslHit);
     return damagepopup;
 }

 private static int sortingOrder;
             

 private const float DISAPPEAR_TIMER_MAX = 1f;
 private TextMeshPro textmesh;
 private float DisappearTimer;
 private Color TextColor;
 private Vector3 moveVector;

 private void Awake()
 {
     textmesh = transform.GetComponent<TextMeshPro>();
 }




 public void Setup(int DamageAmount, bool isCriticalHit)
 {
     textmesh.SetText(DamageAmount.ToString());
     if (!isCriticalHit)
     {
         //NormalHit
         
         textmesh.fontSize = 36;
         TextColor = UtilsClass.GetColorFromString("FFF600");
     } else
     {
         //CriticalHit
         textmesh.fontSize = 45;
         TextColor = UtilsClass.GetColorFromString("FF0010");
     }
     textmesh.color = TextColor;
     DisappearTimer = DISAPPEAR_TIMER_MAX;


     sortingOrder++;
     textmesh.sortingOrder = sortingOrder;
     moveVector = new Vector3(1, 1) * 30f;
 }

 private void Update()
 {
     float MoveYSpeed = 20f;
     transform.position += moveVector * Time.deltaTime;
     moveVector -= moveVector * 8f * Time.deltaTime;

     if(DisappearTimer > DISAPPEAR_TIMER_MAX * .5f)
     {
         //First Half Of the Popup Lifetime
         float increaseScaleAmount = 1f;
         transform.localScale += Vector3.one * increaseScaleAmount * Time.deltaTime;
     }
     else
     {
         //Second Half of the Popup Lifetime
         float decreaseScaleAmount = 1f;
         transform.localScale -= Vector3.one * decreaseScaleAmount * Time.deltaTime;
     }

     DisappearTimer -= Time.deltaTime;
     if(DisappearTimer < 0)
     {
         //Start Disappearing
         float DisappearSpeed = 3f;
         TextColor.a -= DisappearSpeed * Time.deltaTime;
         textmesh.color = TextColor;
         if(TextColor.a < 0)
         {
             Destroy(gameObject);
         }
     }
 }

}

using UnityEngine;

public class Gun : MonoBehaviour {

 public float damage = 10f;
 public float range = 100f;
 public float FireRate = 15f;
 public float impactForce = 30f;

 public Camera fpscam;
 public ParticleSystem muzzleflash;
 public GameObject impacteffect;

 private float NextTimeToFire = 0f;

 // Update is called once per frame
 void Update()
 {
     
     if (Input.GetButton("Fire1") && Time.time >= NextTimeToFire)
     {
         NextTimeToFire = Time.time + 1f / FireRate;
         {
             Shoot();
         }
     }

 }

 void Shoot()
 {
     muzzleflash.Play();


     RaycastHit hit;
     if (Physics.Raycast(fpscam.transform.position, fpscam.transform.forward, out hit, range))
     {
         Debug.Log(hit.transform.name);
         Target target = hit.transform.GetComponent<Target>();
         if(target != null)
         {
             target.TakeDamage(damage);
         }

         if (hit.rigidbody != null)
         {
             hit.rigidbody.AddForce(-hit.normal * impactForce);
         }


         GameObject impactGO = Instantiate(impacteffect, hit.point, Quaternion.LookRotation(hit.normal));
         Destroy(impactGO, 2f); 
        
     }
 }

},using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; using CodeMonkey.Utils;

public class DamagePopup : MonoBehaviour { public static DamagePopup Create (Vector3 position, int DamageAmount, bool isCriticslHit) { Transform DamagePopupTransform = Instantiate(GameAsset.i.pfDamagePopup, Vector3.zero, Quaternion.identity);

     DamagePopup damagepopup = DamagePopupTransform.GetComponent<DamagePopup>();
     damagepopup.Setup(DamageAmount, isCriticslHit);
     return damagepopup;
 }

 private static int sortingOrder;
             

 private const float DISAPPEAR_TIMER_MAX = 1f;
 private TextMeshPro textmesh;
 private float DisappearTimer;
 private Color TextColor;
 private Vector3 moveVector;

 private void Awake()
 {
     textmesh = transform.GetComponent<TextMeshPro>();
 }




 public void Setup(int DamageAmount, bool isCriticalHit)
 {
     textmesh.SetText(DamageAmount.ToString());
     if (!isCriticalHit)
     {
         //NormalHit
         
         textmesh.fontSize = 36;
         TextColor = UtilsClass.GetColorFromString("FFF600");
     } else
     {
         //CriticalHit
         textmesh.fontSize = 45;
         TextColor = UtilsClass.GetColorFromString("FF0010");
     }
     textmesh.color = TextColor;
     DisappearTimer = DISAPPEAR_TIMER_MAX;


     sortingOrder++;
     textmesh.sortingOrder = sortingOrder;
     moveVector = new Vector3(1, 1) * 30f;
 }

 private void Update()
 {
     float MoveYSpeed = 20f;
     transform.position += moveVector * Time.deltaTime;
     moveVector -= moveVector * 8f * Time.deltaTime;

     if(DisappearTimer > DISAPPEAR_TIMER_MAX * .5f)
     {
         //First Half Of the Popup Lifetime
         float increaseScaleAmount = 1f;
         transform.localScale += Vector3.one * increaseScaleAmount * Time.deltaTime;
     }
     else
     {
         //Second Half of the Popup Lifetime
         float decreaseScaleAmount = 1f;
         transform.localScale -= Vector3.one * decreaseScaleAmount * Time.deltaTime;
     }

     DisappearTimer -= Time.deltaTime;
     if(DisappearTimer < 0)
     {
         //Start Disappearing
         float DisappearSpeed = 3f;
         TextColor.a -= DisappearSpeed * Time.deltaTime;
         textmesh.color = TextColor;
         if(TextColor.a < 0)
         {
             Destroy(gameObject);
         }
     }
 }

}

using UnityEngine;

public class Gun : MonoBehaviour {

 public float damage = 10f;
 public float range = 100f;
 public float FireRate = 15f;
 public float impactForce = 30f;

 public Camera fpscam;
 public ParticleSystem muzzleflash;
 public GameObject impacteffect;

 private float NextTimeToFire = 0f;

 // Update is called once per frame
 void Update()
 {
     
     if (Input.GetButton("Fire1") && Time.time >= NextTimeToFire)
     {
         NextTimeToFire = Time.time + 1f / FireRate;
         {
             Shoot();
         }
     }

 }

 void Shoot()
 {
     muzzleflash.Play();


     RaycastHit hit;
     if (Physics.Raycast(fpscam.transform.position, fpscam.transform.forward, out hit, range))
     {
         Debug.Log(hit.transform.name);
         Target target = hit.transform.GetComponent<Target>();
         if(target != null)
         {
             target.TakeDamage(damage);
         }

         if (hit.rigidbody != null)
         {
             hit.rigidbody.AddForce(-hit.normal * impactForce);
         }


         GameObject impactGO = Instantiate(impacteffect, hit.point, Quaternion.LookRotation(hit.normal));
         Destroy(impactGO, 2f); 
        
     }
 }

}

using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; using CodeMonkey.Utils;

public class Target : MonoBehaviour { public float health = 50f; public void TakeDamage(float amount)

 {
     health -= amount;
     if(health <= 0f)
     {
         Die();
     }
 }

 void Die()
 {
     Destroy(gameObject);

     
 }
 

}

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

165 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Raycast shooting 1 Answer

Can't find a clone object with RayCast? [Solved] 2 Answers

How do I can make this 3rd Person camera Smoother when RayCast? 1 Answer

How can I differentiate between colliding with an object or its child? 1 Answer

raycast in direction of movement key down 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges