[RESOLVIDO] Não consigo usar o Sphere collider.
4 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Não consigo usar o Sphere collider.
Não consigo usar o Center do SphereCollider no script fica dando erro, estava vendo um tutorial mas tento e não consigo, queria fazer a colisão abaixar junto do personagem ao apertar a tecla shift mas acontece um erro nas linhas que tento colocar o Center.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Agachar : MonoBehaviour {
//variavel para guardar a posição da caixa de colisão
Vector3 Abaixado;
//caixa de colisão na posição original
Vector3 DefCol;
// Deve jogar o personagem nele
Transform ComCol;
CapsuleCollider Colisor;
// Use this for initialization
void Start () {
// Coloca a posição que ficar agachado
Abaixado.y = -0.54f;
Abaixado.x =0;
Abaixado.z =0;
Colisor = ComCol.GetComponent<CapsuleCollider>();
DefCol.y = Colisor.center.y;
DefCol.z = Colisor.center.z;
DefCol.x = Colisor.center.x;
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.LeftShift))
{
//Irão receber o valor da variavel abaixado
Colisor.center.y = Abaixado.y = -0.54f;
Colisor.center.z = Abaixado.z = 0;
Colisor.center.x = Abaixado.x = 0;
}
if (Input.GetKeyUp(KeyCode.LeftShift))
{
//Assim que soltar o shift voltar o valor original
Colisor.center.y = DefCol.y;
Colisor.center.z = DefCol.z;
Colisor.center.x = DefCol.x;
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Agachar : MonoBehaviour {
//variavel para guardar a posição da caixa de colisão
Vector3 Abaixado;
//caixa de colisão na posição original
Vector3 DefCol;
// Deve jogar o personagem nele
Transform ComCol;
CapsuleCollider Colisor;
// Use this for initialization
void Start () {
// Coloca a posição que ficar agachado
Abaixado.y = -0.54f;
Abaixado.x =0;
Abaixado.z =0;
Colisor = ComCol.GetComponent<CapsuleCollider>();
DefCol.y = Colisor.center.y;
DefCol.z = Colisor.center.z;
DefCol.x = Colisor.center.x;
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.LeftShift))
{
//Irão receber o valor da variavel abaixado
Colisor.center.y = Abaixado.y = -0.54f;
Colisor.center.z = Abaixado.z = 0;
Colisor.center.x = Abaixado.x = 0;
}
if (Input.GetKeyUp(KeyCode.LeftShift))
{
//Assim que soltar o shift voltar o valor original
Colisor.center.y = DefCol.y;
Colisor.center.z = DefCol.z;
Colisor.center.x = DefCol.x;
}
}
}
Última edição por dstaroski em Qui Out 11, 2018 11:42 am, editado 1 vez(es) (Motivo da edição : Resolvido)
luansantos- Iniciante
- PONTOS : 2298
REPUTAÇÃO : 7
Idade : 26
Áreas de atuação : Minha área central é programação, mas me dou bem em todas as outras áreas, menos em Design. S2
Respeito as regras :
Re: [RESOLVIDO] Não consigo usar o Sphere collider.
você não pode setar o center.x, center.y, center.z separadamente, pois isso não é java, é C#
você deve setar um novo Vector3 inteiro, exemplo:
Colisor.center = new Vector3(DefCol.y, DefCol.y, DefCol.y);
você deve setar um novo Vector3 inteiro, exemplo:
Colisor.center = new Vector3(DefCol.y, DefCol.y, DefCol.y);
Re: [RESOLVIDO] Não consigo usar o Sphere collider.
Tem uma maneira bem mais simples de se fazer isso, só não sei se serve para o seu caso, mas seria manipulando o collider através do animator, com o animator gravando você mexeria no tamanho do colisor de acordo com cada frame da animação
QueriaStarMorto- Avançado
- PONTOS : 2225
REPUTAÇÃO : 19
Respeito as regras :
Re: [RESOLVIDO] Não consigo usar o Sphere collider.
Como o Marcos já tinha falado em um tipico meu(https://www.schultzgames.com/t8120-animar-collider), ficar mexendo no size dos colliders é bem pesado, acredite.QueriaStarMorto escreveu:Tem uma maneira bem mais simples de se fazer isso, só não sei se serve para o seu caso, mas seria manipulando o collider através do animator, com o animator gravando você mexeria no tamanho do colisor de acordo com cada frame da animação
gurgelg752- MembroAvançado
- PONTOS : 2484
REPUTAÇÃO : 19
Áreas de atuação : estudo programação c# nas horas vagas
Respeito as regras :
Re: [RESOLVIDO] Não consigo usar o Sphere collider.
Muito Obrigado, consegui mexer e funcionou.MarcosSchultz escreveu:você não pode setar o center.x, center.y, center.z separadamente, pois isso não é java, é C#
você deve setar um novo Vector3 inteiro, exemplo:
Colisor.center = new Vector3(DefCol.y, DefCol.y, DefCol.y);
luansantos- Iniciante
- PONTOS : 2298
REPUTAÇÃO : 7
Idade : 26
Áreas de atuação : Minha área central é programação, mas me dou bem em todas as outras áreas, menos em Design. S2
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Quero usar um WaitForSeconds porem não consigo.
» Não consigo usar o .AddForce Unity
» Nao consigo usar este script
» [RESOLVIDO] Eu não consigo abrir o monodevelop
» [RESOLVIDO] Wheel Collider
» Não consigo usar o .AddForce Unity
» Nao consigo usar este script
» [RESOLVIDO] Eu não consigo abrir o monodevelop
» [RESOLVIDO] Wheel Collider
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos