Colocar paredes Invisíveis, Obstrução na visão da Camera
4 participantes
Página 1 de 1
Colocar paredes Invisíveis, Obstrução na visão da Camera
Ola pessoal, meu primeiro post aqui, como faço para colocar paredes invisíveis quando ela estiver obstruindo a visão da câmera, ou seja toda vez que um objeto estiver entre o player e a câmera este deverá ficar transparente
Re: Colocar paredes Invisíveis, Obstrução na visão da Camera
http://answers.unity3d.com/questions/44815/make-object-transparent-when-between-camera-and-pl.html
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Colocar paredes Invisíveis, Obstrução na visão da Camera
vlw Fagner vou adptar aqui ver se dar certo
Brennin- Iniciante
- PONTOS : 2608
REPUTAÇÃO : 1
Respeito as regras :
Re: Colocar paredes Invisíveis, Obstrução na visão da Camera
Nao consegui usar, tentei o script abaixo também nao deu certo, alguem com alguma dica
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class paredeTransparente : MonoBehaviour {
public Transform alvo;
public RaycastHit hitpoint = new RaycastHit();
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Physics.Linecast(transform.position, alvo.transform.position, out hitpoint))
{
Debug.DrawLine(transform.position, alvo.transform.position);
}
}
}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
este na camera
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class paredeTransparente : MonoBehaviour {
public Transform alvo;
public RaycastHit hitpoint = new RaycastHit();
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Physics.Linecast(transform.position, alvo.transform.position, out hitpoint))
{
Debug.DrawLine(transform.position, alvo.transform.position);
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class paredeTransparente : MonoBehaviour {
public Transform alvo;
public RaycastHit hitpoint = new RaycastHit();
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Physics.Linecast(transform.position, alvo.transform.position, out hitpoint))
{
Debug.DrawLine(transform.position, alvo.transform.position);
}
}
}
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
este na camera
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class paredeTransparente : MonoBehaviour {
public Transform alvo;
public RaycastHit hitpoint = new RaycastHit();
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Physics.Linecast(transform.position, alvo.transform.position, out hitpoint))
{
Debug.DrawLine(transform.position, alvo.transform.position);
}
}
}
Re: Colocar paredes Invisíveis, Obstrução na visão da Camera
Ok, mas esses 2 scripts não fazem nada, eles só debugam se tem algo no meio...
Você tem que em vez de debugar, setar o material do hit do Raycast como transparente
Você tem que em vez de debugar, setar o material do hit do Raycast como transparente
Re: Colocar paredes Invisíveis, Obstrução na visão da Camera
Ola marcos.. primeiramente parabenizar pelo seu trabalho cara...! ajuda demais em diversas questões!
então agora que vi que postei dois scripts iguais o segundo que vai no objeto a ficar transparente é o script abaixo: o anterio vai na camera
private paredeTransparente paredeTransScript;
private Renderer renderMaterial = new Renderer();
// Use this for initialization
void Start()
{
GameObject transp = GameObject.Find("Main Camera");
paredeTransScript = transp.GetComponent<paredeTransparente>();
renderMaterial = gameObject.GetComponent<Renderer>();
}
// Update is called once per frame
void Update()
{
Debug.Log(paredeTransScript.hitpoint);
for (int m = 0; m < renderMaterial.materials.Length; m++)
{
if (paredeTransScript.hitpoint.transform == transform)
{
if (renderMaterial.materials[m].color.a > 0.5f)
{
Color cor = renderMaterial.materials[m].color;
cor.a -= 0.02f;
renderMaterial.materials[m].color = cor;
}
}
else if (renderMaterial.materials[m].color.a < 1)
{
Color cor = renderMaterial.materials[m].color;
cor.a += 0.02f;
renderMaterial.materials[m].color = cor;
}
}
}
}
então agora que vi que postei dois scripts iguais o segundo que vai no objeto a ficar transparente é o script abaixo: o anterio vai na camera
private paredeTransparente paredeTransScript;
private Renderer renderMaterial = new Renderer();
// Use this for initialization
void Start()
{
GameObject transp = GameObject.Find("Main Camera");
paredeTransScript = transp.GetComponent<paredeTransparente>();
renderMaterial = gameObject.GetComponent<Renderer>();
}
// Update is called once per frame
void Update()
{
Debug.Log(paredeTransScript.hitpoint);
for (int m = 0; m < renderMaterial.materials.Length; m++)
{
if (paredeTransScript.hitpoint.transform == transform)
{
if (renderMaterial.materials[m].color.a > 0.5f)
{
Color cor = renderMaterial.materials[m].color;
cor.a -= 0.02f;
renderMaterial.materials[m].color = cor;
}
}
else if (renderMaterial.materials[m].color.a < 1)
{
Color cor = renderMaterial.materials[m].color;
cor.a += 0.02f;
renderMaterial.materials[m].color = cor;
}
}
}
}
Tópicos semelhantes
» NÃO CONSIGO COLOCAR TEXTURAS NAS PAREDES DAS CASAS!!!
» Como colocar manchas de sangue nas paredes ?
» Camera Visão noturna
» Diminuir campo visão da camera
» Como arrumar camera atravessando paredes?
» Como colocar manchas de sangue nas paredes ?
» Camera Visão noturna
» Diminuir campo visão da camera
» Como arrumar camera atravessando paredes?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos