我一直在关注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,只是为了排除这一点。
有人知道哪里出问题了吗?谢谢
发布于 2013-10-12 04:34:41
标记应该是"Collider"而不是"Collision",因为if(hit.gameObject.tag == "Collider")
发布于 2013-10-12 05:42:58
问题解决了。事实证明,我勾选了isTrigger,这阻止了冲突被检测到。这就产生了角色不能在对象中移动的问题。我所做的是勾选isTrigger选项并将OnControllerColliderHit(hit : ControllerColliderHit)更改为OnTriggerEnter (obj : Collider)
https://stackoverflow.com/questions/19326319
复制相似问题