Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
13 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 Viwo04 · Apr 27 at 10:07 PM · unity 2dsound

how to add sound to unity

How do I code the script to make a sound when the knife hits an object and after a failed attempt? This is my script to run the entire game:

 using System.Collections;
 using UnityEngine;
 using UnityEngine.SceneManagement;
 
 
 [RequireComponent(typeof(GameUI))]
 public class GameController : MonoBehaviour
 {
 
  
     public static GameController Instance { get; private set; }
 
     [SerializeField]
     private int knifeCount;
 
     [Header("Knife Spawning")]
     [SerializeField]
     private Vector2 knifeSpawnPosition;
     [SerializeField]
     
     private GameObject knifeObject;
 
     
     public GameUI GameUI { get; private set; }
 
     private void Awake()
     {
         
         Instance = this;
 
         GameUI = GetComponent<GameUI>();
     }
 
     private void Start()
     {
         
         GameUI.SetInitialDisplayedKnifeCount(knifeCount);
         
         SpawnKnife();
     }
 
     
     public void OnSuccessfulKnifeHit()
     {
         if (knifeCount > 0)
         {
             SpawnKnife();
         }
         else
         {
             StartGameOverSequence(true);
         }
     }
 
     
     private void SpawnKnife()
     {
         knifeCount--;
         Instantiate(knifeObject, knifeSpawnPosition, Quaternion.identity);
     }
 
    
     public void StartGameOverSequence(bool win)
     {
         StartCoroutine("GameOverSequenceCoroutine", win);
     }
 
        
     private IEnumerator GameOverSequenceCoroutine(bool win)
     {
         if (win)
         {
             
             yield return new WaitForSecondsRealtime(0.3f);
             FindObjectOfType<LevelLoader>().LoadNextLevel();
 
         }
         else
         {
             GameUI.ShowRestartButton();
         }
     }
 
     public void RestartGame()
     {
         
         SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex, LoadSceneMode.Single);
     }
 }

and this is the script for the knife:

 using UnityEngine;
 
 public class KnifeScript : MonoBehaviour
 {
 
     [SerializeField]
     private Vector2 throwForce;
 
     //knife shouldn't be controlled by the player when it's inactive 
     //(i.e. it already hit the log / another knife)
     private bool isActive = true;
 
     //for controlling physics
     private Rigidbody2D rb;
     //the collider attached to Knife
     private BoxCollider2D knifeCollider;
 
     private void Awake()
     {
         rb = GetComponent<Rigidbody2D>();
         knifeCollider = GetComponent<BoxCollider2D>();
     }
 
     void Update()
     {
         //this method of detecting input also works for touch
         if (Input.GetMouseButtonDown(0) && isActive)
         {
             //"throwing" the knife
             rb.AddForce(throwForce, ForceMode2D.Impulse);
             //once the knife isn't stationary, we can apply gravity (it will not automatically fall down)
             rb.gravityScale = 1;
             //Decrement number of available knives
             GameController.Instance.GameUI.DecrementDisplayedKnifeCount();
         }
     }
 
     private void OnCollisionEnter2D(Collision2D collision)
     {
         //we don't even want to detect collisions when the knife isn't active
         if (!isActive)
             return;
 
         //if the knife happens to be active (1st collision), deactivate it
         isActive = false;
 
         //collision with a log
         if (collision.collider.tag == "Log")
         {
             //play the particle effect on collision,
             //you don't always have to store the component in a field...
             GetComponent<ParticleSystem>().Play();
 
             //stop the knife
             rb.velocity = new Vector2(0, 0);
             //this will automatically inherit rotation of the new parent (log)
             rb.bodyType = RigidbodyType2D.Kinematic;
             transform.SetParent(collision.collider.transform);
 
             //move the collider away from the blade which is stuck in the log
             knifeCollider.offset = new Vector2(knifeCollider.offset.x, -0.4f);
             knifeCollider.size = new Vector2(knifeCollider.size.x, 1.2f);
 
             //Spawn another knife
             GameController.Instance.OnSuccessfulKnifeHit();
         }
         //collision with another knife
         else if (collision.collider.tag == "Knife")
         {
             //start rapidly moving downwards
             rb.velocity = new Vector2(rb.velocity.x, -2);
             //Game Over
             GameController.Instance.StartGameOverSequence(false);
         }
     }
 }

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

149 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

Related Questions

3D sound in topdown game heard in only one hear. 1 Answer

Gunfire Sound Gets Cut Off When I Release the Aim Button. Help? 2 Answers

How do I change the size of an object depending on the sound in unity 2D? 0 Answers

How to make Unity 4.3 + RageTools+ RageSpline animations and how to handle them in Xcode? 0 Answers

Unity 2D: move towards mouse and through mouse 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