i am developing my game skill by following the guide book making unity game.
Book says ok to proceed this code but my unity can’t let it go.
the game’s goal is moving a basket to get apples and avoid bombs.
=======================================================
this code means if basket got an apple, play appleSE and else (other object got), play bombSE.
so i want to add a two audio clips to basketcontroller script.
i put public AudioClip variables to outlet.
Writing code is done, i put my audio clips to appleSE,bombSE in basketcontroller script by drag&drop.
and play game to see how it work. when basket get an apple or bomb, there’s no sounds. why…??
here is my error=============================================
NullReferenceException: Object reference not set to an instance of an object
BasketController.OnTriggerEnter (UnityEngine.Collider other) (at Assets/BasketController.cs:16)
cs: 16 maybe this.appleSE is wrong, but i checked thousands and i think it’s not wrong…
here is my code=============================================
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BasketController : MonoBehaviour
{
public AudioClip appleSE;
public AudioClip bombSE;
AudioSource aud;
void start(){
this.aud=GetComponent<AudioSource>();
}
void OnTriggerEnter(Collider other) {
if(other.gameObject.tag=="Apple"){
this.aud.PlayOneShot(this.appleSE); -----------------------cs:16 -- error point
} else {
this.aud.PlayOneShot(this.bombSE);
}
Destroy(other.gameObject);
}
// Update is called once per frame
void Update()
{
if(Input.GetMouseButtonDown(0)){
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit,Mathf.Infinity)){
float x=Mathf.RoundToInt(hit.point.x);
float z=Mathf.RoundToInt(hit.point.z);
transform.position=new Vector3(x,0,z);
}
}
}
}