【问题标题】:Unity3D - GUIText Does Not Show On Collision With ObjectUnity3D - GUIText 在与对象碰撞时不显示
【发布时间】:2013-10-20 00:23:55
【问题描述】:

我一直在网上关注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,只是为了排除这种情况。

有人知道什么是错的吗?谢谢

【问题讨论】:

  • 在 OnControllerColliderHit 的 if 语句中放置一个 print("hit");看看它是否真的被触发了
  • 您是否将与您碰撞的对象标记为“Collider”?
  • 您还必须在标记对象上添加Box Collider

标签: user-interface text unity3d character unityscript


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    问题解决了。原来我勾选了isTrigger,它阻止了碰撞被检测到。这产生了角色无法穿过物体的问题。我所做的是勾选isTrigger 选项并将OnControllerColliderHit(hit : ControllerColliderHit) 更改为OnTriggerEnter (obj : Collider)

    【讨论】:

      猜你喜欢
      • 2018-12-11
      • 1970-01-01
      • 2022-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      相关资源
      最近更新 更多