虽然是的,有很多这样的问题都有答案,但我看了他们,他们没有我想要的答案,这是我的剧本:
using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour {
public GameObject flash;
// Use this for initialization
void Start () {
flash.SetActive(false);
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0) && GameObject.Find("1911").animation.isPlaying == false)
{
Debug.DrawRay(transform.position, transform.forward * 40, Color.red);
flash.SetActive(true);
GameObject.Find("1911").animation.Play();
}
}
}
分配给flash的对象是一个空对象,它有一个Halo,所以它会发出一个枪口闪光效果,但SetActive
不会在每次我玩的情况下关闭它,它仍然是活跃的,在那里,枪仍然是动画,雷仍然画,闪光是唯一不起作用的东西。就像我上面提到的那样,我尝试了多种不同的东西,并阅读了多个不同的问题,但他们都没有答案。
答案 0 :(得分:1)
可能GameObject
已停用且GameObject.Find
无法找到disabled
GameObject
。你需要缓存它
public class Player : MonoBehaviour {
public GameObject flash;
GameObject cachedObj;
// Use this for initialization
void Start () {
flash.SetActive(false);
cachedObj = GameObject.Find("1911");
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0) && cachedObj.animation.isPlaying == false)
{
Debug.DrawRay(transform.position, transform.forward * 40, Color.red);
flash.SetActive(true);
cachedObj.animation.Play();
}
}
}
答案 1 :(得分:0)
我发现了问题,我使用的是与我应该使用的不同的对象,我在事故中使用了一个立方体,所以这只是一个愚蠢的小错误