[RESOLVIDO] Como acesso essa variável através de outro script??
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Como acesso essa variável através de outro script??
Fala gurizada,
Como faço pra acessar esse script de effects da unity que vai na câmera, pra fazer o effeito de blur (desfoque) e mudo o valor dela em modo crescente tipo 1,2,3,4 em 2 seg.
Segue o script do blur: (pra funcionar você deve ter o standard assets, pois tem os shadders e tal..)
ps: já deixei a variável public static int blurIterations = 2; em static pra tentar acessar mas não consigo.
É através desse que quero mudar, quando o tempo acaba
Obrigado!!
Como faço pra acessar esse script de effects da unity que vai na câmera, pra fazer o effeito de blur (desfoque) e mudo o valor dela em modo crescente tipo 1,2,3,4 em 2 seg.
Segue o script do blur: (pra funcionar você deve ter o standard assets, pois tem os shadders e tal..)
ps: já deixei a variável public static int blurIterations = 2; em static pra tentar acessar mas não consigo.
- Código:
using System;
using UnityEngine;
namespace UnityStandardAssets.ImageEffects
{
[ExecuteInEditMode]
[RequireComponent (typeof(Camera))]
[AddComponentMenu ("Image Effects/Blur/Blur (Optimized)")]
public class BlurOptimized : PostEffectsBase
{
[Range(0, 2)]
public int downsample = 1;
public enum BlurType {
StandardGauss = 0,
SgxGauss = 1,
}
[Range(0.0f, 10.0f)]
public float blurSize = 3.0f;
[Range(1, 4)]
public static int blurIterations = 2;
public BlurType blurType= BlurType.StandardGauss;
public Shader blurShader = null;
private Material blurMaterial = null;
public override bool CheckResources () {
CheckSupport (false);
blurMaterial = CheckShaderAndCreateMaterial (blurShader, blurMaterial);
if (!isSupported)
ReportAutoDisable ();
return isSupported;
}
public void OnDisable () {
if (blurMaterial)
DestroyImmediate (blurMaterial);
}
public void OnRenderImage (RenderTexture source, RenderTexture destination) {
if (CheckResources() == false) {
Graphics.Blit (source, destination);
return;
}
float widthMod = 1.0f / (1.0f * (1<<downsample));
blurMaterial.SetVector ("_Parameter", new Vector4 (blurSize * widthMod, -blurSize * widthMod, 0.0f, 0.0f));
source.filterMode = FilterMode.Bilinear;
int rtW = source.width >> downsample;
int rtH = source.height >> downsample;
// downsample
RenderTexture rt = RenderTexture.GetTemporary (rtW, rtH, 0, source.format);
rt.filterMode = FilterMode.Bilinear;
Graphics.Blit (source, rt, blurMaterial, 0);
var passOffs= blurType == BlurType.StandardGauss ? 0 : 2;
for(int i = 0; i < blurIterations; i++) {
float iterationOffs = (i*1.0f);
blurMaterial.SetVector ("_Parameter", new Vector4 (blurSize * widthMod + iterationOffs, -blurSize * widthMod - iterationOffs, 0.0f, 0.0f));
// vertical blur
RenderTexture rt2 = RenderTexture.GetTemporary (rtW, rtH, 0, source.format);
rt2.filterMode = FilterMode.Bilinear;
Graphics.Blit (rt, rt2, blurMaterial, 1 + passOffs);
RenderTexture.ReleaseTemporary (rt);
rt = rt2;
// horizontal blur
rt2 = RenderTexture.GetTemporary (rtW, rtH, 0, source.format);
rt2.filterMode = FilterMode.Bilinear;
Graphics.Blit (rt, rt2, blurMaterial, 2 + passOffs);
RenderTexture.ReleaseTemporary (rt);
rt = rt2;
}
Graphics.Blit (rt, destination);
RenderTexture.ReleaseTemporary (rt);
}
}
}
É através desse que quero mudar, quando o tempo acaba
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Cronometro : MonoBehaviour {
//public float VidaDoPersonagem;
//public Image ImageBarra;
//public int VidaCheia;
public static float tempo = 20;
//public Animator anime;
public Text tempoText;
//private float tempoInicial;
public GameObject glassPontos;
public GameObject Tempo_text;
public GameObject glass;
public GameObject pontuacao;
public GameObject parente;
public GameObject GameOverText;
public GameObject tempo_numero;
public GameObject focosDestruidos;
public GameObject melhor;
public GameObject Menu;
public GameObject Restart;
public GameObject pause_button;
void Awake (){
//anime = GetComponent<Animator> ();
//ImageBarra.type = Image.Type.Filled;
//ImageBarra.fillMethod = Image.FillMethod.Horizontal;
//ImageBarra.fillOrigin = (int)Image.OriginHorizontal.Left;
//ImageBarra.fillAmount = 0;
}
void Start () {
// VidaDoPersonagem = VidaCheia;
// tempoInicial = tempo;
tempo = 20;
parente = GameObject.FindWithTag ("Parente");
}
void Update(){
// if (VidaDoPersonagem >= VidaCheia) {
// VidaDoPersonagem = VidaCheia;
//
// } else if (VidaDoPersonagem >= 0) {
// VidaDoPersonagem = 0;
// }
tempo -= Time.deltaTime*1.5f;
if (tempo < 0.1f) {
tempo = 0;
parente.GetComponent<TesteTouch> ().enabled = false;
pontuacao.SetActive (false);
glassPontos.SetActive (false);
Tempo_text.SetActive (false);
glass.SetActive (true);
focosDestruidos.SetActive (true);
GameOverText.SetActive (true);
melhor.SetActive (true);
Menu.SetActive (true);
pause_button.SetActive (false);
Restart.SetActive (true);
tempo_numero.SetActive (false);
}
tempoText.text = "" + Mathf.Round(tempo);
//ImageBarra.fillAmount = Mathf.Clamp ((tempo / tempoInicial), 0.0f, 1.0f);
}
}
Obrigado!!
Hardencio- Avançado
- PONTOS : 3481
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: [RESOLVIDO] Como acesso essa variável através de outro script??
No seu script tente importar o namespace dos Image Effects:
- Código:
using UnityStandardAssets.ImageEffects;
Re: [RESOLVIDO] Como acesso essa variável através de outro script??
Cara, consegui. Obrigado!!. Só queria sabe como vou aumentando esse valor em ordem crescente tipo 1,2,3,4 num tempo, pro efeito ir aparecendo de leve e depois mais forte.
Alguém sabe?
Alguém sabe?
Hardencio- Avançado
- PONTOS : 3481
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Re: [RESOLVIDO] Como acesso essa variável através de outro script??
Eu não manjo muito de efeito no Unity não, mas a base do script é essa:
O "addToEffect" é o valor que tá sendo aumentado, e vai ser utilizado pra regular o efeito.
Flws
- Código:
public float timeToPlus = 1; //De quantos em quantos segundos vai acrescentar
public float maxPlusValue = 4; //Valor maximo em que a variavel pode chegar
public bool startPlus = true; //Quando ela ficar true, vai começar a acrescentar
private float currentTimeToPlus; //Cronometro
private float addToEffect; //Variavel que vai adicionar as modificações ao efeito
void Update(){
if(startPlus)
{
currentTimeToPlus += Time.deltaTime;
if(currentTimeToPlus >= timeToplus)
{
currentTimeToPlus = 0;
addToEffect ++;
}
}
if(addToEffect == maxPlusValue)
startPlus = false;
}
O "addToEffect" é o valor que tá sendo aumentado, e vai ser utilizado pra regular o efeito.
Flws
George Lucas Vieira- Avançado
- PONTOS : 3153
REPUTAÇÃO : 132
Idade : 21
Áreas de atuação : Programação, Modelagem e Animação.
Respeito as regras :
Re: [RESOLVIDO] Como acesso essa variável através de outro script??
Cara é isso ai mesmo!! Muito obrigado.. Só fiz algumas alterações e funcionou!
Hardencio- Avançado
- PONTOS : 3481
REPUTAÇÃO : 25
Áreas de atuação : Advergames and Casual Games
Respeito as regras :
Tópicos semelhantes
» Como acesso uma variável em outro script?
» [RESOLVIDO] Tem como Um Script rodar antes de Outro
» Como acessar variável de um script usando outro script (Entre e entenda).
» [RESOLVIDO] como setar uma variável Int através do MouseScroll?
» [RESOLVIDO] Não consigo ativar/desativar um script através de outro
» [RESOLVIDO] Tem como Um Script rodar antes de Outro
» Como acessar variável de um script usando outro script (Entre e entenda).
» [RESOLVIDO] como setar uma variável Int através do MouseScroll?
» [RESOLVIDO] Não consigo ativar/desativar um script através de outro
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos