ajuda com script de inimigo
+5
nemps
iahGod
hellkiller
rafaelllsd
phlg123
9 participantes
Página 1 de 1
ajuda com script de inimigo
Olá. Presciso de um script para criar um vetor e agrupar meu inimigos dentro dele, e cada vezum inimigo colidir com a bala o vetor perca um inimigo, e se todos eles morrerem carregar a cena de vitória q eu criei com o nome "Vitoria". Alguém pode me passar um script pra isso?
phlg123- Iniciante
- PONTOS : 3275
REPUTAÇÃO : 1
Respeito as regras :
Re: ajuda com script de inimigo
Faz o seguinte cria uma int e nela poe o tanto de inimigo que você quer por exemplophlg123 escreveu:Olá. Presciso de um script para criar um vetor e agrupar meu inimigos dentro dele, e cada vezum inimigo colidir com a bala o vetor perca um inimigo, e se todos eles morrerem carregar a cena de vitória q eu criei com o nome "Vitoria". Alguém pode me passar um script pra isso?
- Código:
public int Inimigos = 5;
rafaelllsd- ProgramadorMaster
- PONTOS : 5242
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: ajuda com script de inimigo
Cara até entendi um pouco mais poderia me explicar melhor? ?? Não entendi muito bem.
phlg123- Iniciante
- PONTOS : 3275
REPUTAÇÃO : 1
Respeito as regras :
Re: ajuda com script de inimigo
Sendo mais especifico eu não entendi a parte do int. Eu não deveria usar uma do tipo game object??
phlg123- Iniciante
- PONTOS : 3275
REPUTAÇÃO : 1
Respeito as regras :
Re: ajuda com script de inimigo
Vc tem inimigos certo?
Vc pode contar os inimigos com int.
Cada inimigo conta 1, no seu script do inimigo toda vez que um morrer o int perdi 1
Vc pode contar os inimigos com int.
Cada inimigo conta 1, no seu script do inimigo toda vez que um morrer o int perdi 1
- Código:
Inimigos --;
hellkiller- Mestre
- PONTOS : 4054
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: ajuda com script de inimigo
Cara poderia postar um script completo? ? Não estou entendendo nada. Onde eu coloco esse script?? Tenho 5 inimigos como vou colocqlos numa variavel int?? O correto não e um gameobject???
phlg123- Iniciante
- PONTOS : 3275
REPUTAÇÃO : 1
Respeito as regras :
Re: ajuda com script de inimigo
Vejo que vc ainda e novato com scripts, vc pode criar um script central.
1-Crie um script chame de Exemplo(InimigosController)
2-Coloque aqui no site nesse topico o seu script de morte dos inimigos
3-Vamos ligar os seus scripts com o inimigoController , tem que ser C#.
4-E vamos fazer o esquema de descontar os inimigos no script!
1-Crie um script chame de Exemplo(InimigosController)
2-Coloque aqui no site nesse topico o seu script de morte dos inimigos
3-Vamos ligar os seus scripts com o inimigoController , tem que ser C#.
4-E vamos fazer o esquema de descontar os inimigos no script!
hellkiller- Mestre
- PONTOS : 4054
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: ajuda com script de inimigo
Cara meus inimigos são zumbis q não se movem. Eu ja modelei o zumbi e copiei mais 4. So quero q quando um colidir com a bala ele morra e quando todos morrerem carregue minha cena Vitória
phlg123- Iniciante
- PONTOS : 3275
REPUTAÇÃO : 1
Respeito as regras :
Re: ajuda com script de inimigo
Vc ja tem um script de morte dos zumbis?
hellkiller- Mestre
- PONTOS : 4054
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: ajuda com script de inimigo
Não. apenas quero q quando eles colidirem com a bala es
les sejam destruídos com um destroy. So isso. E preciso q quando todos forem destruidos carreguw minha cena Vitória
les sejam destruídos com um destroy. So isso. E preciso q quando todos forem destruidos carreguw minha cena Vitória
phlg123- Iniciante
- PONTOS : 3275
REPUTAÇÃO : 1
Respeito as regras :
Re: ajuda com script de inimigo
Eu fiz um script rapidão, não sei se vai pegar, da uma olhada... Se não funfar fala que tento arrumar
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class inimigoController : MonoBehaviour {
public float HP;//vida do inimigo
public float Dammage; //dano que o inimigo vai receber com a bala
public int Inimigos = 5; //Aqui a quantidade de inimigo, no caso aqui tem 5
void Start()
{
}
void Update()
{
if (HP <= 0)
{
Destroy(gameObject); //quando um inimigo morrer, ele vai se destruir
Inimigos = Inimigos - 1; //e quando ele morre, a quantidade de inimigos é reduzida a 1
}
if(Inimigos <= 0)//se inimigos for igual a 0, ele vai carregar a cena
{
SceneManager.LoadScene("NomeDaCenaDeVitoria");//aqui vc coloca o nome da cena
}
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("projetil"))//na bala, vc coloca a tag projetil
{
HP = HP - Dammage;//quando o inimigo levar o tiro ele vai receber o dano, no caso 15
}
}
}
Re: ajuda com script de inimigo
Po cara funcionou. Era isso q eu queria. MUITO OBRIGADO. mais eu tenho q botar esse script em cada inimigo correto???
phlg123- Iniciante
- PONTOS : 3275
REPUTAÇÃO : 1
Respeito as regras :
Re: ajuda com script de inimigo
Isso n iria funcionar pois tem que ficar no seu inimigo e ele e destruido.
Script inimigo :
(O inimigo e a bala tem que ter um Ontrigger, e a bala tem que ter a tag bala)
N se esqueça de linkar o objeto que esta com o script do InimigoController
Testa ai pode conter erros!, n testei no meu pc!
Obs: siga todas as instruções, e n se esqueça do like!!
Script inimigo :
(O inimigo e a bala tem que ter um Ontrigger, e a bala tem que ter a tag bala)
N se esqueça de linkar o objeto que esta com o script do InimigoController
- Código:
using UnityEngine;
using System.Collections;
public class MotoBaseC : MonoBehaviour {
public InimigoController inimigoController;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Bala")
{
inimigoController.Mortes--;
Destroy(gameObject);
}
}
}
- Código:
using UnityEngine;
using System.Collections;
public class InimigoController : MonoBehaviour {
public int Mortes = 5;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Mortes == 0)
{
SceneManager.LoadScene("NomeDaCenaDeVitoria");//aqui vc coloca o nome da cena
}
}
}
Testa ai pode conter erros!, n testei no meu pc!
Obs: siga todas as instruções, e n se esqueça do like!!
hellkiller- Mestre
- PONTOS : 4054
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: ajuda com script de inimigo
hellkiller escreveu:Isso n iria funcionar pois tem que ficar no seu inimigo e ele e destruido.
Script inimigo :
(O inimigo e a bala tem que ter um Ontrigger, e a bala tem que ter a tag bala)
N se esqueça de linkar o objeto que esta com o script do InimigoControllerScript InimigoController,deve estar em um objeto vazio.
- Código:
using UnityEngine;
using System.Collections;
public class MotoBaseC : MonoBehaviour {
public InimigoController inimigoController;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
}
void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Bala")
{
inimigoController.Mortes--;
Destroy(gameObject);
}
}
}
- Código:
using UnityEngine;
using System.Collections;
public class InimigoController : MonoBehaviour {
public int Mortes = 5;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Mortes == 0)
{
SceneManager.LoadScene("NomeDaCenaDeVitoria");//aqui vc coloca o nome da cena
}
}
}
Testa ai pode conter erros!, n testei no meu pc!
Obs: siga todas as instruções, e n se esqueça do like!!
Verdade,não tinha lembrado que o inimigo iria destruir e que teria que fazer dois scripts...
Re: ajuda com script de inimigo
Ha blz cara vlw
phlg123- Iniciante
- PONTOS : 3275
REPUTAÇÃO : 1
Respeito as regras :
Re: ajuda com script de inimigo
pessoal eu fiz um script pro meu inimigo mas eu queria que quando ele morresse tivesse uma animação e depois sumisse
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyControllerBehaviourScript : MonoBehaviour {
public int health;
public float distanceAttack;
public float velocidade;
protected bool isMoving = false;
public bool isAlive = true;
protected Rigidbody2D rb;
protected Animator an;
protected Transform player;
protected SpriteRenderer sprite;
void Awake () {
rb = GetComponent<Rigidbody2D> ();
an = GetComponent<Animator> ();
sprite = GetComponent<SpriteRenderer>();
player = GameObject.Find ("Player").GetComponent<Transform> ();
}
protected float PlayerDistance(){
return Vector2.Distance (player.position, transform.position);
}
protected void Flip() {
sprite.flipX = !sprite.flipX;
velocidade *= -1;
}
protected virtual void Update() {
if (isAlive) {
float distance = PlayerDistance ();
isMoving = (distance <= distanceAttack);
if (isMoving) {
if ((player.position.x > transform.position.x && sprite.flipX) ||
(player.position.x < transform.position.x && !sprite.flipX)) {
Flip ();
}
}
}
}
public void DamageEnemy(int damageBullet){
health -= damageBullet;
StartCoroutine (Damage ());
if (health < 1) {
isAlive = false;
Destroy (gameObject, 0.3f);
an.SetTrigger ("Death");
}
}
public void DamageEnemy2(int damageSword){
health -= damageSword;
StartCoroutine (Damage ());
if (health < 1) {
isAlive = false;
Destroy (gameObject, 0.2f);
an.SetTrigger ("Death");
}
}
IEnumerator Damage(){
sprite.color = Color.red;
yield return new WaitForSeconds (0.1f);
sprite.color = Color.white;
}
}
nemps- Iniciante
- PONTOS : 2432
REPUTAÇÃO : 0
Respeito as regras :
Re: ajuda com script de inimigo
nemps escreveu:pessoal eu fiz um script pro meu inimigo mas eu queria que quando ele morresse tivesse uma animação e depois sumisse, nesse caso ele faz isso, só que durante a animação ele ainda colide com o player e causa o dano
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyControllerBehaviourScript : MonoBehaviour {
public int health;
public float distanceAttack;
public float velocidade;
protected bool isMoving = false;
public bool isAlive = true;
protected Rigidbody2D rb;
protected Animator an;
protected Transform player;
protected SpriteRenderer sprite;
void Awake () {
rb = GetComponent<Rigidbody2D> ();
an = GetComponent<Animator> ();
sprite = GetComponent<SpriteRenderer>();
player = GameObject.Find ("Player").GetComponent<Transform> ();
}
protected float PlayerDistance(){
return Vector2.Distance (player.position, transform.position);
}
protected void Flip() {
sprite.flipX = !sprite.flipX;
velocidade *= -1;
}
protected virtual void Update() {
if (isAlive) {
float distance = PlayerDistance ();
isMoving = (distance <= distanceAttack);
if (isMoving) {
if ((player.position.x > transform.position.x && sprite.flipX) ||
(player.position.x < transform.position.x && !sprite.flipX)) {
Flip ();
}
}
}
}
public void DamageEnemy(int damageBullet){
health -= damageBullet;
StartCoroutine (Damage ());
if (health < 1) {
isAlive = false;
Destroy (gameObject, 0.3f);
an.SetTrigger ("Death");
}
}
public void DamageEnemy2(int damageSword){
health -= damageSword;
StartCoroutine (Damage ());
if (health < 1) {
isAlive = false;
Destroy (gameObject, 0.2f);
an.SetTrigger ("Death");
}
}
IEnumerator Damage(){
sprite.color = Color.red;
yield return new WaitForSeconds (0.1f);
sprite.color = Color.white;
}
}
nemps- Iniciante
- PONTOS : 2432
REPUTAÇÃO : 0
Respeito as regras :
Re: ajuda com script de inimigo
não sei se é uma opção viável, mas eu deixo uma booleana que é ativada quando ele morre, essa booleana eu uso de parâmetro para todas outras acoes do inimigo
Fluttershy28- Avançado
- PONTOS : 2752
REPUTAÇÃO : 52
Idade : 27
Áreas de atuação : Modelagem, Animação, Texturização, Design
Respeito as regras :
Re: ajuda com script de inimigo
nemps escreveu:nemps escreveu:pessoal eu fiz um script pro meu inimigo mas eu queria que quando ele morresse tivesse uma animação e depois sumisse, nesse caso ele faz isso, só que durante a animação ele ainda colide com o player e causa o dano
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyControllerBehaviourScript : MonoBehaviour {
public int health;
public float distanceAttack;
public float velocidade;
protected bool isMoving = false;
public bool isAlive = true;
protected Rigidbody2D rb;
protected Animator an;
protected Transform player;
protected SpriteRenderer sprite;
void Awake () {
rb = GetComponent<Rigidbody2D> ();
an = GetComponent<Animator> ();
sprite = GetComponent<SpriteRenderer>();
player = GameObject.Find ("Player").GetComponent<Transform> ();
}
protected float PlayerDistance(){
return Vector2.Distance (player.position, transform.position);
}
protected void Flip() {
sprite.flipX = !sprite.flipX;
velocidade *= -1;
}
protected virtual void Update() {
if (isAlive) {
float distance = PlayerDistance ();
isMoving = (distance <= distanceAttack);
if (isMoving) {
if ((player.position.x > transform.position.x && sprite.flipX) ||
(player.position.x < transform.position.x && !sprite.flipX)) {
Flip ();
}
}
}
}
public void DamageEnemy(int damageBullet){
health -= damageBullet;
StartCoroutine (Damage ());
if (health < 1) {
isAlive = false;
Destroy (gameObject, 0.3f);
an.SetTrigger ("Death");
}
}
public void DamageEnemy2(int damageSword){
health -= damageSword;
StartCoroutine (Damage ());
if (health < 1) {
isAlive = false;
Destroy (gameObject, 0.2f);
an.SetTrigger ("Death");
}
}
IEnumerator Damage(){
sprite.color = Color.red;
yield return new WaitForSeconds (0.1f);
sprite.color = Color.white;
}
}
1 - Tente comentar os seus scripts pois ele limpo e difícil de entender
2 - Te Recomendo fazer o seguinte: Criar uma bool para checar se o inimigo esta vivo,se estiver true, o inimigo poderá se mover e atacar o player.
Pelo motivo de o script não esta comentado, não conseguirei entender a funcionalidade se ele se comunica com outro script, para modificá-lo para que se encaixe com oq vc quer.
Mesmo assim não e algo muito difícil de se fazer
BRGC- ProgramadorMaster
- PONTOS : 3052
REPUTAÇÃO : 59
Idade : 20
Áreas de atuação : C#, C++, C, Flutter
Respeito as regras :
Re: ajuda com script de inimigo
Ja tentou desabilitar o colisor dele quando ele morre?
Phph09- Profissional
- PONTOS : 3789
REPUTAÇÃO : 240
Idade : 19
Respeito as regras :
Re: ajuda com script de inimigo
Voce pode fazer assim tambem,
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class InimigoController : MonoBehaviour {//Esse script voce colocar em um object vazil
public int enemys = 5;//quantidades de inimigos no mapa
public string nomeScene;//nome da scene (mapa)
public static InimigoController ic;//para poder intanciar o script
// Use this for initialization
void Start () {
ic = this;//intanciando o script
}
// Update is called once per frame
void Update () {
if (enemys == 0)//Se a quantidade for 0
{
SceneManager.LoadScene(nomeScene);//aqui vc coloca o nome da cena
}
}
}
- Código:
using UnityEngine;
using System.Collections;
public class Enemy : MonoBehaviour {//Esse script fica em cada inimigo
public float life = 100;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void Damage(float dmg)
{
life -= dmg)
if(life <= 0){
InimigoController.ic.enemys -= 1;//Diminuindo a quantidades de enemys no script InimigoController
StartCoroutine (Dead ());//enemy morreu
}
}
IEnumerator Dead()//
{
yield return new WaitForSeconds (0.2f);
Destroy(gameObject);
}
}
}
Tópicos semelhantes
» Ajuda em script Inimigo AI
» Preciso de ajuda com esse script da IA de um inimigo
» [AJUDA]Quero Ajuda poque esse script so da erro!
» [Ajuda]Inimigo
» Script de health de inimigo sendo acessado mesmo sem acerta o inimigo
» Preciso de ajuda com esse script da IA de um inimigo
» [AJUDA]Quero Ajuda poque esse script so da erro!
» [Ajuda]Inimigo
» Script de health de inimigo sendo acessado mesmo sem acerta o inimigo
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos