Ошибки синтаксиса Unity LaserSound не воспроизводится при нажатии пробела? - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь заставить вражеский корабль стрелять в игрока, помеченного игроком корабля. Я получаю одну ошибку: Assets / Scripts / EnemyAttack.cs (11,13): ошибка CS0246: Не удалось найти имя типа или пространства имен `EnemyAtack ',Вам не хватает ссылки на сборку?Я пытался создать класс для атаки врага, но не получилось.Любые отзывы приветствуются.

 using System;
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;


 public class EnemyAttack : MonoBehaviour
 {
[SerializeField] GameObject[] enemyGuns;

// Start is called before the first frame update
void Start()
{
    AddSphereCollider();
}

private void AddSphereCollider()
{
Collider sphereCollider = gameObject.AddComponent<SphereCollider>();
    sphereCollider.isTrigger = false;
}

void OnCollisionEnter(Collision col)
{
    if (col.gameObject.name == "player")
    {
        Destroy(col.gameObject);
    }
}
}

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Измените

[SerializeField] private AudioClip LaserSound;

на

[SerializeField] private AudioClip laserSound;

, и это должно работать.«AudioClip LaserSound» в основном эквивалентен «Classname AnotherClassname»

0 голосов
/ 13 февраля 2019

Stop () и PlayOneShot () являются функциями, связанными с классом AudioSource.

AudioSources используются для воспроизведения AudioClips, в этом случае вам необходимо добавить ссылку на AudioSource к вашему монобихевому поведению и добавить AudioSource вваш префаб, затем свяжите ссылку и вызовите ваши функции PlayOneShot () и Stop () на AudioSource вместо этого.

Другая проблема заключается в том, что ваш AudioClip называется LaserSound, а ваш Monobehaviour также называется LaserSound.Переименуйте одно или другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...