-1

我有带有 3d 文本的菜单。主相机有我想在点击文本后播放的动画。每个文本都有自己的刚体和对撞机。我做了这个代码:

#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;
                }
        }
    }
}

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

4

1 回答 1

0

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

hit.rigidbody != null

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

现在它工作正常。

于 2014-12-29T19:24:38.353 回答