Inimigo ao seguir flutua [ajuda]
3 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Inimigo ao seguir flutua [ajuda]
gente fiz esse script aq , pro meu orc seguir meu personagem e atacar , mas quando troco de altura no mapa o orc continua seguindo mas flutua - se eu caio de um lugar ele nao cai vem decendo no ar até chegar , alguem tem uma ideia de como resolver ?
float campo;
public Transform player;
public AnimationClip Idle;
public AnimationClip WalkAnim;
public Animation animationCharacter;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
campo = Vector3.Distance (transform.position, player.transform.position);
if (campo < 10 & campo >2 ) {
Quaternion visao;
visao = Quaternion.LookRotation (player.position - transform.position);
transform.rotation = Quaternion.Slerp (transform.rotation, visao, Time.deltaTime * 6f);
transform.Translate (Vector3.forward * 2* Time.deltaTime);
animationCharacter.CrossFade (WalkAnim.name);
}
if (campo < 2 ) {
Quaternion direcao;
direcao = Quaternion.LookRotation (player.position - transform.position );
transform.rotation = Quaternion.Slerp (transform.rotation, direcao, Time.deltaTime * 6f);
animationCharacter.CrossFade (Idle.name);
}
}
}
float campo;
public Transform player;
public AnimationClip Idle;
public AnimationClip WalkAnim;
public Animation animationCharacter;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
campo = Vector3.Distance (transform.position, player.transform.position);
if (campo < 10 & campo >2 ) {
Quaternion visao;
visao = Quaternion.LookRotation (player.position - transform.position);
transform.rotation = Quaternion.Slerp (transform.rotation, visao, Time.deltaTime * 6f);
transform.Translate (Vector3.forward * 2* Time.deltaTime);
animationCharacter.CrossFade (WalkAnim.name);
}
if (campo < 2 ) {
Quaternion direcao;
direcao = Quaternion.LookRotation (player.position - transform.position );
transform.rotation = Quaternion.Slerp (transform.rotation, direcao, Time.deltaTime * 6f);
animationCharacter.CrossFade (Idle.name);
}
}
}
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Inimigo ao seguir flutua [ajuda]
tambem nao deu certo T-T
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Inimigo ao seguir flutua [ajuda]
- Código:
float velo;
void Start() {
rb = GetComponent<Rigidbody>();
}
void Update(){
alvorota = Quaternion.LookRotation(alvo.position - transform.position, Vector3.up);
transform.rotation = Quaternion.Slerp(transform.rotation, alvoroteition , Time.deltaTime * 4);
//Isso ja vai fazer ele girar em direção do alvo(Player)
rb.AddRelativeForce(Vector3.forward * velo);
}
isso deve ajudar.
Essa script vai fazer o inimigo girar na direção do player e depois ir atras dele.
" Não testei, não sei se ta certo "
Re: Inimigo ao seguir flutua [ajuda]
ta aparecendo aq q o "rb.AddRelativeForce " nao tem definiçao , sou novo com c# da uma olhada se encrementei certo o scriptMatrirxp escreveu:
isso deve ajudar.
Essa script vai fazer o inimigo girar na direção do player e depois ir atras dele.
" Não testei, não sei se ta certo "
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Int32;
public class IaOrc2 : MonoBehaviour {
int rb ;
float velo;
float campo;
public Transform player;
public AnimationClip Idle;
public AnimationClip WalkAnim;
public Animation animationCharacter;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
campo = Vector3.Distance (transform.position, player.transform.position);
if (campo < 10 & campo >2 ) {
Quaternion visao;
visao = Quaternion.LookRotation (player.position - transform.position);
transform.rotation = Quaternion.Slerp (transform.rotation, visao, Time.deltaTime * 6f);
transform.Translate (Vector3.forward * 2* Time.deltaTime);
rb.AddRelativeForce(Vector3.forward * velo);
animationCharacter.CrossFade (WalkAnim.name);
}
if (campo < 2 ) {
Quaternion direcao;
direcao = Quaternion.LookRotation (player.position - transform.position );
transform.rotation = Quaternion.Slerp (transform.rotation, direcao, Time.deltaTime * 6f);
animationCharacter.CrossFade (Idle.name);
}
}
}
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Re: Inimigo ao seguir flutua [ajuda]
Claro, tu ta usando Translate
Usa NavMesh para movimentar o inimigo:
Usa NavMesh para movimentar o inimigo:
Re: Inimigo ao seguir flutua [ajuda]
[list=linenums]
[*]
[*]if (campo < 10 & campo >2 ) {
[*] Quaternion visao;
[*] visao = Quaternion.LookRotation (player.position - transform.position);
[*] transform.rotation = Quaternion.Slerp (transform.rotation, visao, Time.deltaTime * 6f);
[*]
[*] rb.AddRelativeForce(Vector3.forward * velo);
[*] animationCharacter.CrossFade (WalkAnim.name);
[*] }
[*]//Tira o Translate
[/list]
[*]
[*]if (campo < 10 & campo >2 ) {
[*] Quaternion visao;
[*] visao = Quaternion.LookRotation (player.position - transform.position);
[*] transform.rotation = Quaternion.Slerp (transform.rotation, visao, Time.deltaTime * 6f);
[*]
[*] rb.AddRelativeForce(Vector3.forward * velo);
[*] animationCharacter.CrossFade (WalkAnim.name);
[*] }
[*]//Tira o Translate
[/list]
Re: Inimigo ao seguir flutua [ajuda]
vlw marcos consegui fazer. como eu ponho resolvido?MarcosSchultz escreveu:Claro, tu ta usando Translate
Usa NavMesh para movimentar o inimigo:
a tenho uma duvida , quando eu mato meu nimigo todos morrem , sei q é porque a vida ta como var static , crio outro topico sobre ela ?
bravoent- Avançado
- PONTOS : 2916
REPUTAÇÃO : 16
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Inimigo seguir o player
» INIMIGO SEGUIR COM ANIMAÇÕES
» Inimigo seguir o player
» Inimigo seguir quando ver o player
» Inimigo Em C# Seguir e Atacar o Player !
» INIMIGO SEGUIR COM ANIMAÇÕES
» Inimigo seguir o player
» Inimigo seguir quando ver o player
» Inimigo Em C# Seguir e Atacar o Player !
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos