Unity3D - GUIText在与对象碰撞时不显示

时间:2013-10-11 20:02:37

标签: user-interface text unity3d character unityscript

我一直在网上关注this文章并交换了一些名称和标签,但我似乎没有看到任何文字出现在屏幕上......

这是我的PlayerCollision脚本:

#pragma strict

function Update () {

}

function OnControllerColliderHit(hit : ControllerColliderHit){
    if(hit.gameObject.tag == "Collider"){
        ShowMessage.message = "HELLO WORLD";
        ShowMessage.turnTextOn = true;
    }
}

这是我的ShowMessage脚本:

#pragma strict

static var turnTextOn : boolean = false;
static var message : String;
private var timer : float = 0.0;

function Start(){
    timer = 0.0;
    turnTextOn = false;
    guiText.text = "";
}

function Update () {
    if(turnTextOn){
        guiText.enabled = true;
        guiText.text = message;
        timer += Time.deltaTime;
    }
    if(timer >= 5){
        turnTextOn = false;
        guiText.enabled = false;
        timer = 0.0;
    }
}

我已将ShowMessage脚本链接到我的GUIText对象,并已将PlayerCollision脚本与CharacterController相关联。还有一个带有Collision标签的盒子对撞机对象我也有GUIText,只是为了排除它。

任何人都知道出了什么问题?感谢

2 个答案:

答案 0 :(得分:0)

标记应为"Collider"而不是"Collision",因为if(hit.gameObject.tag == "Collider")

答案 1 :(得分:0)

问题解决了。事实证明我勾选了isTrigger来阻止碰撞被发现。这给出了角色无法穿过物体的问题。我所做的是勾选isTrigger选项并将OnControllerColliderHit(hit : ControllerColliderHit)更改为OnTriggerEnter (obj : Collider)