Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
12 Jun 22 - 14 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 Dionysos1111 · Jan 22, 2017 at 09:45 PM · rigidbodyaddforce

addforce to rigidbody when hit

Hi,

I want to add force to the player rigidbody backwards.

So if a creature hits me i get thrown backwards a couple of meters.

I got this:

                     if (hit.rigidbody)
                     {
                             if (GetComponent<CharacterDamage>().Throw == true)
                             {
                         hit.rigidbody.AddForce(-hit.transform.forward * 2000);
                         hit.rigidbody.AddForce(hit.transform.up * 200);
                             }


Now when i get hit it does correctly what it supposed to if the player is facing the creature.

But when the creature sneaks up on the player from the back, the player gets thrown in the wrong direction.

How can i change it so that the player gets thrown in the right direction no matter where the creature hits me?

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

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by IgorAherne · Jan 22, 2017 at 11:50 PM

 //compute vector (length one) from game object's pivot to the player's pivot:
 Vector3 hitVector = (hit.transform.position - transform.position).normalized;
 
 //if you want only horizontal plane movement, disable y-component of hitVector:
 hitVector = (hit.transform.position - transform.position);
 hitVector.y = 0;
 hitVector = hitVector.normalized 
 
 hit.rigidbody.AddForce(hitVector* 2000 );

Comment
Add comment · Show 2 · Share
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
avatar image Dionysos1111 · Jan 23, 2017 at 05:51 PM 0
Share

Yes thank you, that fixed the problem :) didn't knew about normalized.

avatar image Y2KExtacy · Apr 01 at 10:02 PM 0
Share

I am also trying to figure this out, but am slightly confused. How do I set this up? Here is my code for dealing damage:

public class DamagePlayer : MonoBehaviour { public int damageAmount = 3;

 //optional code
 //do not plan to use
 public bool destroyOnDamage;
 public GameObject destroyEffect;

 private void OnCollisionEnter2D(Collision2D other)
 {
     if(other.gameObject.tag == "Player")
     {
         DealDamage();
     }
 }

 private void OnTriggerEnter2D(Collider2D other)
 {
     if(other.tag == "Player")
     {
         DealDamage();
     }
 }

 void DealDamage()
 {
     PlayerHealthController.instance.DamagePlayer(damageAmount);

     //adding force when player is hit
     //need to finish working on this
     


     if (destroyOnDamage)
     {
         if(destroyEffect != null)
         {
             Instantiate(destroyEffect, transform.position, transform.rotation);
         }

         Destroy(gameObject);

     }

 }

}

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

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Making an object move in the direction it's faceing. 1 Answer

Making knockback smooth instant of instant 0 Answers

Moving a ball through add force and rotate around 1 Answer

Rigidbody falling very slow 1 Answer

Grenade throw with indicator 0 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