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 JFox23 · May 09, 2018 at 06:10 PM · c#rotationscorepoint

Is it possible to add a point to the score, everytime the Player rotates 180°?

Hey there, I'm relatively new to unity and programming itself, so bare with me on this one :D I wondered if it is possible to add a point to the score, everytime the player turns 180°. I'm trying to program a "Trampoline"-game, where everytime you do a front flip, a point gets added.

Thank you (it advance) for helping :)

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

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Nomenokes · May 10, 2018 at 12:25 PM

How about something like this, where every time it passes both upright and upside-down positions, a point is scored?

 int score = 0;
 float prevX; //the "x" rotation from last tick
 float prevZ; //the "z" rotation from last tick
 bool justFlipped = false; //if it was last turned upside down, this will be true, and if it was last upright, it will be false
 const float ANGLE_BUFFER = 5; //how lenient the "flips" are
 
 void Update(){
     if(prevX>180) prevX = 360-prevX; //turns "340 deg" into "-20 deg"
     if(prevZ>180) prevZ = 360-prevZ; //for easier calculations
     float currentX = transform.eulerAngles.x;
     float currentZ = transform.eulerAngles.z;
     if(currentX>180) currentX = 360-currentX;
     if(currentZ>180) currentZ = 360-currentZ;
 
     if(
          justFlipped = true &&
         (
         (Mathf.Abs(prevX) < ANGLE_BUFFER /*if x angle is close enough to 0*/
         && Mathf.Sign(prevZ) != Mathf.Sign(currentZ)) /*and Z has flipped*/
         || /*or*/
         (Mathf.Abs(prevZ) < ANGLE_BUFFER /*if z angle is close enough to 0*/
         && Mathf.Sign(prevX) != Mathf.Sign(currentX)) /*and X has flipped*/
         )
     ){ //this means that the player has just flipped upright
         justFlipped = false;
         score ++;
     }
     if(
         180 - (Mathf.Abs(prevX) < ANGLE_BUFFER /*if x angle is close enough to 180*/
         && Mathf.Sign(prevZ) != Mathf.Sign(currentZ)) /*and Z has flipped*/
         || /*or*/
         180 - (Mathf.Abs(prevZ) < ANGLE_BUFFER /*if z angle is close enough to 180*/
         && Mathf.Sign(prevX) != Mathf.Sign(currentX)) /*and X has flipped*/
     ){ //this means the player has just flipped upside down
         justFlipped = true;
     }
  prevX = transform.eulerAngles.x;
  prevZ = transform.eulerAngles.z;
 }
     

I haven't tested it out, so it might not work, so let me know. I also realize that the code isn't perfectly streamlined, because I wanted to make it easier to understand rather than perfectly efficient.

Cheers,

Nomenokes

Comment
Add comment · 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
0

Answer by JFox23 · May 10, 2018 at 04:41 PM

First of all, thank you VERY much. Everything seems to be ok, except

 if (
             180 - (Mathf.Abs(prevX) < ANGLE_BUFFER /*if x angle is close enough to 180*/
             && Mathf.Sign(prevZ) != Mathf.Sign(currentZ)) /*and Z has flipped*/
             || /*or*/
             180 - (Mathf.Abs(prevZ) < ANGLE_BUFFER /*if z angle is close enough to 180*/
             && Mathf.Sign(prevX) != Mathf.Sign(currentX)) /*and X has flipped*/
         )

Here, it tells me the error-code "CS0019": "The -- operator can't be used on "int" and "bool" (translated from german, sorry if there are mistakes^^).

Again, thank you for your help. Maybe you know, what the problem is?

Comment
Add comment · Show 12 · 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 Nomenokes · May 10, 2018 at 08:51 PM 0
Share

$$anonymous$$y bad, I messed up a parentheses

     if (
          (180 - $$anonymous$$athf.Abs(prevX) < ANGLE_BUFFER /*if x angle is close enough to 180*/
          && $$anonymous$$athf.Sign(prevZ) != $$anonymous$$athf.Sign(currentZ)) /*and Z has flipped*/
          || /*or*/
          (180 - $$anonymous$$athf.Abs(prevZ) < ANGLE_BUFFER /*if z angle is close enough to 180*/
          && $$anonymous$$athf.Sign(prevX) != $$anonymous$$athf.Sign(currentX)) /*and X has flipped*/
      )

And the same parentheses change for the other "if" later on, just move it from in front of $$anonymous$$athf to in front of the 180.

Do you get what this code does, even if you don't get the exact syntax?

avatar image JFox23 Nomenokes · May 11, 2018 at 06:05 PM 0
Share

Hm ok, now Unity is telling me:"warning CS0414: The private field `Player.justFlipped' is assigned but its value is never used"

Is this a problem? I think so, however I'm not sure lol

Also, if it is ok to ask, how would I then display the score? Your score-code is now placed in my player class, so is there a way to use it from there to show it in some kind of UI? Or do I need a new script for it?

Again, thanks for helping :)

avatar image Nomenokes JFox23 · May 12, 2018 at 12:24 AM 0
Share

Ok, this is just another syntax mistake. It should be justFlipped == true not justFlipped = true. If you make a reference to some UI text on the screen (add this with the editor first), you can do something like this:

 public Text scoreText; //assign this in the editor
 
 void Update(){
     //your other stuff
     
     scoreText.text = score.ToString();
 }

where the UI text has its value changed every tick to the player's score

Show more comments
avatar image JFox23 · May 11, 2018 at 10:42 AM 0
Share

I completely get it, thanks a lot! Still would've never figured it out without your help though :D I'm going to try it later today, will get back to you :)

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

504 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image 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

Flip over an object (smooth transition) 3 Answers

Object rotates more farther it is away from a point [C#] 0 Answers

Point system, something wrong 1 Answer

Distribute terrain in zones 3 Answers

After I initially add score it keeps adding. 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