Ajuda para controlar luz, Unity 5
2 participantes
Página 1 de 1
Ajuda para controlar luz, Unity 5
Gostaria de saber se tem alguma maneira de controlar a intensidade de uma luz, queria fazer um esquema que cada vez que um inimigo colidisse com o player, a luz "perdesse" intensidade por um tempo. Os scripts de colisão eu já tenho pois consigo monitorar a vida do player cada vez que a uma colisão entre ambos.
print do jogo:
http://prntscr.com/aum0rc
acho que não da para perceber no print, mas ha umas "sombras" que são os inimigos.
aqui esta o script para a colisão do inimigo
e aqui o do player
eu ate tentei fazer umas coisas usando um script referencia, mas não manjo muito de programação :D .
desde já agradeço.
print do jogo:
http://prntscr.com/aum0rc
acho que não da para perceber no print, mas ha umas "sombras" que são os inimigos.
aqui esta o script para a colisão do inimigo
- Código:
using UnityEngine;
using System.Collections;
public class enemyBehaviour : MonoBehaviour {
public float speed;
public GameObject enemy;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.position += new Vector3 (0, speed, 0) * Time.deltaTime;
if (transform.position.y < -4.70f) {
enemy.SetActive (false);
}
}
void OnTriggerEnter2D (Collider2D col){
enemy.SetActive (false);
playerControll.vida = playerControll.vida - 1;
//tentativa de modificar a luz
//playerControll.checkLt = playerControll.checkLt == true;
// Debug.Log ("Vida -");
}
}
e aqui o do player
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class playerControll : MonoBehaviour {
public GameObject player;
public float maxheight;
public float minheight;
public float speed;
public static int pontos;
public static int vida;
private int maxVida = 10;
public Text pontostext;
public Text vidatext;
// Controle da Luz
//public float duration = 0.1F;
//public Light lt;
//public static bool checkLt = false;
// Use this for initialization
void Start () {
pontos = 0;
vida = 5;
lt = GetComponent<Light>();
}
// Update is called once per frame
void Update () {
float translation = Input.GetAxis ("Horizontal") * speed;
player.transform.Translate (translation, 0, 0);
if (player.transform.position.x > maxheight) {
player.transform.position = new Vector2 (maxheight, 0);
}
if (player.transform.position.x < minheight) {
player.transform.position = new Vector2 (minheight, 0);
}
if (vida > maxVida) {
vida = 10;
}
if (vida <= 0) {
SceneManager.LoadScene (1);
}
// Debug.Log("pontos: " + pontos);
//Debug.Log ("vida: " + vida);
pontostext.text = "Lights:" + pontos;
vidatext.text = "Vida:" + vida;
// Controle da Luz
//if (checkLt == true ){
//float phi = Time.time / duration * 2 * Mathf.PI;
//float amplitude = Mathf.Cos (phi) * 0.1F + 0.1F;
//lt.intensity = amplitude - 2;
}
}
}
eu ate tentei fazer umas coisas usando um script referencia, mas não manjo muito de programação :D .
desde já agradeço.
HeberDN- Iniciante
- PONTOS : 3174
REPUTAÇÃO : 1
Respeito as regras :
Re: Ajuda para controlar luz, Unity 5
Bom o que vc tem que fazer basicamente e pegar a light e mexer no intensity
ex:
ex:
- Código:
using UnityEngine;
using System.Collections;
public class enemyBehaviour : MonoBehaviour
{
public float speed;
public GameObject enemy;
public Light m_light;
void Start()
{
}
void Update()
{
transform.position += new Vector3(0, speed, 0) * Time.deltaTime;
if (transform.position.y < -4.70f)
{
enemy.SetActive(false);
}
}
void OnTriggerEnter2D(Collider2D col)
{
enemy.SetActive(false);
playerControll.vida = playerControll.vida - 1;
StartCoroutine(LightIntensity(0.1f, 3));
}
IEnumerator LightIntensity(float intensity, float timeToNormalize)
{
m_light.intensity = intensity;
yield return new WaitForSeconds(timeToNormalize);
m_light.intensity = 1;
}
}
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: Ajuda para controlar luz, Unity 5
a sim obrigado, entendo e dentro da variável m_light coloco o objeto light, só tenho que fazer isso no player agora. Vlw :D
HeberDN- Iniciante
- PONTOS : 3174
REPUTAÇÃO : 1
Respeito as regras :
Tópicos semelhantes
» [Ajuda] Preciso de ajuda para controlar e alterar o valor de Lerp de varios objetos
» Ajuda - Reformule para Unity 5.3
» [Ajuda] Script para Unity 5
» Ajuda de Blender para Unity
» Conversor de movimento do Unity para o MMD [Ajuda]
» Ajuda - Reformule para Unity 5.3
» [Ajuda] Script para Unity 5
» Ajuda de Blender para Unity
» Conversor de movimento do Unity para o MMD [Ajuda]
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos