我有三维文字菜单。主摄像头有动画,我想点击文字后播放。每个文本都有自己的刚体和对撞机。我做了这个代码:
#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刚体。
答案 0 :(得分:0)
我解决了我的问题。我换了
hit.rigidbody != null
与
hit.rigidbody.gameObject.tag == "StartGame" //object's tag here
现在它运作正常。