Unity hit.rigidbody引用具体的gameObject

时间:2014-12-28 22:14:27

标签: unity3d unityscript gameobject

我有三维文字菜单。主摄像头有动画,我想点击文字后播放。每个文本都有自己的刚体和对撞机。我做了这个代码:

#pragma strict
import UnityEngine;
var object : GameObject;
var Run : AnimationPlay;
function start(){
Run = object.GetComponent(AnimationPlay);
}
function Update() {
    if (Input.GetMouseButtonDown(0)) {
        var hit: RaycastHit;
        var ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        if (Physics.Raycast(ray, hit)) {
            if (hit.rigidbody != null){
                Debug.Log("Start Game pushed");
                Run.action = true;
                }
        }
    }
}

开始游戏按钮和这一个:

#pragma strict
import UnityEngine;
var object : GameObject;
var Run : AnimationPlay2;
function start(){
Run = object.GetComponent(AnimationPlay2);
}
function Update() {
    if (Input.GetMouseButtonDown(0)) {
        var hit: RaycastHit;
        var ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        if (Physics.Raycast(ray, hit)) {
            if (hit.rigidbody != null){
                Debug.Log("Back pushed");
                Run.action2 = true;
                }
        }
    }
}

用于后退按钮。 问题是,无论我点击哪个刚体,两个动画都开始播放,这会产生奇怪的效果。我不知道如何引用具体的gameObject刚体。

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。我换了

hit.rigidbody != null

hit.rigidbody.gameObject.tag == "StartGame" //object's tag here

现在它运作正常。