O que estou fazendo de erra
2 participantes
Página 1 de 1
O que estou fazendo de erra
O que esta errado nesse script, a Bola só vai para frente e não onde o mouse aponta. onde esta erra???
using UnityEngine;
using System.Collections;
public class Kick : MonoBehaviour {
public float bounceFactor = 0.9f;
public float forceFactor = 10f;
public float tMax = 5f;
private float kickStart;
private float kickForce;
private Vector3 prevVelocity;
void Update()
{
if(Input.GetMouseButtonDown(0))
{
kickStart = Time.time;
}
if(Input.GetMouseButtonUp(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
if(hit.collider.name == "Ball")
kickForce = Time.time - kickStart;
}
}
}
void FixedUpdate () {
if(kickForce != 0)
{
float angle = Random.Range(0,20) * Mathf.Deg2Rad;
GetComponent<Rigidbody>().AddForce(new Vector3(0.0f,
forceFactor * Mathf.Clamp(kickForce, 0.0f, tMax) * Mathf.Sin(angle),
forceFactor * Mathf.Clamp(kickForce, 0.0f, tMax) * Mathf.Cos(angle)),
ForceMode.VelocityChange);
kickForce = 0;
}
prevVelocity = GetComponent<Rigidbody>().velocity;
}
void OnCollisionEnter(Collision col)
{
if(col.gameObject.tag == "Ground")
{
GetComponent<Rigidbody>().velocity = new Vector3(prevVelocity.x,
-prevVelocity.y * Mathf.Clamp01(bounceFactor),
prevVelocity.z);
}
}
}
using UnityEngine;
using System.Collections;
public class Kick : MonoBehaviour {
public float bounceFactor = 0.9f;
public float forceFactor = 10f;
public float tMax = 5f;
private float kickStart;
private float kickForce;
private Vector3 prevVelocity;
void Update()
{
if(Input.GetMouseButtonDown(0))
{
kickStart = Time.time;
}
if(Input.GetMouseButtonUp(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
if(hit.collider.name == "Ball")
kickForce = Time.time - kickStart;
}
}
}
void FixedUpdate () {
if(kickForce != 0)
{
float angle = Random.Range(0,20) * Mathf.Deg2Rad;
GetComponent<Rigidbody>().AddForce(new Vector3(0.0f,
forceFactor * Mathf.Clamp(kickForce, 0.0f, tMax) * Mathf.Sin(angle),
forceFactor * Mathf.Clamp(kickForce, 0.0f, tMax) * Mathf.Cos(angle)),
ForceMode.VelocityChange);
kickForce = 0;
}
prevVelocity = GetComponent<Rigidbody>().velocity;
}
void OnCollisionEnter(Collision col)
{
if(col.gameObject.tag == "Ground")
{
GetComponent<Rigidbody>().velocity = new Vector3(prevVelocity.x,
-prevVelocity.y * Mathf.Clamp01(bounceFactor),
prevVelocity.z);
}
}
}
Mutlei337- Iniciante
- PONTOS : 3476
REPUTAÇÃO : 1
Idade : 38
Respeito as regras :
Re: O que estou fazendo de erra
Você não está passando o componente que recebe as forças...
Observe o script, deixei ele comentado
Em resumo, você não está passando o componente para conseguir acessa-lo, que no caso, trata-se de um rigidbody
teria que fazer algo do tipo
e você está fazendo isso:
Observe o script, deixei ele comentado
- Código:
using UnityEngine;
using System.Collections;
public class Kick : MonoBehaviour {
public float bounceFactor = 0.9f;
public float forceFactor = 10f;
public float tMax = 5f;
private float kickStart;
private float kickForce;
private Vector3 prevVelocity;
void Update(){
if(Input.GetMouseButtonDown(0)){
kickStart = Time.time;
}
if(Input.GetMouseButtonUp(0)){
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit)){
if(hit.collider.name == "Ball")
kickForce = Time.time - kickStart;
}
}
}
void FixedUpdate () {
if(kickForce != 0){
float angle = Random.Range(0,20) * Mathf.Deg2Rad;
//cade o componente nesta linha abaixo?
GetComponent().AddForce(new Vector3(0.0f,forceFactor * Mathf.Clamp(kickForce, 0.0f, tMax) * Mathf.Sin(angle),forceFactor * Mathf.Clamp(kickForce, 0.0f, tMax) * Mathf.Cos(angle)),ForceMode.VelocityChange);
kickForce = 0;
}
//cade o componente nesta linha abaixo?
prevVelocity = GetComponent().velocity;
}
void OnCollisionEnter(Collision col){
if(col.gameObject.tag == "Ground"){
//cade o componente nesta linha abaixo?
GetComponent().velocity = new Vector3(prevVelocity.x,-prevVelocity.y * Mathf.Clamp01(bounceFactor),prevVelocity.z);
}
}
}
Em resumo, você não está passando o componente para conseguir acessa-lo, que no caso, trata-se de um rigidbody
teria que fazer algo do tipo
- Código:
GetComponent<Rigidbody>()
e você está fazendo isso:
- Código:
GetComponent()
Re: O que estou fazendo de erra
Coloque o componte <Rigidbody> mais me assim a bola continua indo só para frente porque oque esta erra ainda??
Mutlei337- Iniciante
- PONTOS : 3476
REPUTAÇÃO : 1
Idade : 38
Respeito as regras :
Re: O que estou fazendo de erra
Cara, dei uma olhada bem boa nesse script, e não entendi direito qual a intenção dele...
você clica em um lugar e a bola vai para lá? se for isso tem muitas maneiras mais faceis de se fazer isto...
você clica em um lugar e a bola vai para lá? se for isso tem muitas maneiras mais faceis de se fazer isto...
Re: O que estou fazendo de erra
Vi esse Tutorial de Adicionar força a um Rigidbody na Direção onde o mouse esta era esse tipo de Script que eu procurava.
Muito obrigado pela sua Ajuda e por a sua atenção.
Muito obrigado pela sua Ajuda e por a sua atenção.
Mutlei337- Iniciante
- PONTOS : 3476
REPUTAÇÃO : 1
Idade : 38
Respeito as regras :
Re: O que estou fazendo de erra
Vou colocar o link do tutorial aqui para outros membros que possam ter a mesma dúvida :D
https://www.schultzgames.com/t206-tutorial-adicionar-forca-a-um-rigidbody-na-direcao-onde-o-mouse-esta#935
https://www.schultzgames.com/t206-tutorial-adicionar-forca-a-um-rigidbody-na-direcao-onde-o-mouse-esta#935
Tópicos semelhantes
» new Vector3 (o que ele ta fazendo de errado??)(iniciante)
» [Teste] Testem o desempenho do jogo que estou fazendo!
» esse e o meu jogo "a floresta" que estou fazendo VEJAM O VIDEO
» Estou fazendo umsistema de animaçao e uma funçao nao quer funcionar
» Alguém poderia me dizer o que estou fazendo de errado nesses scripts? (Vuforia SDK).
» [Teste] Testem o desempenho do jogo que estou fazendo!
» esse e o meu jogo "a floresta" que estou fazendo VEJAM O VIDEO
» Estou fazendo umsistema de animaçao e uma funçao nao quer funcionar
» Alguém poderia me dizer o que estou fazendo de errado nesses scripts? (Vuforia SDK).
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos