У меня маленькая проблема;Я пытаюсь разработать свою собственную игру по бесконечным прыжкам.Вот почему я создал вражеский тип, который может стрелять небольшими снарядами.Каждый раз, когда он стреляет, должен звучать звук, но это не так.Отладка: «Невозможно воспроизвести отключенный источник звука».
Изначально это не сработало только для префабов, но недавно это не сработало и для первого, оригинального оппонента.(Я вроде как что-то напутал в коде)
Каждое предлагаемое решение мне очень помогло бы:)
Я знаю, есть некоторые посты на эту тему, но ни один из них не имеетпомогло еще ...
Какой-то грязный код:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class FlyingEnemy : MonoBehaviour {
public float startTimeBtwShots;
private float timeBtwShots;
private Vector3 spawnPoint;
public AudioSource shot;
public Animator animator;
private float flyingSpeed;
private float turningPoint;
private bool moving;
public GameObject projectile;
public GameObject player;
void Start ()
{
turningPoint = Mathf.Abs(transform.position.x);
flyingSpeed = 0.008f;
timeBtwShots = startTimeBtwShots;
moving = true;
shot.enabled = true;
}
void Update ()
{
//Ignore, moves enemy from left to right and back
if (moving)
{
transform.position = new Vector3(transform.position.x + flyingSpeed, transform.position.y, transform.position.z);
}
if (transform.position.x >= turningPoint || transform.position.x <= turningPoint * -1)
{
flyingSpeed *= -1;
transform.position = new Vector3(transform.position.x + flyingSpeed, transform.position.y, transform.position.z);
if (flyingSpeed <= 0) transform.eulerAngles = new Vector3(0, 180, 0);
else if (flyingSpeed >= 0) transform.eulerAngles = new Vector3(0, 0, 0);
}
//Important part: projectile gets spawn and a bit earlier the sound should be played...
if (timeBtwShots <= 0)
{
spawnPoint = transform.position;
spawnPoint.y -= 0.35f;
Instantiate(projectile, spawnPoint, Quaternion.identity);
timeBtwShots = startTimeBtwShots;
animator.SetBool("Shooting", false);
}
else
{
timeBtwShots -= Time.deltaTime;
if (timeBtwShots <= 0.3)
{
shot.volume = 1;
shot.Play();
}
if (timeBtwShots <= 0.6)
{
animator.SetBool("Shooting", true);
}
}
if (player.transform.position.y >= transform.position.y + 5.5f)
{
Destroy(gameObject);
}
}
}
Заранее спасибо !!
Эго |Jakob