how to change lockdoor Sound to open door sound when use the key to unlock door
//script door//
using UnityEngine; using System.Collections;
public class Door : MonoBehaviour {
public int index = -1;
bool open = false;
public float doorOpenAngle = 90f;
public float doorCloseAngle = 0f;
public float smooth = 2;
public AudioSource soundlock;
public AudioSource soundopen;
public AudioSource[] sounds;
// Use this for initialization
void Start () {
sounds = GetComponents<AudioSource> ();
soundlock = sounds [0];
soundopen = sounds [1];
}
// Update is called once per frame
void Update () {
if (open)
{
Quaternion targetRoatition = Quaternion.Euler(0, doorOpenAngle, 0); // สั่งให้วัตถุทำงาน //
transform.localRotation = Quaternion.Slerp(transform.localRotation, targetRoatition, Time.deltaTime * smooth); // สั่งให้วัตถุทำงาน //
}
else
{
Quaternion targetRoatition2 = Quaternion.Euler(0, doorCloseAngle, 0); // สั่งให้วัตถุทำงาน //
transform.localRotation = Quaternion.Slerp(transform.localRotation, targetRoatition2, Time.deltaTime * smooth); // สั่งให้วัตถุทำงาน //
}
}
public void action()
{
open = !open;
soundopen.GetComponent<AudioSource> ().Play ();
}
public void noaction()
{
soundlock.GetComponent<AudioSource> ().Play ();
}
}
// script interactive //
using UnityEngine; using System.Collections;
public class Interactive : MonoBehaviour {
GameObject mainCamera;
public float smooth;
public float distance;
public AudioClip keyPickup;
void Start () {
mainCamera = GameObject.FindWithTag("MainCamera");
}
void Update () {
Vector3 forward = transform.TransformDirection(Vector3.forward) * 3;
Debug.DrawRay(transform.position, forward, Color.green);
if (Input.GetKeyDown(KeyCode.E))
{
int x = Screen.width / 2;
int y = Screen.height / 2;
Ray ray = mainCamera.GetComponent<Camera>().ScreenPointToRay(new Vector3(x, y));
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 3))
{
if (hit.collider.gameObject.tag == "InteractDrawer") {
hit.collider.GetComponent<Drawer> ().action ();
} else if (hit.collider.gameObject.tag == "InteractDoor") {
Door doorScript = hit.collider.GetComponent<Door> ();
if (doorScript == null) return;
if (Inventory.key [doorScript.index] == true)
{
doorScript.action ();
}
if (Inventory.key [doorScript.index] == false)
{
doorScript.noaction ();
}
//hit.collider.GetComponent<Door>().action();
}
else if (hit.collider.gameObject.tag == "Key")
{
Inventory.key [hit.collider.GetComponent<Key> ().index] = true;
AudioSource.PlayClipAtPoint (keyPickup, hit.collider.transform.position);
Destroy (hit.collider.gameObject);
}
//script inventory//
using UnityEngine; using System.Collections;
public class Inventory : MonoBehaviour {
public static bool[] key = new bool[5];
// Use this for initialization
void Start () {
key[0] = true;
}
// Update is called once per frame
void Update () {
}
}
//script key//
using UnityEngine; using System.Collections;
public class Key : MonoBehaviour {
public int index = -1;
}
Comment