[RESOLVIDO]Fazer um laser que se estende
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO]Fazer um laser que se estende
boa tarde a todos!
queria fazer um laser que se estende como é feito nesse site aqui:
https://steredenn-game.tumblr.com/post/98397504410/steredenn-making-an-expandable-laser
fui fazer esse laser, porem na vertical, mas não está ficando do jeito que está lá no resultado final.
e mais, eu queria colocar um collider no laser para que qualquer objeto que colidir seja destruido, mas se eu coloco um collider estraga tudo.
alguem sugere outro script que faça esse mesmo efeito?
quero fazer a mesma coisa desse laser, se nao tem nada na frente dele ele estende, se ele encontra um obstaculo ele pára e cria o efeito hit final.
quero tambem que o laser vai aumentando e diminuindo conforme o obstaculo vai empurrando o laser ou se afastando.
mas que tudo isso funcione com um collider no laser
queria fazer um laser que se estende como é feito nesse site aqui:
https://steredenn-game.tumblr.com/post/98397504410/steredenn-making-an-expandable-laser
fui fazer esse laser, porem na vertical, mas não está ficando do jeito que está lá no resultado final.
e mais, eu queria colocar um collider no laser para que qualquer objeto que colidir seja destruido, mas se eu coloco um collider estraga tudo.
alguem sugere outro script que faça esse mesmo efeito?
quero fazer a mesma coisa desse laser, se nao tem nada na frente dele ele estende, se ele encontra um obstaculo ele pára e cria o efeito hit final.
quero tambem que o laser vai aumentando e diminuindo conforme o obstaculo vai empurrando o laser ou se afastando.
mas que tudo isso funcione com um collider no laser
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: [RESOLVIDO]Fazer um laser que se estende
Poste algum print de como está o seu laser. O tutorial está bem completo, não consigo pensar em algo que possa estar dando errado, e sobre destruir o objeto, por que você precisa de um collider pra isso? você pode apenas usar o hit do raycast (que também é mostrado no tutorial).
Madness- Designer
- PONTOS : 3610
REPUTAÇÃO : 222
Áreas de atuação : Designer
Iniciante C++
Quase um programador C#
Respeito as regras :
Re: [RESOLVIDO]Fazer um laser que se estende
um video vai ficr melhor para mostrar
o laser começa funcionando mas quando ele encontra o anteparo ele diminui muito ao inves de ficar colado no anteparo. e o efeito do hit também vai lá para baixo como vc pode ver.
o script ta desse jeito
o que tem de errado?
o laser começa funcionando mas quando ele encontra o anteparo ele diminui muito ao inves de ficar colado no anteparo. e o efeito do hit também vai lá para baixo como vc pode ver.
o script ta desse jeito
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class LaserScript : MonoBehaviour {
[Header("Laser pieces")]
public GameObject laserStart;
public GameObject laserMiddle;
public GameObject laserEnd;
private GameObject start;
private GameObject middle;
private GameObject end;
void Update() {
// Create the laser start from the prefab
if (start == null) {
start = Instantiate(laserStart) as GameObject;
start.transform.parent = this.transform;
start.transform.localPosition = Vector2.zero;
}
// Laser middle
if (middle == null) {
middle = Instantiate(laserMiddle) as GameObject;
middle.transform.parent = this.transform;
middle.transform.localPosition = Vector2.zero;
}
// Define um tamanho "infinito", não muito grande, mas o suficiente para sair da tela
float maxTamanhoLaser = 130f;
float atualTamanhoLaser = maxTamanhoLaser;
// Raycast at the right as our sprite has been design for that
Vector3 direcaoLaser = this.transform.up;
RaycastHit2D hit = Physics2D.Raycast(this.transform.position, direcaoLaser, maxTamanhoLaser);
if (hit.collider != null) {
// Nós tocamos alguma coisa!
// -- Pega o comprimento do laser
atualTamanhoLaser = Vector2.Distance(hit.point, this.transform.position);
// -- Crie o sprite 'end'
if (end == null) {
end = Instantiate(laserEnd) as GameObject;
end.transform.parent = this.transform;
end.transform.localPosition = Vector2.zero;
}
}
else {
// Nada bateu
// -- Não há mais end
if (end != null) {
Destroy(end);
}
}
// Coloque coisas
// -- Reúna alguns dados
float startLarguraSprite = start.GetComponent<Renderer>().bounds.size.y;
float endLarguraSprite = 0f;
if (end != null) {
endLarguraSprite = end.GetComponent<Renderer>().bounds.size.y;
}
// -- o 'middle' está após o 'start' e, como ele tem um pivô central, tem um tamanho de metade do laser (menos start e end)
middle.transform.localScale = new Vector3(middle.transform.localScale.x, atualTamanhoLaser - startLarguraSprite, middle.transform.localScale.z);
middle.transform.localPosition = new Vector2(0f, (atualTamanhoLaser / 9.51f));
// End?
if (end != null) {
end.transform.localPosition = new Vector2(0f, atualTamanhoLaser);
}
}
}
o que tem de errado?
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: [RESOLVIDO]Fazer um laser que se estende
marcos valeu pela indicação!
meu projeto é 2D. fiz usando esse script só que o laser está indo no eixo z então eu mudei o transform. forward para transform.up e mudou para o eixo y
mas ele nao tá batendo no anteparo, tá passando direto como na imagem abaixo.
e conforme eu movimento o Detector o laser tem hora que fica com uma parte mais grossa que a outra como na imagem
eu queria ao inves de usar essa linha vermelha usar um sprite ao meu gosto alterando o tamanho dele conforme tenha ou nao um obstaculo na frente dele.
o que devo alterar no script?
meu projeto é 2D. fiz usando esse script só que o laser está indo no eixo z então eu mudei o transform. forward para transform.up e mudou para o eixo y
mas ele nao tá batendo no anteparo, tá passando direto como na imagem abaixo.
e conforme eu movimento o Detector o laser tem hora que fica com uma parte mais grossa que a outra como na imagem
eu queria ao inves de usar essa linha vermelha usar um sprite ao meu gosto alterando o tamanho dele conforme tenha ou nao um obstaculo na frente dele.
o que devo alterar no script?
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: [RESOLVIDO]Fazer um laser que se estende
desculpe postar de novo antes da hora mas é porque a imagem nao saiu.
o link da imagem
https://2img.net/h/i1226.photobucket.com/albums/ee416/runner31/laser_zpspc8fjdoo.png
o link da imagem
https://2img.net/h/i1226.photobucket.com/albums/ee416/runner31/laser_zpspc8fjdoo.png
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: [RESOLVIDO]Fazer um laser que se estende
que saco desses link da imagem.. saiu outra coisa nada a ver
to postando de novo, espero que agora vai
https://2img.net/h/i1226.photobucket.com/albums/ee416/runner31/laser_zpspc8fjdoo.png
https://s1226.photobucket.com/user/runner31/media/laser_zpspc8fjdoo.png.html
desculpe postar assim de novo, nao quero infringir as regras
to postando de novo, espero que agora vai
https://2img.net/h/i1226.photobucket.com/albums/ee416/runner31/laser_zpspc8fjdoo.png
https://s1226.photobucket.com/user/runner31/media/laser_zpspc8fjdoo.png.html
desculpe postar assim de novo, nao quero infringir as regras
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Re: [RESOLVIDO]Fazer um laser que se estende
MarcosSchultz escreveu:Eh soh usar Raycast2D em vez do Raycast
Ok!
consegui resolver o problema do laser refazendo tudo do inicio como ensina lá no site e usando os sprites de lá.
lá pede que o sprite do meio tem que ter largura de 100px
por enquanto resolvido
ms vou tentar tbm do jeito que vc sugeriu
Flávio- MembroAvançado
- PONTOS : 2831
REPUTAÇÃO : 29
Áreas de atuação : Aprendizagem em:
Programação C#;
Pixelart
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] como fazer um fadeIn
» [RESOLVIDO] alguém sabe como fazer um unico Input fazer duas ações?
» [RESOLVIDO] Como Posso Fazer Um Giroflex ??
» [RESOLVIDO] fazer o texto ser interativo
» [Resolvido]Tem como fazer uma luz negra?
» [RESOLVIDO] alguém sabe como fazer um unico Input fazer duas ações?
» [RESOLVIDO] Como Posso Fazer Um Giroflex ??
» [RESOLVIDO] fazer o texto ser interativo
» [Resolvido]Tem como fazer uma luz negra?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos