语句中的表达式只能针对其副作用执行

时间:2017-01-12 21:10:55

标签: unity3d unityscript

我对这个代码的统一有一个相当不寻常的问题,我不断收到错误“语句中的表达式只能针对它们的副作用执行”,我绕着网络搜索问题,但所有的答案不同的是,给出错误的行是(47,44),这是AnimObj.GetComponent.<Animation>().Play提前感谢帮助-_-;

var CrossObject : GameObject;
var MechanicsObject : GameObject;
var ClipCount : int;
var ReserveCount : int;
var ReloadAvailable : int;
var AnimObj : GameObject;
var ScriptObj : GameObject;


function Update () {
    ClipCount = GlobalAmmo.LoadedAmmo;
    ReserveCount = GlobalAmmo.CurrentAmmo;

    if (ReserveCount == 0) {
        ReloadAvailable = 0;
    } else {
        ReloadAvailable = 10 - ClipCount;
    }

    if (Input.GetButtonDown("Reload")) {
        if (ReloadAvailable >=1) {
            if (ReserveCount <= ReloadAvailable) {
                GlobalAmmo.LoadedAmmo += ReserveCount;
                GlobalAmmo.CurrentAmmo -= ReserveCount;
                ActionReload();
            } else {
                GlobalAmmo.LoadedAmmo += ReloadAvailable;
                GlobalAmmo.CurrentAmmo -= ReloadAvailable;
                ActionReload();
            }
        }
        EnableScripts();
    }
}

function EnableScripts () {
    yield WaitForSeconds(1);
    ScriptObj.GetComponent("Fire").enabled=true;
    CrossObject.SetActive(true);
    MechanicsObject.SetActive(true);
}

function ActionReload () {
    ScriptObj.GetComponent("Fire").enabled=false;
    CrossObject.SetActive(false);
    MechanicsObject.SetActive(false);
    AnimObj.GetComponent.<Animation>().Play;
}

1 个答案:

答案 0 :(得分:1)

在Unity中,Animation.Play()是一个函数,而不是一个变量。您通过在Play结束时不包括()来将其作为变量进行访问。

应该是:

AnimObj.GetComponent.<Animation>().Play();