script com erro de chutar a bola
2 participantes
Página 1 de 1
script com erro de chutar a bola
Galera estou com um erro no meu script alguém poderia me ajudar ?
está dando o seguinte erros :
Assets/KICKSCRIPT.cs(38,14): error CS1061: Type `UnityEngine.Component' does not contain a definition for `AddForce' and no extension method `AddForce' of type `UnityEngine.Component' could be found. Are you missing an assembly reference?
Assets/KICKSCRIPT.cs(44,28): error CS1061: Type `UnityEngine.Component' does not contain a definition for `velocity' and no extension method `velocity' of type `UnityEngine.Component' could be found. Are you missing an assembly reference?
Assets/KICKSCRIPT.cs(52,14): error CS1061: Type `UnityEngine.Component' does not contain a definition for `velocity' and no extension method `velocity' of type `UnityEngine.Component' could be found. Are you missing an assembly reference?
- Código:
using UnityEngine;
using System.Collections;
public class KickScript : MonoBehaviour {
public float bounceFactor = 0.9f; // Determines how the ball will be bouncing after landing. The value is [0..1]
public float forceFactor = 10f;
public float tMax = 5f; // Pressing time upper limit
private float kickStart; // Keeps time, when you press button
private float kickForce; // Keeps time interval between button press and release
private Vector3 prevVelocity; // Keeps rigidbody velocity, calculated in FixedUpdate()
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") // Rename ball object to "Ball" in Inspector, or change name here
kickForce = Time.time - kickStart;
}
}
}
void FixedUpdate () {
if(kickForce != 0)
{
float angle = Random.Range(0,20) * Mathf.Deg2Rad;
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 = rigidbody.velocity;
}
void OnCollisionEnter(Collision col)
{
if(col.gameObject.tag == "Ground") // Do not forget assign tag to the field
{
rigidbody.velocity = new Vector3(prevVelocity.x,
-prevVelocity.y * Mathf.Clamp01(bounceFactor),
prevVelocity.z);
}
}
}
está dando o seguinte erros :
Assets/KICKSCRIPT.cs(38,14): error CS1061: Type `UnityEngine.Component' does not contain a definition for `AddForce' and no extension method `AddForce' of type `UnityEngine.Component' could be found. Are you missing an assembly reference?
Assets/KICKSCRIPT.cs(44,28): error CS1061: Type `UnityEngine.Component' does not contain a definition for `velocity' and no extension method `velocity' of type `UnityEngine.Component' could be found. Are you missing an assembly reference?
Assets/KICKSCRIPT.cs(52,14): error CS1061: Type `UnityEngine.Component' does not contain a definition for `velocity' and no extension method `velocity' of type `UnityEngine.Component' could be found. Are you missing an assembly reference?
Yagogomes- Membro
- PONTOS : 2779
REPUTAÇÃO : 1
Áreas de atuação : Modelagem
Respeito as regras :
Re: script com erro de chutar a bola
o problema esta no rigidbody,vc deve declarar a variavel "RigidBody",e usar o getcomponent para pegar ele deste objeto,esta variavel chamada rigidbody, é tipo sei la se ela e usada desse jeito diretamente, se vc nao declarar uma nao vai funcionar,declare ela la no inicio e troque pelo rigidbody, ex:
substitui la o rigidbody por esta variavel e aplica o resto la, ve se vai
- Código:
public class nomedaclass :monobehaviou{//ignore a class d exemplo
RigidBody rigidnnome; //de um nome para a variavel
}
void Start(){
rigidnome=GetComponent<RigidBody>(); //aqui vc pegou o componente desse objeto
}
}
substitui la o rigidbody por esta variavel e aplica o resto la, ve se vai
Re: script com erro de chutar a bola
poderia me explicar melhor mano , estou aprendendo a programar agora
Yagogomes- Membro
- PONTOS : 2779
REPUTAÇÃO : 1
Áreas de atuação : Modelagem
Respeito as regras :
Re: script com erro de chutar a bola
como posso explicar.. o script ta mostrando o erro na palavra "rigidbody" nas linhas(38,44,52) responsavel pela fisica do jogo é um componente,mais ele nao foi criado no inico da classe,mais pra ele funcionar vc deve declarar, "RigidBody umnome;" sem aspas, mas pra vc resolverr seu erro procure no codigo "void Update(){}" em cima dela cria isso ->
depois procure as linhas com os 3 erros e substitui o "rigidbody" por "unrigidbody" sem aspas
sugiro pesquisa aulas pela intenet ou pelo canal do schultzgames,pq copiar e colocar codigo nao vai ajudar em tudo, flw
- Código:
RigidBody unrigidbody; //duas barras sao comentarios para ajudar a identificar,
- Código:
void Start(){
unrigidbody=GetComponent<RigidBody>();
}
depois procure as linhas com os 3 erros e substitui o "rigidbody" por "unrigidbody" sem aspas
sugiro pesquisa aulas pela intenet ou pelo canal do schultzgames,pq copiar e colocar codigo nao vai ajudar em tudo, flw
Tópicos semelhantes
» Sistema de Futebol(Chutar bola e carrega-la até o gol)
» Erro no Script- "The script needs to derived from MonoBehavior"
» erro erro e mais erro script de craft
» Erro no Script
» ERRO NO SCRIPT
» Erro no Script- "The script needs to derived from MonoBehavior"
» erro erro e mais erro script de craft
» Erro no Script
» ERRO NO SCRIPT
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos