[TUTORIAL] Mover/Empurrar Objetos, Caixote,etc
3 participantes
Página 1 de 1
[TUTORIAL] Mover/Empurrar Objetos, Caixote,etc
eaeh galera boa noite trago aqui este simpres tuto acho q podera ser muito util para novos membros e os atuais,entao o que ele faz, crie um objeto capsula recomendado,cada vez q o Player colidir com algum Objeto e vc se Mover para frente ele ira empurrar o mesmo para frente,tipo caixote e outros Objetos,Espero que seja Util para Muitos,
dependendo da Rotacao ,O player sempre vai se Mover para Frente Com a Tecla W,
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMov : MonoBehaviour {
public float VelAndar; //speed andar
//public bool Podeempurrar; ignorado
Transform GuiaRaio; //objeto vazio,objeto filho do player vai guiar o raio
RaycastHit GetRaio;
Color blue = Color.blue; //cor do ray ,debug.drawray
public float dist; //a distancia do Raio
public float VelRot; //velocidade rotacao do Player
// Use this for initialization
void Start () {
GuiaRaio = transform.GetChild(0);
}
// Update is called once per frame
void Update () {
Debug.DrawRay(GuiaRaio.transform.position, GuiaRaio.forward * dist, blue);
Physics.Raycast(GuiaRaio.transform.position, GuiaRaio.forward * dist, out GetRaio, dist);
MoveKeys();
}
void MoveKeys()
{
//Tecla W
if (Input.GetKey(KeyCode.W))
{
transform.Translate(Vector3.forward * VelAndar * Time.deltaTime);
if (GetRaio.collider)
{
GetRaio.transform.Translate(transform.forward * VelAndar*Time.deltaTime);
}
}
//tecla A
if (Input.GetKey(KeyCode.A)) {
transform.Rotate(-Vector3.up * VelRot * Time.deltaTime);
}
//Tecla D
if (Input.GetKey(KeyCode.D))
{
transform.Rotate(Vector3.up * VelRot * Time.deltaTime);
}
}
}
dependendo da Rotacao ,O player sempre vai se Mover para Frente Com a Tecla W,
Re: [TUTORIAL] Mover/Empurrar Objetos, Caixote,etc
bom ,agora os Passos para o Script Funcionar ,esqueci d Adicionar, vc cria um objeto do Tipo Capsula recomendado,criar um chao para dar mais vida,cria um objeto vazio e add como filho da Capsula ,apos criar o script e add o Codigo, exemplo na imagem
Re: [TUTORIAL] Mover/Empurrar Objetos, Caixote,etc
Very Good Cara!
Mas Translate Não é nem um pouco legal em movimentação;
Tente usar Rigidbody.velocity ou Rigidbody.AddForce(Vector3);
Mas Translate Não é nem um pouco legal em movimentação;
Tente usar Rigidbody.velocity ou Rigidbody.AddForce(Vector3);
Phph09- Profissional
- PONTOS : 3788
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: [TUTORIAL] Mover/Empurrar Objetos, Caixote,etc
bom dia,é amigo ate pensei no caso,mas prefiri deixar o rg e o velocity No Opcional,
Re: [TUTORIAL] Mover/Empurrar Objetos, Caixote,etc
Parabéns ai cara! vai ajudar muita gente!felipehobs1 escreveu:eaeh galera boa noite trago aqui este simpres tuto acho q podera ser muito util para novos membros e os atuais,entao o que ele faz, crie um objeto capsula recomendado,cada vez q o Player colidir com algum Objeto e vc se Mover para frente ele ira empurrar o mesmo para frente,tipo caixote e outros Objetos,Espero que seja Util para Muitos,
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMov : MonoBehaviour {
public float VelAndar; //speed andar
//public bool Podeempurrar; ignorado
Transform GuiaRaio; //objeto vazio,objeto filho do player vai guiar o raio
RaycastHit GetRaio;
Color blue = Color.blue; //cor do ray ,debug.drawray
public float dist; //a distancia do Raio
public float VelRot; //velocidade rotacao do Player
// Use this for initialization
void Start () {
GuiaRaio = transform.GetChild(0);
}
// Update is called once per frame
void Update () {
Debug.DrawRay(GuiaRaio.transform.position, GuiaRaio.forward * dist, blue);
Physics.Raycast(GuiaRaio.transform.position, GuiaRaio.forward * dist, out GetRaio, dist);
MoveKeys();
}
void MoveKeys()
{
//Tecla W
if (Input.GetKey(KeyCode.W))
{
transform.Translate(Vector3.forward * VelAndar * Time.deltaTime);
if (GetRaio.collider)
{
GetRaio.transform.Translate(transform.forward * VelAndar*Time.deltaTime);
}
}
//tecla A
if (Input.GetKey(KeyCode.A)) {
transform.Rotate(-Vector3.up * VelRot * Time.deltaTime);
}
//Tecla D
if (Input.GetKey(KeyCode.D))
{
transform.Rotate(Vector3.up * VelRot * Time.deltaTime);
}
}
}
dependendo da Rotacao ,O player sempre vai se Mover para Frente Com a Tecla W,
Abraço e sucesso!
Tópicos semelhantes
» [TUTORIAL] Mover objetos com o mouse, estilo Amnesia
» [TUTORIAL] Mover, arremessar e girar objetos com o mouse
» [TUTORIAL] Colisão Sem Empurrar (Solução)
» [TUTORIAL] Mover, Girar e lançar objetos com o mouse ( estilo Amnesia )
» [TUTORIAL] Girar objetos / mover de acordo com a rotação do Celular,tablet,etc
» [TUTORIAL] Mover, arremessar e girar objetos com o mouse
» [TUTORIAL] Colisão Sem Empurrar (Solução)
» [TUTORIAL] Mover, Girar e lançar objetos com o mouse ( estilo Amnesia )
» [TUTORIAL] Girar objetos / mover de acordo com a rotação do Celular,tablet,etc
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos