1
#pragma strict

static var charge : int = 0;
var collectSound : AudioClip;
//HUD
var hudCharge : Texture2D[];
var chargeHudGUI : GUITexture;
//Generator
var meterCharge : Texture[];
var meter : Renderer;
//Matches
private var haveMatches : boolean = false;
var matchGUIprefab : GUITexture;
private var matchGUI : GUITexture;
var fireEmitters : ParticleEmitter[];
var TextHints : GUIText;

function Start ()
{
    charge = 0;
}

function Update ()
{

}

function CellPickup()
{
    AudioSource.PlayClipAtPoint(collectSound, transform.position);
    charge++;
    chargeHudGUI.texture = hudCharge[charge];
    meter.material.mainTexture = meterCharge[charge];
    HUDon();
}

function HUDon()
{
    if(!chargeHudGUI.enabled)
    {
        chargeHudGUI.enabled = true;
    }
}

function MatchPickup()
{
    haveMatches = true;
    AudioSource.PlayClipAtPoint(collectSound, transform.position);
    var matchHUD : GUITexture = Instantiate(matchGUIprefab, Vector3(0.15,0.1,0),transform.rotation);
    matchGUI = matchHUD;
}

function OnControllerColliderHit(col : ControllerColliderHit)
{
    if(col.gameObject.name == "campfire")
    {
        if(haveMatches)
        {
            LightFire(col.gameObject);
        }

        else
        {
            TextHints.SendMessage("ShowHint", "i could use this campfire to signal for help... \n if only i could light it");
        }
    }
}

function LightFire(campfire : GameObject)
{
    fireEmitters = campfire.GetComponentsInChildren(ParticleEmitter);
    for(var emitter : ParticleEmitter in fireEmitters)
    {
        emitter.emit = true;
    }
    campfire.audio.Play();
    Destroy(matchGUI);
    haveMatches=false;
}

我是第一个遇到问题,说不能从源类型转换为目标类型,然后我添加了 pragma strict ,现在我在标题中收到错误,现在我正在写更多,因为可爱的网站认为那没有解释得够多了。

4

1 回答 1

0

好的,我不熟悉这种明显类型化的 javascript 变体,但假设它类似于其他 Java 系列语言并且具有 C 风格的强制转换,我会尝试以下方法LightFire

var emitters : Component[] = campfire.GetComponentsInChildren(ParticleEmitter);
for(var emitter : Component in fireEmitters)
{
    ((ParticleEmitter)emitter).emit = true;
}

如果这不是正确的语法,那么请了解如何进行向下转换。

于 2012-03-04T23:14:33.257 回答