Ajuda com scripts de inimigo e player'' interação de zumbi e player''
+4
Duarte
Robinsandi
rafaelllsd
Weslley
8 participantes
Página 1 de 1
Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Preciso de ajuda com uns scripts, eu tenho eles aqui eles funcionam bem mas não sei como fazer para o zumbi quando matar o player o inimigo mudar a animação de ataque de em pé para ataque agachado que é quando ele continua a devorar o player no chão ja morto e depois de um tempo a cena muda como no resident evil, e enquanto o player esta de pé vivo quando é mordido o player ficar preso pelo zumbi pelo mesmo tempo que leva a mordida sem ser empurrado pelo zumbi , . meu wat sap se alguém souber e me avisar 0549-84225079.
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
- Código:
using UnityEngine;
using System.Collections;
public class Enemy : MonoBehaviour {
private NavMeshAgent agent;
public Transform target;
private Animator animator;
public WeaponBehaviour currentWeapon;
public float distanceToAttack = 2f;
public float distanceToFollow = 5f;
void Awake (){
agent = GetComponent<NavMeshAgent>();
animator = GetComponent<Animator>();
HealthBehaviour.onHealthOver += onHealthOver;
WeaponBehaviour.onWeaponStartAttack += onWeaponStartAttack;
}
void onWeaponStartAttack(GameObject source)
{
if (source == gameObject) {
animator.SetTrigger ("attack");
}
}
void onHealthOver(GameObject source){
if (source == gameObject){
animator.SetTrigger ("morto");
}
}
void Update(){
float currentPlayerDistance = Vector3.Distance (transform.position, target.position);
if (currentPlayerDistance <= distanceToAttack) {
animator.SetBool ("isWalk", false);
currentWeapon.Attack ();
}
else if (currentPlayerDistance <= distanceToFollow){
agent.SetDestination(target.position);
animator.SetBool("isWalk",true);
}
else
{
agent.Stop ();
animator.SetBool("isWalk", false);
}
}
}
- Código:
using UnityEngine;
using System.Collections;
public class HealthBehaviour : MonoBehaviour {
public int maxHealth=100;
public int currentHealth{get;private set;}
public bool isDead{get;private set;}
public delegate void HealthEvent(GameObject sourse);
public static event HealthEvent onHealthOver;
void Awake(){
currentHealth = maxHealth;
isDead = false;
}
public void TakeDamage(int dmg){
if(isDead)return;
currentHealth-= dmg;
if(currentHealth<=0)
{
currentHealth=0;
isDead=true;
if(onHealthOver == null)return;
onHealthOver(gameObject);
}
}
}
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Rigidbody))]
public class PlayerBehaviour : MonoBehaviour {
public Animator animator;
private Rigidbody rb;
public float speedMove = 2f;
public float speedRot =1f;
public WeaponBehaviour currentWeapon;
void Awake(){
rb = GetComponent<Rigidbody> ();
animator = GetComponent<Animator> ();
WeaponBehaviour.onWeaponStartAttack += onAttackStart;
HealthBehaviour.onHealthOver += onHealthOver;
}
void onAttackStart(GameObject owner){
if(owner == gameObject){
animator.SetTrigger ("attack");
}
}
void onHealthOver(GameObject source){
if(source == gameObject){
print ("Player morreu!");
animator.SetTrigger ("morte");
//gameObject.SetActive (false);
}
}
void Update(){
if (Input.GetMouseButtonDown(0)){
//animator.SetTrigger ("attack");
currentWeapon.Attack();
}
}
// Use this for initialization
void FixedUpdate(){
Vector3 moveDir = new Vector3 ();
moveDir.x = Input.GetAxis ("Horizontal");
moveDir.z = Input.GetAxis ("Vertical");
moveDir = transform.TransformDirection (moveDir);
moveDir *= speedMove;
rb.velocity = moveDir;
animator.SetBool ("isWalk", moveDir != Vector3.zero);
}
}
- Código:
using UnityEngine;
using System.Collections;
public class WeaponBehaviour : MonoBehaviour {
public int damage = 25;
public float attackRate = 0;
public float currentAttackRate = 0;
public bool canAttack = true;
public GameObject owner;
public delegate void WeaponEvent(GameObject source);
public static event WeaponEvent onWeaponStartAttack;
void Update () {
if(!canAttack)
{
currentAttackRate += Time.deltaTime;
if(currentAttackRate>attackRate)
{
canAttack = true;
currentAttackRate = 0;
}
}
}
public void Attack(){
if(!canAttack)return;
canAttack =false;
currentAttackRate = 0;
onWeaponStartAttack(owner);
}
void OnTriggerEnter(Collider other){
if (canAttack)return;
if(other.GetComponent<HealthBehaviour>()!=null)
{
HealthBehaviour hb =other.GetComponent<HealthBehaviour>();
hb.TakeDamage(damage);
}
}
}
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
olha o flood ai Brother
Weslley- Moderador
- PONTOS : 5779
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Cria uma variavel GameObject e faz ela receber o player pela tag ou pelo nome, depois faz um if verificando se a vida do player é igual 0 e se tiver numa distancia perto do player ele executa a animação.
rafaelllsd- ProgramadorMaster
- PONTOS : 5294
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
tem como vc me escrever esse codigo e onde eu devo por ele?
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
ALGUEM PRA ME AJUDAR?
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
ALGUEM PRA ME AJUDAR? (2)
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
ALGUEM PRA ME AJUDAR? (3)
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Eae estou aqui para te ajudar kk, primeiro vamos lá:Robinsandi escreveu:ALGUEM PRA ME AJUDAR? (3)
Voce criou um unico topico para varias duvidas correto.
No Script do Inimigo voce faz um verificaçao se o player ta morto chama animaçao.
- Código:
//====================Script Exemple================//
if(playerHealth <= 0)
{
anim.SetTrigger ("Nomedoseutrigger"); //Aqui voce tem que criar um trigger para a animaçao
}
A parte de depois de um tempo carregar a cena tem diversas formas de se fazer como por exemplo:
- Código:
if(vidadoplayer <= 0 ) //Verifica se vida do player for menor ou igual a zero ele faz a açao
{
Invoke ("RestartLevel", 10); //Aqui esse "10" ele espera 10 segundos para chamar a void "RestartLevel".
}
public void RestartLevel ()
{
SceneManager.LoadScene (0); //Aqui ele carrega sua Cena "0"
}
A parte da mordida e o player ficar preso eu não entendi.
Isso foi oque eu entendi, qualquer coisa pode falar!
Duarte- Programador
- PONTOS : 3406
REPUTAÇÃO : 97
Idade : 24
Áreas de atuação : Programação
Desenvolvedor Android
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
a sim a parte da mordida quando o zumbi morde o player o player deveria ignorar os comandos dentro desse tempo pra evitar de eu andar ou continuar andando enquanto é mordido.
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Robinsandi escreveu:a sim a parte da mordida quando o zumbi morde o player o player deveria ignorar os comandos dentro desse tempo pra evitar de eu andar ou continuar andando enquanto é mordido.
Voce faz uma verificaçao no if do inimigo
Exemplo:
- Código:
PlayerBehaviour playerMovement;
void Awake ()
{
playerMovement = GetComponent <PlayerBehaviour> ();
}
if (enemy == attack){ //Verifica se o inimigo esta atacando se tiver e desativa o movimento do player
playerMovement.enabled = false;
}
Duarte- Programador
- PONTOS : 3406
REPUTAÇÃO : 97
Idade : 24
Áreas de atuação : Programação
Desenvolvedor Android
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
apareceu um erro , escrito "Assets/Standard Assets/Characters/ThirdPersonCharacter/Animator/Enemy.cs(28,28): error CS0103: The name `playerHealth' does not exist in the current contex''
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Bom dia Duarte ,eu nao sei onde colocar exatamente os outros codigos que vc me passou sem dar erros ,eu coloquei nos escrips mensionados , se puder me passar esses codigos junto com os que postei no topico pra mim entender melhor .
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Poxa amigo foi mal estou enrolado kk, pera ai vou ver qoue posso fazer aqui para te ajudar!
Duarte- Programador
- PONTOS : 3406
REPUTAÇÃO : 97
Idade : 24
Áreas de atuação : Programação
Desenvolvedor Android
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Entao mexer no Script dos outros é meio dificil sabe, mais acho que consegui kk, caso de algum error Avise caso de certo Avise kkRobinsandi escreveu:Bom dia Duarte ,eu nao sei onde colocar exatamente os outros codigos que vc me passou sem dar erros ,eu coloquei nos escrips mensionados , se puder me passar esses codigos junto com os que postei no topico pra mim entender melhor .
So editei o script do Inimigo e da vida do player.
- Código:
using UnityEngine;
using System.Collections;
public class Enemy : MonoBehaviour {
private UnityEngine.AI.NavMeshAgent agent;
public Transform target;
private Animator animator;
public WeaponBehaviour currentWeapon;
public float distanceToAttack = 2f;
public float distanceToFollow = 5f;
public HealthBehaviour vida;
PlayerBehaviour playerMovement;
void Awake (){
playerMovement = GetComponent <PlayerBehaviour> ();
vida = GetComponent<HealthBehaviour> ();
agent = GetComponent<UnityEngine.AI.NavMeshAgent>();
animator = GetComponent<Animator>();
HealthBehaviour.onHealthOver += onHealthOver;
WeaponBehaviour.onWeaponStartAttack += onWeaponStartAttack;
}
void onWeaponStartAttack(GameObject source)
{
if (source == gameObject) {
animator.SetTrigger ("attack");
}
}
void onHealthOver(GameObject source){
if (source == gameObject){
animator.SetTrigger ("morto");
}
}
void Update(){
float currentPlayerDistance = Vector3.Distance (transform.position, target.position);
if (currentPlayerDistance <= distanceToAttack) { //Eu coloquei dentro desse if pq acho que esse if que é responsavel pelo attack do inimigo caso nao for coloque a linha que eu adicionei abaixo no if responsavel pelo attack do inimigo
animator.SetBool ("isWalk", false);
currentWeapon.Attack ();
playerMovement.enabled = false; //Aqui ele desativa a movimentaçao do seu player
}
else if (currentPlayerDistance <= distanceToFollow){
agent.SetDestination(target.position);
animator.SetBool("isWalk",true);
}
else
{
agent.Stop ();
animator.SetBool("isWalk", false);
}
if (vida.currentHealth <= 0) { //Aqui ele verifica se a vida do player for menor ou = a 0 ele chama a animaçao
animator.SetTrigger ("NomedoTrigger"); //Aqui voce coloca o nome do trigger ou chama a animaçao do jeito que voce sabe
}
}
}
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class HealthBehaviour : MonoBehaviour {
public int maxHealth=100;
public int currentHealth{get;private set;}
public bool isDead{get;private set;}
public delegate void HealthEvent(GameObject sourse);
public static event HealthEvent onHealthOver;
void Awake(){
currentHealth = maxHealth;
isDead = false;
}
public void TakeDamage(int dmg){
if(isDead)return;
currentHealth-= dmg;
if(currentHealth<=0)
{
currentHealth=0;
isDead=true;
if(onHealthOver == null)return;
onHealthOver(gameObject);
}
}
void Update(){
if (currentHealth <= 0) { //Verifica se vida do player for menor ou igual a zero ele faz a açao
Invoke ("RestartLevel", 5); //Aqui esse "5" ele espera 5 segundos para chamar a void "RestartLevel".
}
}
public void RestartLevel ()
{
SceneManager.LoadScene (0); //Aqui ele carrega sua Cena "0"
}
}
Duarte- Programador
- PONTOS : 3406
REPUTAÇÃO : 97
Idade : 24
Áreas de atuação : Programação
Desenvolvedor Android
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
boa noite ele da o seguinte erro; Assets/Standard Assets/Characters/ThirdPersonCharacter/Animator/HealthBehaviour.cs(3,19): error CS0234: The type or namespace name `SceneManagement' does not exist in the namespace `UnityEngine'. Are you missing an assembly reference?
nao sei se tem haver com a versao que eu uso da unity a que uso é 5.0.1f1
nao sei se tem haver com a versao que eu uso da unity a que uso é 5.0.1f1
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Robinsandi escreveu:boa noite ele da o seguinte erro; Assets/Standard Assets/Characters/ThirdPersonCharacter/Animator/HealthBehaviour.cs(3,19): error CS0234: The type or namespace name `SceneManagement' does not exist in the namespace `UnityEngine'. Are you missing an assembly reference?
nao sei se tem haver com a versao que eu uso da unity a que uso é 5.0.1f1
Eu não tenho certeza mas acho que o SceneManagement funciona somente para versões acima da 5.4
acho que pra baixo é com o [Application.LoadLevel]
- Código:
string Cena = "Nome da cena";
Application.LoadLevel (Cena);
// Ou
Application.LoadLevel ("Nome da cena");
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
agora apareceu esse outro ''Assets/Standard Assets/Characters/ThirdPersonCharacter/Animator/Enemy.cs(6,29): error CS0234: The type or namespace name `AI' does not exist in the namespace `UnityEngine'. Are you missing an assembly reference?''
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Se eu quiser lhe mandar o scena pra analizar do unity, como faço?
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
eu consegui enviar o projeto da unity pelo mega pra baixar o link esta aqui https://mega.nz/fm/52xyHIBA
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Cara apenas remova o:
Só é necessário utilizar isso para versões da unity + recentes...
- Código:
using UnityEngine.AI;
Só é necessário utilizar isso para versões da unity + recentes...
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
removi ,mas as animaçoes e outros codigos adicionados nao funcionam se alguém puder baixar o modelo que criei , pra ver qual é o problema agradeço.
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Duarte os ultimos codigos que vc me passou nao sortiu efeito, eu enviei o projeto no Mega pra vc ou outra pessoa dar uma olhada se nao conseguir baixar me avisa. o link do dowload https://mega.nz/fm/52xyHIBA
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Nao estou conseguindo baixar faz o seguinte fale novamente oque voce quer fazer coloque seus scripts e deixe eles comentado com o maximo de explicaçao possivel se de faz video kk, deixa prints..
Explica dinovo oque voce quer que vou ver oque posso fazer!
Explica dinovo oque voce quer que vou ver oque posso fazer!
Duarte- Programador
- PONTOS : 3406
REPUTAÇÃO : 97
Idade : 24
Áreas de atuação : Programação
Desenvolvedor Android
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Duarte eu postei o arquivo do projeto em outro site pro dowload tenta baixar desse se nao conseguir me avisa http://www.mediafire.com/file/mcpzfcjpdcxm73f/ataque.rar
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
1BUG---NullReferenceException: Object reference not set to an instance of an object
Enemy.Update () (at Assets/Standard Assets/Characters/ThirdPersonCharacter/Animator/Enemy.cs:50) esse erro acusava o “playerMovement.enabled = false;” eu tive que desativar com // pra testar outras coisas do jogo.
2BUG --o que percebi é que quando mato o inimigo ele aciona uma animação das mordidas de bruços no inimigo que se estiver encostado no player a animação é loop(cai e levanta) e me afastando do inimigo ele permanece no chão mordendo o chao , o que nao era pra acontecer, o certo era pra quando o inimigo matar o player ele devorar o player no chao. esse bug deve ser porque escript pega o currentHealth que é usado pelo player também .
3BUG---Logo quando o player morre OU O INIMIGO MORRE se reinicia A CENA
4BUG — Após o reinicio da cena quando o inimigo atacar novamente surge esse erro.’’ MissingReferenceException: The object of type 'PlayerBehaviour' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
PlayerBehaviour.onAttackStart (UnityEngine.GameObject owner) (at Assets/Standard Assets/Characters/ThirdPersonCharacter/Animator/PlayerBehaviour.cs:21)
WeaponBehaviour.Attack () (at Assets/Standard
1)Eu preciso que o zumbi quando mata o player ele executa a animaçao que devora o player agachado no chao , sem ficar empurrando ele pra fora do chao.
2) quando o player mata o zumbi que o zumbi não continue perseguindo e atacando o player
3) para melhor entender os bugs o projeto esta disponível para o dowload
http://www.mediafire.com/file/mcpzfcjpdcxm73f/ataque.rar avise se nao conseguir baixar
Enemy.Update () (at Assets/Standard Assets/Characters/ThirdPersonCharacter/Animator/Enemy.cs:50) esse erro acusava o “playerMovement.enabled = false;” eu tive que desativar com // pra testar outras coisas do jogo.
2BUG --o que percebi é que quando mato o inimigo ele aciona uma animação das mordidas de bruços no inimigo que se estiver encostado no player a animação é loop(cai e levanta) e me afastando do inimigo ele permanece no chão mordendo o chao , o que nao era pra acontecer, o certo era pra quando o inimigo matar o player ele devorar o player no chao. esse bug deve ser porque escript pega o currentHealth que é usado pelo player também .
3BUG---Logo quando o player morre OU O INIMIGO MORRE se reinicia A CENA
4BUG — Após o reinicio da cena quando o inimigo atacar novamente surge esse erro.’’ MissingReferenceException: The object of type 'PlayerBehaviour' has been destroyed but you are still trying to access it.
Your script should either check if it is null or you should not destroy the object.
PlayerBehaviour.onAttackStart (UnityEngine.GameObject owner) (at Assets/Standard Assets/Characters/ThirdPersonCharacter/Animator/PlayerBehaviour.cs:21)
WeaponBehaviour.Attack () (at Assets/Standard
1)Eu preciso que o zumbi quando mata o player ele executa a animaçao que devora o player agachado no chao , sem ficar empurrando ele pra fora do chao.
2) quando o player mata o zumbi que o zumbi não continue perseguindo e atacando o player
3) para melhor entender os bugs o projeto esta disponível para o dowload
http://www.mediafire.com/file/mcpzfcjpdcxm73f/ataque.rar avise se nao conseguir baixar
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
alguem pra me ajudar . por favor
Robinsandi- Membro
- PONTOS : 2827
REPUTAÇÃO : 0
Respeito as regras :
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
eu surgir, k, vou ver se entendo e resovo se ainda tiver problema ne, como dito nos primeiros respostas e meio dificil entender o scripts dos proprios criadores, se consegui dou retorno se nao nuncka mais retorno... huehue
Re: Ajuda com scripts de inimigo e player'' interação de zumbi e player''
vc viu o link do projeto que deixei pra baixar na minha penúltima postagemfelipehobs1 escreveu:eu surgir, k, vou ver se entendo e resovo se ainda tiver problema ne, como dito nos primeiros respostas e meio dificil entender o scripts dos proprios criadores, se consegui dou retorno se nao nuncka mais retorno... huehue
robinson.sandi- Iniciante
- PONTOS : 3071
REPUTAÇÃO : 0
Respeito as regras :
robinsonsandi- Iniciante
- PONTOS : 2639
REPUTAÇÃO : 0
Respeito as regras :
Tópicos semelhantes
» AJuda Inimigo seguir o Player sem NavMesh
» erro no scripts de dano no player 2D
» Error building Player because scripts had compiler errors
» (Ajuda) Parede sem colisão para zumbi
» PRECISO DE SCRIPTS PARA ADD INIMIGO NO MAPA
» erro no scripts de dano no player 2D
» Error building Player because scripts had compiler errors
» (Ajuda) Parede sem colisão para zumbi
» PRECISO DE SCRIPTS PARA ADD INIMIGO NO MAPA
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos