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 Besi2019 · Apr 14, 2018 at 10:15 PM · triggerscript.soundonce

Play sound only once

I want to play sound only once, after the player jumps on it. So if the character goes back and jumps on it again, it wont play.

This is my script:

 public Sprite flagClosed;
 public Sprite flagOpen;
 
 private SpriteRenderer theSpriteRenderer;
 
 public bool checkpointActive;
 
 public AudioSource checkSound;

 // Use this for initialization
 void Start () {
     theSpriteRenderer = GetComponent<SpriteRenderer>();
 }
 
 // Update is called once per frame
 void Update () {
     
 }
 
 void OnTriggerEnter2D(Collider2D other)
 {
     if(other.tag == "Player")
     {
         checkpointActive = true;
         this.gameObject.GetComponent<Animator>().SetBool("Has Passed",true);
     }
 }


Hope somebody can help

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
Best Answer

Answer by Besi2019 · Apr 14, 2018 at 11:15 PM

@James9270_

So at the end is like this?

 void OnTriggerEnter2D(Collider2D other)
 {
     if(other.tag == "Player")
     {
         checkpointActive = true;
         this.gameObject.GetComponent<Animator>().SetBool("Has Passed",true);
     
         checkSound.Play();
         
         if (!soundHasPlayed)
          {
              //Play the sound
              soundHasPlayed = true;
          }
     }
 }
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 James9270_ · Apr 14, 2018 at 11:26 PM 0
Share

checkSound.Play() should go only happen when soundHasPlayed is false, so, like this:

     void OnTriggerEnter2D(Collider2D other)
     {
         if (other.tag == "Player")
         {
             checkpointActive = true;
             this.gameObject.GetComponent<Animator>().SetBool("Has Passed", true);       
 
             if (!soundHasPlayed)
             {
                 checkSound.Play();
                 soundHasPlayed = true;
             }
         }
     }
avatar image Besi2019 · Apr 15, 2018 at 10:05 AM 0
Share

It worked.. thanks :D

avatar image
0

Answer by James9270_ · Apr 14, 2018 at 11:02 PM

Create a bool to determine whether the sound has played, check if the bool is false before playing the sound, and set it to true after having played the sound. Something like this:

     private bool soundHasPlayed = false;
     ...
     void OnTriggerEnter2D(Collider2D other)
     {
 
         if (other.tag == "Player")
         {
             ...
             if (!soundHasPlayed)
             {
                 //Play the sound
                 soundHasPlayed = true;
             }
         }
     }
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

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

99 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

Related Questions

return an array of all colliders a collider is tuching 1 Answer

Activate camera script with a trigger 1 Answer

audio trigger keydown 1 Answer

Sound OnTriggerEvent with HTC Vive Camera (head) wont play. 1 Answer

Restart sound when re-entering trigger? 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