【问题标题】:How to play audio directly in Unity?如何在 Unity 中直接播放音频?
【发布时间】:2018-02-02 20:50:46
【问题描述】:

这确实不应该那么困难,但我似乎无法在脚本中播放声音。

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

public class State1 : State {
    AudioClip clip = new AudioClip();

    public override void initialize(){
        Debug.Log ("StateRemoveBolts.initialize()");
        clip = Resources.Load<AudioClip>("Sounds/my_sound");
        AudioSource.PlayClipAtPoint (clip, Vector3(0));
    }
    public override void destroy(){}
    public override void update(StateMachine sm){}
}

我收到此错误:

错误 CS0119:表达式表示 type', where avariable',应为 value' ormethod 组'

【问题讨论】:

  • 错误在哪一行?

标签: unity3d


【解决方案1】:

Vector3(0) 不是有效代码。

你要么想要:

  • Vector3.Zero 用于引用零向量(如 Math.PI

或者

  • new Vector3(0,0,0)创建一个

【讨论】:

  • Vector3(0,0,0) 有同样的错误。错误发生在 AudioSource.playclipatpoint() 行我可以通过执行 getComponent 使代码工作,但它应该可以在文档中不这样做的情况下工作。
【解决方案2】:

正如 Draco 所说,Vector3(0) 无效,Vector3(0, 0, 0) 也无效。 您想要的是使用 new 关键字,否则,Unity 认为您在尝试为它提供一个变量类型,而它需要一个实际的变量或值。

如果你去掉(0),你会得到同样的错误,所以你放在括号里的内容无关紧要,你也需要使用new关键字,它告诉编译器调用Vector3构造函数。

因为看起来你想要全零,我会做Vector3.Zero

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多