Ia inimiga pequeno erro
4 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Ia inimiga pequeno erro
Gente ta dando esse erro "BCE0022: Cannot convert 'UnityEngine.GameObject' to 'UnityEngine.Transform'. " quando tento fazer meu inimigo seguir , to usando o unity 5.5.2 me ajudem , oq tenho q muda no codigo
#pragma strict
var animI: int;
var Player : GameObject;
var DistV : Vector3 ;
var rotQ : Quaternion;
var rmin: float ;
var rmed: float ;
var rmax: float ;
var atack: boolean;
///////////////////////////////////////////////////
function Start () {
animI = 1;
rmin = 1;
rmed = 2 ;
rmax = 10;
atack = false ;
}
function Update () {
if(animI == 1) {GetComponent.<Animation>().Play("orcwalk");}
if(animI == 2) {GetComponent.<Animation>().Play("orcwalk") ;} transform.translate(0,0,2*Time.deltaTime);
if(animI == 3) {GetComponent.<Animation>().Play("orcwalk") ;} transform.translate(0,0,-2*Time.deltaTime);
if(animI == 4) {GetComponent.<Animation>().Play("orcattack");}
if(animI == 5) {GetComponent.<Animation>().Play("orcwalk");}
//////////////////////////////////////////////////////
DistV = transform.position - Player.transform.position ;
rotQ = Quaternion.LookRotation (DistV) ;
// funçao
/////////////////////////////////////////////////////////////////////////////
if(atack == true){transform.rotation.eulerAngles.y = rotQ.eulerAngles.y + 180;}
if(DistV.x <= rmin && DistV.x >= -rmin && DistV.z <= rmin && DistV.z >= -rmin )
{animI=3;}
if(DistV.x <= rmed && DistV.x >= -rmed && DistV.z <= rmed && DistV.z >= -rmed )
{animI = 4; atack = true;}
if(DistV.x <= rmax && DistV.x >= -rmax && DistV.z <= rmax && DistV.z >= -rmax )
{animI = 2;}
//////////////////////////////////////////////////////////////////////////////
}
#pragma strict
var animI: int;
var Player : GameObject;
var DistV : Vector3 ;
var rotQ : Quaternion;
var rmin: float ;
var rmed: float ;
var rmax: float ;
var atack: boolean;
///////////////////////////////////////////////////
function Start () {
animI = 1;
rmin = 1;
rmed = 2 ;
rmax = 10;
atack = false ;
}
function Update () {
if(animI == 1) {GetComponent.<Animation>().Play("orcwalk");}
if(animI == 2) {GetComponent.<Animation>().Play("orcwalk") ;} transform.translate(0,0,2*Time.deltaTime);
if(animI == 3) {GetComponent.<Animation>().Play("orcwalk") ;} transform.translate(0,0,-2*Time.deltaTime);
if(animI == 4) {GetComponent.<Animation>().Play("orcattack");}
if(animI == 5) {GetComponent.<Animation>().Play("orcwalk");}
//////////////////////////////////////////////////////
DistV = transform.position - Player.transform.position ;
rotQ = Quaternion.LookRotation (DistV) ;
// funçao
/////////////////////////////////////////////////////////////////////////////
if(atack == true){transform.rotation.eulerAngles.y = rotQ.eulerAngles.y + 180;}
if(DistV.x <= rmin && DistV.x >= -rmin && DistV.z <= rmin && DistV.z >= -rmin )
{animI=3;}
if(DistV.x <= rmed && DistV.x >= -rmed && DistV.z <= rmed && DistV.z >= -rmed )
{animI = 4; atack = true;}
if(DistV.x <= rmax && DistV.x >= -rmax && DistV.z <= rmax && DistV.z >= -rmax )
{animI = 2;}
//////////////////////////////////////////////////////////////////////////////
}
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
Tenta mudar esta variavel "var Player : GameObject;" para "var Player : Transform;"
Re: Ia inimiga pequeno erro
amigao nao deu certo tbm , o problema acho q é o transform.translate apareceu a seguinte msgJunim escreveu:Tenta mudar esta variavel "var Player : GameObject;" para "var Player : Transform;"
"'translate' is not a member of 'UnityEngine.Transform'. Did you mean 'Translate'?"
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
Bom..não Posso te Ajudar em Java mas pq não usa os AI prontos que tem aqui no Fórum??
https://www.schultzgames.com/t31-tutorial-inimigo-que-segue-player-enquanto-player-esta-vendo?highlight=INIMIGO
Procura que tem Vários....e Todos Funcionam sem Erros!
https://www.schultzgames.com/t31-tutorial-inimigo-que-segue-player-enquanto-player-esta-vendo?highlight=INIMIGO
Procura que tem Vários....e Todos Funcionam sem Erros!
Re: Ia inimiga pequeno erro
o amigao vlw parou de parecer a msg de erro , mas o inimigo nao ta perseguindo o player, tem alguma ideia ?dstaroski escreveu:Bom dia cara! Tente o Translate com T maiúsculo.
Abraço!
to comecando agora em programaçao e esse foi o scrip q conseguir fazer ,nao é bem basico , mas na teoria acho q era pra funcioinar.
qualquer ajuda e bem vinda to meio q tentando aprender na raça kkk
#pragma strict
var animI: int;
var Player : GameObject;
var DistV : Vector3 ;
var rotQ : Quaternion;
var rmin: float ;
var rmed: float ;
var rmax: float ;
var atack: boolean;
///////////////////////////////////////////////////
function Start () {
animI = 1;
rmin = 1;
rmed = 2 ;
rmax = 5;
atack = false ;
}
function Update () {
if(animI == 1) {GetComponent.<Animation>().Play("orcwalk");}
if(animI == 2) {GetComponent.<Animation>().Play("orcwalk") ;} transform.Translate(0,0,2*Time.deltaTime);
if(animI == 3) {GetComponent.<Animation>().Play("orcwalk") ;} transform.Translate(0,0,-2*Time.deltaTime);
if(animI == 4) {GetComponent.<Animation>().Play("orcattack");}
if(animI == 5) {GetComponent.<Animation>().Play("orcwalk");}
//////////////////////////////////////////////////////
DistV = transform.position - Player.transform.position ;
rotQ = Quaternion.LookRotation (DistV) ;
// funçao
/////////////////////////////////////////////////////////////////////////////
if(atack == true){transform.rotation.eulerAngles.y = rotQ.eulerAngles.y + 180;}
if(DistV.x <= rmin && DistV.x >= -rmin && DistV.z <= rmin && DistV.z >= -rmin )
{animI=4;}
if(DistV.x <= rmed && DistV.x >= -rmed && DistV.z <= rmed && DistV.z >= -rmed )
{animI = 3; atack = true;}
if(DistV.x <= rmax && DistV.x >= -rmax && DistV.z <= rmax && DistV.z >= -rmax )
{animI = 4;}
//////////////////////////////////////////////////////////////////////////////
}
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
Boa tarde cara! mas ele chega a se mover? ou somente não persegue o player? entendo pouco de JS, e te aconselho a começar a aprender o C#, pois o JS não tem mais suporte da Unity já faz um bom tempo.bravoent escreveu:o amigao vlw parou de parecer a msg de erro , mas o inimigo nao ta perseguindo o player, tem alguma ideia ?dstaroski escreveu:Bom dia cara! Tente o Translate com T maiúsculo.
Abraço!
to comecando agora em programaçao e esse foi o scrip q conseguir fazer ,nao é bem basico , mas na teoria acho q era pra funcioinar.
qualquer ajuda e bem vinda to meio q tentando aprender na raça kkk
#pragma strict
var animI: int;
var Player : GameObject;
var DistV : Vector3 ;
var rotQ : Quaternion;
var rmin: float ;
var rmed: float ;
var rmax: float ;
var atack: boolean;
///////////////////////////////////////////////////
function Start () {
animI = 1;
rmin = 1;
rmed = 2 ;
rmax = 5;
atack = false ;
}
function Update () {
if(animI == 1) {GetComponent.<Animation>().Play("orcwalk");}
if(animI == 2) {GetComponent.<Animation>().Play("orcwalk") ;} transform.Translate(0,0,2*Time.deltaTime);
if(animI == 3) {GetComponent.<Animation>().Play("orcwalk") ;} transform.Translate(0,0,-2*Time.deltaTime);
if(animI == 4) {GetComponent.<Animation>().Play("orcattack");}
if(animI == 5) {GetComponent.<Animation>().Play("orcwalk");}
//////////////////////////////////////////////////////
DistV = transform.position - Player.transform.position ;
rotQ = Quaternion.LookRotation (DistV) ;
// funçao
/////////////////////////////////////////////////////////////////////////////
if(atack == true){transform.rotation.eulerAngles.y = rotQ.eulerAngles.y + 180;}
if(DistV.x <= rmin && DistV.x >= -rmin && DistV.z <= rmin && DistV.z >= -rmin )
{animI=4;}
if(DistV.x <= rmed && DistV.x >= -rmed && DistV.z <= rmed && DistV.z >= -rmed )
{animI = 3; atack = true;}
if(DistV.x <= rmax && DistV.x >= -rmax && DistV.z <= rmax && DistV.z >= -rmax )
{animI = 4;}
//////////////////////////////////////////////////////////////////////////////
}
Abraço!
Re: Ia inimiga pequeno erro
ele nao chega a se mecher fica parado, nunca mexi com c# , nao sei se consegueria reescrever esse codigo simples usando c#Boa tarde cara! mas ele chega a se mover? ou somente não persegue o player? entendo pouco de JS, e te aconselho a começar a aprender o C#, pois o JS não tem mais suporte da Unity já faz um bom tempo. escreveu:
Abraço!
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
E os outros codigos tambem sao java T-Tbravoent escreveu:ele nao chega a se mecher fica parado, nunca mexi com c# , nao sei se consegueria reescrever esse codigo simples usando c#
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
Putz.... certa vez eu lembro que eu fiz um protótipo em JS de um zumbi que me seguia e tals, com a ajuda de um vídeo gringo no youtube, mas não tenho mais os scripts e nem o vídeo, tenta dar uma pesquisada no youtube sobre isso em C#, e assim, se não encontrar em PT-BR vai no inglês mesmo, a programação é tranquilo e é importante ir aprendendo inglês. Aqui no fórum, usando a ferramenta de busca, você vai encontrar vários tópicos sobre esse assunto, podem ser úteis para você também. Te recomendo ir aprendendo C# com o Marcos:bravoent escreveu:E os outros codigos tambem sao java T-Tbravoent escreveu:ele nao chega a se mecher fica parado, nunca mexi com c# , nao sei se consegueria reescrever esse codigo simples usando c#
Abraço!
Re: Ia inimiga pequeno erro
vc tem razao vou aprender o c# é melhor quebrar um pouco a cabeça agora doq o projeto travar mais pra frente , vlw mesmo irmao qualquer coisa posto aqdstaroski escreveu:Putz cara, esqueci que o Marcos tem um vídeo sobre isso, dá uma olhada:
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
eae cara andei vendo as videos aulas , to comecando a pegar, vi um tutorial na net consegui intender os motivos e a logica dos codigos da ia dele
mas no meu unity ta dando erro sera que mudou alguma norma ?
os erros sao o seguinte
Assets/INIMIGO/script/orccomp.cs(4,12): error CS1001: Unexpected symbol `;', expecting identifier
Assets/INIMIGO/script/orccomp.cs(22,2): error CS1547: Keyword `void' cannot be used in this context
Assets/INIMIGO/script/orccomp.cs(22,12): error CS1525: Unexpected symbol `(', expecting `,', `;', or `='
assim eu queria saber como posso colocar a animaçao no meio do codigo pra quando ele seguir a "orcWalk Ser executada
vlw mesmo nao tenho nem como agradecer a força
mas no meu unity ta dando erro sera que mudou alguma norma ?
os erros sao o seguinte
Assets/INIMIGO/script/orccomp.cs(4,12): error CS1001: Unexpected symbol `;', expecting identifier
Assets/INIMIGO/script/orccomp.cs(22,2): error CS1547: Keyword `void' cannot be used in this context
Assets/INIMIGO/script/orccomp.cs(22,12): error CS1525: Unexpected symbol `(', expecting `,', `;', or `='
assim eu queria saber como posso colocar a animaçao no meio do codigo pra quando ele seguir a "orcWalk Ser executada
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static;
public class orccomp : MonoBehaviour {
float campo;
public Transform player;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
campo = Vector3.Distance (transform.position.player.position);
if (campo < 7 ) {
olhar ();
}
if (campo <5) {
olhar ();
seguir ();
void olhar () {
Quaternion visao;
visao = Quaternion.LookRotation (player.position - transform.position);
transform.rotation = Quaternion.Slerp (transform.rotation, visao, * 6f * Time.deltaTime);
}
void seguir () {
transform.Translate (Vector3.forward * 2 * Time.deltaTime);
}
}
vlw mesmo nao tenho nem como agradecer a força
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class orccomp : MonoBehaviour {
float campo;
public Transform player;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
campo = Vector3.Distance (transform.position.player.position);
if (campo < 7 ) {
olhar ();
}
if (campo <5) {
olhar ();
seguir ();
}
}
void olhar () {
Quaternion visao;
visao = Quaternion.LookRotation (player.position - transform.position);
transform.rotation = Quaternion.Slerp (transform.rotation, visao, * 6f * Time.deltaTime);
}
void seguir () {
transform.Translate (Vector3.forward * 2 * Time.deltaTime);
}
}
Re: Ia inimiga pequeno erro
E sobre a animação olha este video que o marcos fez, Ele deixa bem claro como usar animações ~> https://www.youtube.com/watch?v=Ea-kC5tqiJ0 <~ Espero ter ajudado !
Re: Ia inimiga pequeno erro
amigao vlw o tutorial é muito bom assim q conseguir resolver esses erros irei implementar.Junim escreveu:E sobre a animação olha este video que o marcos fez, Ele deixa bem claro como usar animações ~> https://www.youtube.com/watch?v=Ea-kC5tqiJ0 <~ Espero ter ajudado !
em questao ao escript q me mandou nao ta dando muito certo ta tendo os erros asseguir
Assets/INIMIGO/script/orccomp.cs(16,48): error CS1061: Type `UnityEngine.Vector3' does not contain a definition for `player' and no extension method `player' of type `UnityEngine.Vector3' could be found. Are you missing an assembly reference?
Assets/INIMIGO/script/orccomp.cs(16,19): error CS1501: No overload for method `Distance' takes `1' arguments
Assets/INIMIGO/script/orccomp.cs(33,69): error CS0214: Pointers and fixed size buffers may only be used in an unsafe context
Assets/INIMIGO/script/orccomp.cs(33,69): error CS0193: The * or -> operator must be applied to a pointer
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class orccomp : MonoBehaviour {
float campo;
public Transform player;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
campo = Vector3.Distance (player.transform.position);
if (campo < 7 ) {
olhar ();
}
if (campo <5) {
olhar ();
seguir ();
}
}
void olhar () {
Quaternion visao;
visao = Quaternion.LookRotation (player.position - transform.position);
transform.rotation = Quaternion.Slerp (transform.rotation, visao*6f * Time.deltaTime);
}
void seguir () {
transform.Translate (Vector3.forward * 2 * Time.deltaTime);
}
}
Re: Ia inimiga pequeno erro
tambem nao foi , mas diminui alguns erros agora deu isso aqJunim escreveu:Tenta isto agora..
Assets/INIMIGO/script/orccomp.cs(16,19): error CS1501: No overload for method `Distance' takes `1' arguments
Assets/INIMIGO/script/orccomp.cs(33,62): error CS0019: Operator `*' cannot be applied to operands of type `UnityEngine.Quaternion' and `float'
Assets/INIMIGO/script/orccomp.cs(33,35): error CS1501: No overload for method `Slerp' takes `2' arguments
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class orccomp : MonoBehaviour {
float campo;
public Transform player;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
campo = Vector3.Distance (transform.position, player.transform.position);
if (campo < 7 ) {
olhar ();
}
if (campo <5) {
olhar ();
seguir ();
}
}
void olhar () {
Quaternion visao;
visao = Quaternion.LookRotation (player.position - transform.position);
transform.rotation = Quaternion.Slerp (transform.rotation, visao, Time.deltaTime*6f);
}
void seguir () {
transform.Translate (Vector3.forward * 2 * Time.deltaTime);
}
}
Tenta isto kkkk ;-; não manjo muito tbm não mais vamo la até conseguir resolver !
Re: Ia inimiga pequeno erro
cara agora foi, o jogo ja ta executando mas ta dando esse erro aq oJunim escreveu:
Tenta isto kkkk ;-; não manjo muito tbm não mais vamo la até conseguir resolver !
UnassignedReferenceException: The variable player of orccomp has not been assigned.
You probably need to assign the player variable of the orccomp script in the inspector.
orccomp.Update () (at Assets/INIMIGO/script/orccomp.cs:16)
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
nossa viajei agora , pensei q tava mexendo com nav mesh q o objt era atribuido sozinho kkkk, coloquei o player como alvo e deu certobravoent escreveu:cara agora foi, o jogo ja ta executando mas ta dando esse erro aq oJunim escreveu:
Tenta isto kkkk ;-; não manjo muito tbm não mais vamo la até conseguir resolver !
UnassignedReferenceException: The variable player of orccomp has not been assigned.
You probably need to assign the player variable of the orccomp script in the inspector.
orccomp.Update () (at Assets/INIMIGO/script/orccomp.cs:16)
muito obrigado pela ajuda nao tem ideia da mao que me deu
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
agora vou trabalhar pra por uma var de atack e as animaçoes vlw mesmo
nossa viajei agora , pensei q tava mexendo com nav mesh q o objt era atribuido sozinho kkkk, coloquei o player como alvo e deu certo
muito obrigado pela ajuda nao tem ideia da mao que me deu
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Ia inimiga pequeno erro
Sim era só associar o player na variavel player la no inspector kkk. De nada, abraços !
Tópicos semelhantes
» [RESOLVIDO] Ajuda pra arrumar pequeno erro no codigo
» [RESOLVIDO]Script com um pequeno defeito
» [TUTORIAL] AI simples inimiga
» [Resolvido]Problema nesse pequeno script
» pequeno problema com audio
» [RESOLVIDO]Script com um pequeno defeito
» [TUTORIAL] AI simples inimiga
» [Resolvido]Problema nesse pequeno script
» pequeno problema com audio
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos