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 /
avatar image
0
Question by supermegamestre · Dec 05, 2017 at 03:56 AM · c#unity 5bugroll a ballground detection

ground detection fails

Hello I am Brazilian so my English are not perfect well I am noob with C# So when I discovered how to make a ground check using OnCollisionEnter I make a party so how my game Is a puzzle game I have the brilliant idea to make at Universal tag to almost all objects in the scene so I had no problem jumping but this system has a few bugs the first one well I used OnCollisionEnter to verify if you are in the ground and how I said before I created down Universal tag to almost all objectives in the scene and if you touch object in left or right you could jump no matter where you are you could jump i reutilized this bug like a wall jump But it is Disturbed by the second bug

the second bug how I said before I used OnCollisionEnter to verify if you're in the ground I discovered that if you get out the ground without jumping you could jump in the air once i Ignored this by a Long Time but Correct this bug was turning into something almost essential because i was adding New mechanics that needed to be on the ground to work correctly like the break So I thinked “ if have OnCollisionEnter So must have OnCollisionExit” And have so I used OnCollisionExit To correct the bug it's supposed to work fine but it doesn't every two jumps you gave, the on ground verification fails It would not be bad if it not disturbs my wall jumps here is my code I'm accepting any help

using UnityEngine; using UnityEngine.UI; using System.Collections;

public class player : MonoBehaviour { //ints public int lifes = 3; private int pickUpType1Num; private int pickUpType1Count = 0; private int pickUpType2Num; private int pickUpType2Count = 0; private int pickUpType3Num; private int pickUpType3Count = 0;

 //floats
     //don't care about they
 private float speed = 5.0f;
 private float runMutiply = 4.0f;
 private float maxRotSpeed = 25.0f;
 private float drag = 0.5f;
 private float rateOfFire = 5.0f;
 private float nextShot;

 //vectors and transforms
     //don't care about they yet
 private Vector3 rotated;
 private Transform cam;
 public Transform USSP;


 //coponents
     //don't care about they,not yet
 private Rigidbody rb;
 private TrailRenderer trail;
 public ParticleSystem runEffect;

 //bools
 private bool onGround;// only care about this one XD
     //don't care about they
 public bool runLock = false;
 private bool passed = false;

 //texts
 public Text info1;
 public Text info2;
 public Text lifesText;

 //etc
 public GameObject cubeShot;
 private void Start ()
 {
     //get coponent...
     rb = GetComponent<Rigidbody>();
     trail = GetComponent<TrailRenderer> ();

     //get object? what??
     pickUpType1Num = GameObject.FindGameObjectsWithTag ("pickUpType1").Length;
     pickUpType2Num = GameObject.FindGameObjectsWithTag ("pickUpType2").Length;
     pickUpType3Num = GameObject.FindGameObjectsWithTag ("pickUpType3").Length;
     //etc
     rb.maxAngularVelocity = maxRotSpeed;
     rb.drag = drag;
     cam = Camera.main.transform;
     onGround = true;
     setTexts ();
 }

 private void Update ()
 {
     if(Input.GetKey(KeyCode.X) && Time.time > nextShot){
         Instantiate (cubeShot, USSP.position, USSP.rotation);
         nextShot = Time.time + rateOfFire;
     }
     setTexts ();

     jumpAndBrake ();//calling the jump function

     walkAndRun ();

     if (passed && GameObject.FindWithTag ("obstacle").GetComponent<ParticleSystem> ().particleCount == 0) {
         GameObject.FindWithTag ("obstacle").SetActive (false);
     }



     

 }
     //the OnCollisionExit function and the start of the on ground check
 void OnCollisionExit(Collision any){
     if (any.collider.tag == "MultiversalCollidingInertObject") {
         onGround = false;
     }
 }

 //verify if the ball is on the ground
 void OnCollisionEnter(Collision any){
     if (any.collider.tag == "MultiversalCollidingInertObject") {
         onGround = true;
     }
 }
     //you can ignore everything after it XD
 void OnTriggerEnter(Collider other) {
     if(other.CompareTag("pickUpType1")){
         other.gameObject.SetActive (false);
         pickUpType1Count++;
     }

     if(other.CompareTag("pickUpType2")){
         other.gameObject.SetActive (false);
         pickUpType2Count++;
     }

     if(other.CompareTag("pickUpType3")){
         other.gameObject.SetActive (false);
         pickUpType3Count++;
     }

     if (pickUpType1Count == pickUpType1Num) {
         passed = true;
         GameObject.FindWithTag ("obstacle").GetComponent<ParticleSystem> ().Stop();
     }


 }
 void setTexts(){

     lifesText.text = "lifes " + lifes.ToString ();
     info1.text = "purple squares:" + pickUpType1Count.ToString ();

 }
 void walkAndRun(){

     //define direction vector
     Vector3 dir = Vector3.zero;

     //set the direction based on the control comand
     dir.x = Input.GetAxis ("Horizontal");
     dir.z = Input.GetAxis ("Vertical");

     //normalize... for some reason...
     if (dir.magnitude > 1) {
         dir.Normalize();
     }

     //align direction to the camera position
     Vector3 rotDir = cam.TransformDirection (dir);
     rotDir = new Vector3 (rotDir.x, 0.0f, rotDir.z);
     rotDir = rotDir * dir.magnitude;

     //walk,or... run!
     if (Input.GetKey (KeyCode.LeftControl) && runLock) {
         rb.AddForce ((rotDir * speed) * runMutiply);
         trail.enabled = true;
         runEffect.Play ();
     } else {
         rb.AddForce ((rotDir * speed));
         trail.enabled = false;
         trail.Clear ();
         runEffect.Pause ();
         runEffect.Clear ();
     }
 }
 void jumpAndBrake(){
     //brake
     if (Input.GetKey (KeyCode.LeftShift) && onGround) {
         rb.velocity = new Vector3 (rb.velocity.x / 1.25f, rb.velocity.y, rb.velocity.z / 1.25f);
     }

     //jump!now!
     if (Input.GetAxis ("Jump") > 0 && onGround) {
         rb.velocity = new Vector3(rb.velocity.x,7,rb.velocity.z);
         //onGround = false;
     }
 }

}

thanks and bye

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

446 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 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 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

OnCollisionEnter2D not being called on entering new tile once already called. 1 Answer

Почему после перехода на другую версию Unity при создании кнопки она не откликается на геймпад и клавиатуру? 0 Answers

Roll a Ball Tutorial: Ball floats in the air when I enter play mode. 2 Answers

In-App-Purchases not working (Android) 1 Answer

I keep getting an error when try to change the tag of a gameObject 1 Answer


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