C# 在统一中暂时隐藏图像的视觉

C# 在统一中暂时隐藏图像的视觉,c#,unity3d,arkit,C#,Unity3d,Arkit,我将在受到攻击时启用血腥屏幕,然后解散它两秒钟 我尝试的第一种方法是使用SetActive true/flase 它可以工作一次,但再也不能工作了 我发现这个问题是由谷歌提出的,似乎该功能会禁用该组件的所有功能 所以我找到了第二种方法,就是使用Image类来实现这一点 但我不确定我使用的方式是否正确 错误消息:对象引用未设置为对象的实例 第一种方式工作一次 第二种方法不起作用 对不起,我的英语不太清楚 我的对象喜欢什么 有这么多的方式做血腥的屏幕 一, 第一步 制作一个纹理数组,然后将所有纹理放

我将在受到攻击时启用血腥屏幕,然后解散它两秒钟

我尝试的第一种方法是使用SetActive true/flase

它可以工作一次,但再也不能工作了

我发现这个问题是由谷歌提出的,似乎该功能会禁用该组件的所有功能

所以我找到了第二种方法,就是使用Image类来实现这一点

但我不确定我使用的方式是否正确

错误消息:对象引用未设置为对象的实例

第一种方式工作一次

第二种方法不起作用

对不起,我的英语不太清楚

我的对象喜欢什么


有这么多的方式做血腥的屏幕

一,

第一步

制作一个纹理数组,然后将所有纹理放在那里

步骤2

在您的OnTiggerEnter或OnCollisionCenter或任何您想要的函数上,尝试实现此代码

Texture[] arrayOfTexture = new Texture

 foreach(Texture textures in arrayOfTexture){
    //set the alpha here from 1-0/0-1
 }
二,

你也可以在一个更新函数中完成它,然后把它放在一个计时器上,你可以像这样做

float timer = 10f;

void Update(){
   timer -= time.DeltaTime;
   if(timer < 1){
      //reset timer here

   }else{
      //do the alpha thing here
   }
}

 void ResetTimer(){
    timer = 10f;
 }
Texture[] arrayOfTexture = new Texture

 foreach(Texture textures in arrayOfTexture){
    //set the alpha here from 1-0/0-1
 }
float timer = 10f;

void Update(){
   timer -= time.DeltaTime;
   if(timer < 1){
      //reset timer here

   }else{
      //do the alpha thing here
   }
}

 void ResetTimer(){
    timer = 10f;
 }