C#: Changing current position of an object in y.

Hi I’m new to Unity and I was managing to disappear objects making sounds when collided. I found scripts where the object gets destroyed but only when the sound ends, so what I want is to immediately disappear I thought to translate it to a new position in y where you can no longer see it but can still hear the sound.

Sorry if my code is a mess but I’m still learning and the problem is that what I have here does what I want except that position x and z get reset instead of staying in their current position. It would be great if someone could help me out, thanks a lot!

using UnityEngine;
using System.Collections;

public class DisplayScore : MonoBehaviour {

	public string text;
	public bool display = false;
	public AudioClip sound;
	float move = 10;
	void OnTriggerEnter(Collider iCollide)
		if(iCollide.transform.name == "First Person Controller"){
			display = true;
			transform.position = new Vector3(transform.position.x,

transform.position.y - move);

			Destroy (gameObject, 4);    
	void OnTriggerExit(Collider uCollide)
		if(uCollide.transform.name == "First Person Controller"){
			display = false; 
	void OnGUI(){
		if(display == true){
			string text = GameVariables.score.ToString();
			GUI.Box (new Rect(400,50,100,30), text);    			

Before destroy, play it with this:

AudioSource.PlayClipAtPoint(sound, transform.position);

Now you can destroy, without Stop the sound.