Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 morychan · Nov 02, 2012 at 08:01 AM · audiovariable

Can I call sounds from other script?

I have too many class and script to add the same sounds ,so i wonder that can i create script that can be used in many class or script? and how?

I try this but it error something like Expression denotes a `type', where a `variable', `value' or `method group' was expected.

(plus, i am just a beginner who having a bad skill in programming and never write c# before. i sorry if i ask, do, or show something stupid)


 using UnityEngine;
 using System.Collections;
 
 public class AudioTest : MonoBehaviour
 {
 
 public AudioClip soundClick;
 
     void OnGUI(){
         if (GUI.Button(new Rect(10, 10, 100, 50), "Test")){
              Audio().playOnClick();
         }
 }


and in other script Audio


 public void playOnClick(){
 
     audio.clip = soundClick;
 
     audio.Play();
 }



if i put this playOnClick code to AudioTest it can play sound

maybe this "Audio().playOnClick();" is wrong, but i don't know how to fix it.

i try to fix it my self 3 day but it did't work. Please help me.

Comment
Add comment · Show 1
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 Fattie · Nov 02, 2012 at 10:14 AM 0
Share

unityGE$$anonymous$$S.com for basic explanation of how to call other scripts, other components etc.

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by prototype7 · Nov 02, 2012 at 10:19 AM

You should GetComponent first

1) example AudioTest.cs attached to GameObject with named "object1"

2) example OtherScriptAudio.cs attached to GameObject named "object2"

AudioTest.cs

 public class AudioTest : MonoBehaviour {
 
     private GameObject getGO;
     private OtherScriptAudio getComponentAudio;
     
     // Use this for initialization
     void Start () {
         getGO = GameObject.Find("object2");
         getComponentAudio = getGO.GetComponent<OtherScriptAudio>();
     }
     
     void OnGUI()
     {
         if (GUI.Button(new Rect(10, 10, 100, 50), "Test")){
             getComponentAudio.playOnClick();
         }
     }
 }

OtherScriptAudio.cs

 public class OtherScriptAudio : MonoBehaviour {
 
     public void playOnClick()
     {
         audio.clip = soundClick;
         audio.Play();
     }
 }
Comment
Add comment · Show 3 · 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 fafase · Nov 02, 2012 at 12:10 PM 0
Share

This is it. Just one little detail, you do not need to keep the getGo variable. You might as well make it local to the start function or simply :

 getComponentAudio = GameObject.Find("ObjectName").GetComponent<OtherScriptAudio>();

But yes that is the way.

avatar image morychan · Nov 06, 2012 at 09:19 AM 0
Share

thank you. :)

avatar image prototype7 · Nov 06, 2012 at 11:12 AM 0
Share

will you close the question ? or label it as answered

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

11 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

Related Questions

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

How do I play a sound during a level change? 3 Answers

accessing vars of other script doesn't work 1 Answer

Sprinting Audio Problem 1 Answer

Save game support, how do I load audio in a sertain time frame? 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