Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by ygh-jk · Aug 16, 2017 at 04:13 PM · pushback

Whenever player gets hit, it keeps getting pushed despite bool off?

I'm nearly done with my player's Main code but I just need to get over this hurdle to complete it. I'm trying to add pushback whenever the player gets damaged by anything tagged with "Enemy". I've used a boolean check in FIxedUpdate part and from what I understand the player should only get pushed whenever the boolean is on. Weirdly, the character keeps getting pushed despite bool check showing the tick off.

Here's the code: using UnityEngine; using System.Collections;

 public class PlayerMain : MonoBehaviour 
 {
    
     //Variable 
    
     public bool PBenabler;//p
     public float maxDashTime;//p
     private float currentDashTime;//p
     
     Vector3 forward, right;//m
     public float moveSpeed = 4f;//m
     
     private Vector3 moveDirection;//m 
     private bool moveEnabler;//m
     
     public float force;
     public float gravity = 3F;//m
     public float MaxHealth = 100f;//h
     public float CurHealth;//h
     public GameObject Health;//h
     public bool alive;//h
     
     
     void Start()
     {
         
     //P/ush Back script    
     currentDashTime = maxDashTime;
     
     //H/ealth script
     alive = true;
     CurHealth = MaxHealth;
     SetHealth ();
 
     }
     
     public void TakeDamage(float amount)
     {
                 
         CurHealth -= amount;
         SetHealth ();
         
         if(CurHealth <= -0f)
         {
             alive = false;
         }
 
     }
     
 
      void FixedUpdate() 
      { 
          CharacterController controller = GetComponent<CharacterController>();// is the controller on the ground?
          
          if(PBenabler == true)
          {
         moveDirection -= transform.forward * Time.deltaTime * 15;
          }else if(PBenabler == false)
          {
         moveDirection.y -= gravity * Time.deltaTime; //Applying gravity to the controller
         controller.Move(moveDirection * Time.deltaTime); //Making the character move
          }
          
         //CharacterController controller = GetComponent<CharacterController>();// is the controller on the ground?
 
         forward = Camera.main.transform.forward;// Set forward to equal the camera's forward vector
         forward.y = 0;// make sure y is 0
         forward = Vector3.Normalize(forward);// make sure the length of vector is set to a max of 1.0
         right = Quaternion.Euler(new Vector3(0, 90, 0)) * forward;// set the right-facing vector to be facing right relative to the camera's forward vector
         
         if(( (Input.GetAxis("Horizontal") != 0) || Input.GetAxis("Vertical") != 0) && alive == true)//disables allowing any keys aside from WASD and UP DOWN LEFT RIGHT keys
             {
             moveEnabler = true;
             }else 
             {
             moveEnabler = false;
             }
         
         if(controller.isGrounded && moveEnabler == true && CurHealth >0)
         {
         Move();
         }
         
         if(controller.isGrounded && GetComponent<AudioSource>().isPlaying == false && ( (Input.GetAxis("Horizontal") != 0) || Input.GetAxis("Vertical") != 0) && CurHealth >0)
         {
         GetComponent<AudioSource>().volume = Random.Range (0.7f, 0.9f);
         GetComponent<AudioSource>().Play ();
         }
         
         moveDirection.y -= gravity * Time.deltaTime; //Applying gravity to the controller
         controller.Move(moveDirection * Time.deltaTime); //Making the character move
         
      }
      
     void OnTriggerEnter(Collider c)
     {
     
         if (c.gameObject.tag == "Enemy")
         {
             PBenabler = true;
         } else
         {
             PBenabler = false;
         }
     }
     
      void Move()
      {
          Vector3 direction = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
         Vector3 rightMovement = right * moveSpeed * Time.deltaTime * Input.GetAxis("Horizontal");
         Vector3 upMovement = forward * moveSpeed * Time.deltaTime *Input.GetAxis("Vertical");
 
         Vector3 heading = Vector3.Normalize(rightMovement  + upMovement);//controls where its facing
         
         transform.forward = heading;
         transform.position += rightMovement;
         transform.position += upMovement;
      }
 
     public void SetHealth()
     {
         float P_Health = CurHealth / MaxHealth; //if CurHealth 80/100 = 8f
         //P_Health value vaule between 0 and 1
         Health.transform.localScale = new Vector3(Mathf.Clamp (P_Health, 0f, 1f), Health.transform.localScale.y, Health.transform.localScale.z);
     }
     
 
 }

I've tried using coroutines for the first time, it still keeps getting pushed.

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

111 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

Related Questions

Push back an enemy on trigger 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