SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Verificar inventario
Unity Ads ou AdMob!
Render texture invertida
Como fazer barco estilo minecraft ou estilo navio que da pra andar dentro
Como fazer para o tiro ir para a direção onde o cano está apontado e não para cima
Como locomover um trem
Me ajudem, com a criação de terreno !
Pequeno problema com no Debug
Como fazer Escudo seguir a movimentação do Player?
Building System
TELEPORT 2D
Adicionar linhas no TXT pelo codigo
[TUTORIAL] Sistema de inventário Sobrevivência
Formação De Equipe Pra Criar RPG
Como não perder qualidade nas texturas 2d?
IDB JAM #10
MOVIMENTAÇÃO EM 8 DIREÇÕES.
animações não sendo reproduzidas
Seguir um raio no raycast a partir do ponto da tela clicado
Personagem morrer ao cair da tela
Deixar objeto invisível.
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Divulgaçao de Battle of Worlds
[Resolvido]Problema nesse pequeno script
Movimentação
Puzzle para jogo de terror , abrir portas etc..
Script para mudar posição do personagem
Baixos Brasil - Jogo de Carro Brasileiro!
Como saber quando minha animação terminou?
system inventory , craft
ajuda
Aplicar roupa no Rig do blender...
Project Valley of Trees - Primeiro nome que faz sentido KK
A.S TRUCK
Som de correr não para de tocar
Reproduzir audio no if c## e musica continuar tocando entre cenas.
Como Colocar Pontuação Final na GUI de GAME OVER
Unity 2017 Iluminação RealTime VS Baked [Comparaçâo]
DUVIDA : Raycast
Programador para equipe
Da pra colocar sisteminha em um jogo da unity pra trolar quem for piratear o jogo?
Como colocar musicas em sequencia para tocar?
Trajetória da bala com predição
Ajudinha com Bug
[RESOLVIDO] Poblema com Rigidbody
[DEVLOG] Projeto - Girl Blade (download Pré-Alpha)
Erro ao bulidar para Windows(.exe)
Mudar a gravidade com rotação (sensores do smartphone)
Problemas na detecção de colisão
Trabalhar simultaneamente na Unity
Movimetaçao infinita
(duvida)pq isso acontece com o inimigo?
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
[DUVIDA] Como alterar a intensidade do ChromaticAberration do PostProcessing?
Joystick VR não funciona no ios
Problema na minha animação feita na Unity
[TUTORIAL] Unity 5 - Como criar o próprio FPS Controller
IA para inimigo seguir o jogador ( Plataforma )
Tirar Fotos no Unity 5 FPS
[TUTORIAL] Cena inicial de CARREGAMENTO, creditos, logo, etc [UNITY 5]
Como Limitar Spawn de Hordas
Desmembramento
Exemplo de UI com abas - utilizando toggles e toggle group.
Ajuda Blender
Quando Instancio botão ele não aparece no canvas
Sistema de pesca 2D
[TUTORIAL] Derrubar arvores e dropar madeiras dela
Auto-Complete do Visual Studios
Metroidvania - procuro membros
Criação de Update para Seus jogos?
Blender, animação + Unity
Preciso de alguém que desenvolva Craft, e Inventario com sistema de Bolsas, Pago bem
Detectar Hit
[MODELADOR] Procurando Projetos
Carákas que Tops WO.OW
Anexar GameObject por scrit
Como cria um sistema de seve game
[DUVIDA] Trocar botoes no teclado por joystick UI
Efeito de Audio
Bug de sumir todas as modelagens 3D na unity 2017
Quero fazer minha propria lens flare
Menu para selecao de cena
Dificuldades com programação no Unity 5 2D
Bug ? offline e online
Conflito de ações HELP
como saber a posição que a particula bateu?
Formação de Equipe Battle of Worlds
[JOGO EM BETA] Batalha de Canhão
Jogo de sobrevivência na ilha PRE-Alpha
Inimigo ao encostar morre e player leva dano UNITY 5 2D
Como faço blocos que somem so clikando neles 1 vez?
Light Bug
Como criar inventário simples no unity
Como fasso para que clico em um botao e aumente o volume junto com grave em uma musica?
como que criar um sitema tipo o do rocket league
tem como criar um modelo no sketchup e exportar pra unity, mas sem os componentes
(duvida)pq aconteçe isso com a luz
Como posso deixar o MENU do meu jogo adequado ao monitor?
Dúvida com o Update
Ontem à(s) 10:40 pm
Ontem à(s) 10:03 pm
Ontem à(s) 9:37 pm
Ontem à(s) 9:36 pm
Ontem à(s) 9:31 pm
Ontem à(s) 7:17 pm
Ontem à(s) 6:16 pm
Ontem à(s) 5:37 pm
Ontem à(s) 4:02 pm
Ontem à(s) 3:54 pm
Ontem à(s) 12:19 pm
Ontem à(s) 12:17 pm
Ontem à(s) 11:00 am
Ontem à(s) 9:00 am
Qua Set 20, 2017 11:07 pm
Qua Set 20, 2017 9:27 pm
Qua Set 20, 2017 7:22 pm
Qua Set 20, 2017 7:17 pm
Qua Set 20, 2017 6:01 pm
Qua Set 20, 2017 9:57 am
Qua Set 20, 2017 7:07 am
Qua Set 20, 2017 12:13 am
Ter Set 19, 2017 11:53 pm
Ter Set 19, 2017 10:15 pm
Ter Set 19, 2017 8:34 pm
Ter Set 19, 2017 7:40 pm
Ter Set 19, 2017 4:29 pm
Ter Set 19, 2017 12:25 pm
Ter Set 19, 2017 12:14 pm
Ter Set 19, 2017 10:55 am
Ter Set 19, 2017 10:26 am
Ter Set 19, 2017 8:21 am
Ter Set 19, 2017 2:42 am
Seg Set 18, 2017 10:20 pm
Seg Set 18, 2017 9:16 pm
Seg Set 18, 2017 8:40 pm
Seg Set 18, 2017 8:39 pm
Seg Set 18, 2017 8:08 pm
Seg Set 18, 2017 4:33 pm
Seg Set 18, 2017 2:22 pm
Seg Set 18, 2017 12:15 pm
Seg Set 18, 2017 9:33 am
Seg Set 18, 2017 8:21 am
Seg Set 18, 2017 12:59 am
Dom Set 17, 2017 5:04 pm
Dom Set 17, 2017 3:45 pm
Dom Set 17, 2017 10:49 am
Sab Set 16, 2017 11:18 pm
Sab Set 16, 2017 5:57 pm
Sab Set 16, 2017 4:10 pm
Sab Set 16, 2017 3:05 pm
Sab Set 16, 2017 2:23 pm
Sab Set 16, 2017 12:40 pm
Sab Set 16, 2017 12:16 pm
Sab Set 16, 2017 10:17 am
Sab Set 16, 2017 9:53 am
Sab Set 16, 2017 9:26 am
Sab Set 16, 2017 9:10 am
Sex Set 15, 2017 11:51 pm
Sex Set 15, 2017 8:27 pm
Sex Set 15, 2017 7:27 pm
Sex Set 15, 2017 6:17 pm
Sex Set 15, 2017 3:08 pm
Sex Set 15, 2017 11:19 am
Sex Set 15, 2017 9:43 am
Qui Set 14, 2017 11:50 pm
Qui Set 14, 2017 9:08 pm
Qui Set 14, 2017 3:17 pm
Qui Set 14, 2017 1:55 pm
Qui Set 14, 2017 12:13 pm
Qui Set 14, 2017 10:07 am
Qua Set 13, 2017 9:52 pm
Qua Set 13, 2017 11:34 am
Ter Set 12, 2017 10:33 pm
Ter Set 12, 2017 10:21 pm
Ter Set 12, 2017 9:34 pm
Ter Set 12, 2017 8:52 pm
Ter Set 12, 2017 8:51 pm
Ter Set 12, 2017 7:05 pm
Ter Set 12, 2017 6:53 pm
Ter Set 12, 2017 6:51 pm
Ter Set 12, 2017 3:04 pm
Ter Set 12, 2017 2:04 pm
Ter Set 12, 2017 11:54 am
Ter Set 12, 2017 9:59 am
Ter Set 12, 2017 9:43 am
Ter Set 12, 2017 12:17 am
Seg Set 11, 2017 8:54 pm
Seg Set 11, 2017 8:48 pm
Seg Set 11, 2017 8:12 pm
Seg Set 11, 2017 7:18 pm
Seg Set 11, 2017 6:15 pm
Seg Set 11, 2017 6:02 pm
Seg Set 11, 2017 5:31 pm
Seg Set 11, 2017 5:22 pm
Seg Set 11, 2017 5:06 pm
Seg Set 11, 2017 4:53 pm
Seg Set 11, 2017 4:17 pm
Seg Set 11, 2017 4:15 pm
916anderson
Duarte
g
Unidade3d5
Weslley
Zecandy
EndStarsProgramming2
ManoTrevor
JorgeLuizxd
AndyShow
Weslley
Weslley
916anderson
Bruno
JorgeLuizxd
dimmuo
Weslley
Phph09
Weslley
Bruno
GabriG07
Dom3000
Dom3000
g
Weslley
Zecandy
Weslley
Duarte
artplayer
PatifeCraft
Lteo
Fagner
Madness
PatifeCraft
dstaroski
eduu10
JorgeLuizxd
MateusWTP
Weslley
Brunotrinkss
guimaraf
Weslley
guimaraf
ManoTrevor
PedroL123
dstaroski
GabriG07
Brgs886
Madness
Fagner
PedroL123
glauco
Callyde Jr
JorgeLuizxd
Henrique Ramires
Weslley
Weslley
Weslley
Weslley
Weslley
Weslley
916anderson
rafaelllsd
Fagner
Fagner
rafaelllsd
PatifeCraft
Weslley
Carlin
artplayer
Ronnisz
Jhonatham1
Callyde Jr
mrariel2011
AndyShow
Fagner
PatifeCraft
Alerson Software
AndyShow
AndyShow
AndyShow
Alessandra Matheus
Lteo
Callyde Jr
Weslley
Dom3000
Dom3000
dstaroski
dstaroski
guilhermeprata
DUT
Duarte
PatifeCraft
heliab125
MarcosSchultz
MarcosSchultz
glauco
MarcosSchultz
MarcosSchultz

[Ajuda] Erro ao instanciar personagems (photon)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

DÚVIDA [Ajuda] Erro ao instanciar personagems (photon)

Mensagem por Sshisbachza em Sex Jul 07, 2017 1:45 pm

Olá, Tenho um sistema de escolha de times,quando seleciono o time e logo na scene do jogo os personagems não se instanciam e da erro na linha photon view. o jogo é um moba onde você controla 3 personagems



Script SelecionarTime;
Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class SelecionarTime : MonoBehaviour {

   public static int team = -1;
   //0 = blue
   //1 = red
   public GameObject ButtonRed;
   public GameObject ButtonBlue;

   public void Update(){

   }

   public void SelectTeamS(int teams){
      if (teams == 0) {
         team = 0;
      }
      if (teams == 1) {
         team = 1;
      }
   }

   public void Hide(){
   }
   public void ClickButtonRed(){
      ButtonRed.SetActive (false);
      team = 1;
      Application.LoadLevel ("GamePlay");
   }
   public void ClickButtonBlue(){
      ButtonBlue.SetActive (false);
      team = 0;
      Application.LoadLevel ("GamePlay");
   }
}

Script SpawnPlayers:
Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SpawnPlayers : Photon.MonoBehaviour {

   public GameObject spawnteamblue;
   public GameObject spawnteamred;


   void Start () {
      PhotonNetwork.ConnectUsingSettings("0.9");
   }
   
   // Update is called once per frame
   void Update () {
      Debug.Log (SelecionarTime.team);
      if (SelecionarTime.team == 0) {
         if (photonView.isMine) {
            PhotonNetwork.Instantiate ("Player_Healer", spawnteamred.transform.position, Quaternion.identity, 0);
            PhotonNetwork.Instantiate ("Player_Magic", spawnteamred.transform.position, Quaternion.identity, 0);
            PhotonNetwork.Instantiate ("Player_Knight", spawnteamred.transform.position, Quaternion.identity, 0);
         }
      }
      if (SelecionarTime.team == 1) {
         if (photonView.isMine) {
            PhotonNetwork.Instantiate ("Player_Healer", spawnteamblue.transform.position, Quaternion.identity, 0);
            PhotonNetwork.Instantiate ("Player_Magic", spawnteamblue.transform.position, Quaternion.identity, 0);
            PhotonNetwork.Instantiate ("Player_Knight", spawnteamblue.transform.position, Quaternion.identity, 0);
         }
      }
   }

}


Agradeço desde já quem puder ajudar.

Obrigado! bounce Like a Star @ heaven

Sshisbachza
Iniciante
Iniciante

PONTOS : 336
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [Ajuda] Erro ao instanciar personagems (photon)

Mensagem por Sshisbachza em Sex Jul 07, 2017 1:52 pm

Esqueci de uma coisinha kkk, se eu tiro o if do photon view, ele me retorna outro erro



Script do erro: (Linha 87)
Código:
/// <summary>
/// This script use for control state of character.
/// </summary>

using UnityEngine;
using System.Collections;

public class Controller : MonoBehaviour {

   public enum TypeChatacter{ //Type of character
      Melee, Range, Healer   
   }
   
   public enum ActionStat{ //State of character
      Idle, Move, Action, Skill, Dead
   }
   
   public TypeChatacter typeCharacter;
   public AnimationClip idle, walk, action, cast_1, cast_2, skill_1, skill_2, dead; //animation character
   public GameObject[] objMeshAndSkinMesh; //Gameobject Mesh use for change color material when taking attack
   public Texture2D icon_Skill_1, icon_Skill_2; //Icon skill
   public Texture2D textureHpFull, textureHpEmpty; //hp bar
   public Color colorTakeDamage; //color when character take damage
   
   //Status Character
   public float maxhp; //Max hp
   public float def; //Defend
   public float speedMove; //Speed movement
   public float actionValue; //If character is Melee,Range it mean Attack , If character is Healer it mean Healing power
   public float skill_1_Value; //Skill 1 Damage
   public float skill_2_Value; //Skill 2 Damage
   public float actionSpeed; //If character is Melee,Range it mean AttackSpeed , If character is Healer it mean Healing speed
   public float distanceAction; //Distance attack , Distance heal
   public float deley_Cast_Skill_1; //Cast skill timer
   public float deley_Cast_Skill_2; //Cast skill timer
   public float coolDown_Skill_1; //Cooldown to use skill 1 again
   public float coolDown_Skill_2; //Cooldown to use skill 2 again
   
   
   //Variable private field
   private float countCastSkill_1;
   private float countCastSkill_2;
   private float countAction;
   private float checkDistance;
   private Vector3 pointHp;
    private Rect rectHp;
   
   //Delegate update function
   public delegate void FunctionHandle();
   public FunctionHandle ActionHandle;
   public FunctionHandle SkillHandle;
   
   [HideInInspector]
   public GameObject target;
   
   [HideInInspector]
   public float damageGet;
   
   [HideInInspector]
   public Vector3 positionWay;
   [HideInInspector]
   public ActionStat actionStat;
   [HideInInspector]
   public bool active;
   [HideInInspector]
   public float value_CoolDown_Skill_1,value_CoolDown_Skill_2;
   [HideInInspector]
   public float hp;
   [HideInInspector]
   public Transform pointSpell;
   
   void Start(){
      ActionHandle = Action_1;
      hp = maxhp;
   }
   
   void Update(){
      UpdateActionStat();   
   }
   
   void OnGUI(){
      //Draw hp GUI on character
      Vector3 pointTransform = Vector3.zero;
      pointTransform.x = transform.position.x;
      pointTransform.y = transform.position.y+1.5f;
      pointTransform.z = transform.position.z;
      pointHp = TouchController.instance.cameraTarget.WorldToScreenPoint(pointTransform);
      rectHp.width = 100;
      rectHp.height = 10;
      rectHp.x = pointHp.x-(rectHp.width/2);
      rectHp.y = Screen.height-pointHp.y-(rectHp.height/2);
      GUI.DrawTexture(rectHp,textureHpEmpty);
      GUI.BeginGroup(rectHp,"");
      GUI.DrawTexture(new Rect(0,0,100*(hp/maxhp),rectHp.height),textureHpFull);
      GUI.EndGroup();
   }
   
   void UpdateActionStat(){
      
      //Hero State animation
      switch(actionStat){
         case ActionStat.Idle:{
            if(actionStat != ActionStat.Dead){
               GetComponent<Animation>().CrossFade(idle.name);
            }
         }
         break;
         
         case ActionStat.Move:{
            if(actionStat != ActionStat.Dead){
               checkDistance = Vector3.Distance(transform.position, LookAtTo(positionWay));
               if(checkDistance >= 1){
                  GetComponent<Animation>().CrossFade(walk.name);
                  transform.Translate(Vector3.forward*speedMove*Time.deltaTime);
               }else{
                  actionStat = ActionStat.Idle;
               }
            }
         }
         break;
         
         case ActionStat.Action:{
            if(actionStat != ActionStat.Dead){
               if(target != null){
                  checkDistance = (transform.position - LookAtTo(target.transform.position)).magnitude;
                  if(checkDistance >= distanceAction){
                     if(GetComponent<Animation>()[action.name].normalizedTime <= 0){
                        GetComponent<Animation>().CrossFade(walk.name);
                        transform.Translate(Vector3.forward*speedMove*Time.deltaTime);
                     }
                  }else{
                     ActionHandle();
                     if(target.GetComponent<Enemy>() != null && target.GetComponent<Enemy>().hp <= 0){
                           target = null;
                     }
                  }
               }else{
                  actionStat = ActionStat.Idle;
               }
            }
         }
         break;
         
         case ActionStat.Skill:{
            if(actionStat != ActionStat.Dead){
               if(SkillHandle != null){
                  SkillHandle();
               }
            }
         }
         break;
         
         case ActionStat.Dead:{
            GetComponent<Animation>().CrossFade(dead.name);
            Destroy(gameObject,4);
         }
         break;
      }
   }
   
   private Vector3 LookAtTo(Vector3 pos){
      //Lookat Monster
      Vector3 look = Vector3.zero;
      look.x = pos.x;
      look.y = transform.position.y;
      look.z = pos.z;
      try{
         this.transform.LookAt(look);
      }catch{
         Debug.Log("None Look");   
      }
      return look;
   }
   
   private void Action_1(){
      //Wait delay attack
      GetComponent<Animation>().CrossFade(idle.name);
      countAction += actionSpeed * Time.smoothDeltaTime;
      if(countAction >= 100){
         countAction = 0;
         ActionHandle = Action_2;   
      }
   }
   
   private void Action_2(){
      //Attack
      GetComponent<Animation>().Play(action.name);
      if(GetComponent<Animation>()[action.name].normalizedTime > 0.9f){
         ActionHandle = Action_1;   
      }
   }
   
   public void Skill_1_Cast(){
      //Cast Skill 1
      GetComponent<Animation>().Play(cast_1.name);
      countCastSkill_1 += 1 * Time.smoothDeltaTime;
      if(countCastSkill_1 >= deley_Cast_Skill_1){
         SkillHandle = Skill_1_Action;
         countCastSkill_1 = 0;
      }
   }
   
   public void Skill_1_Action(){
      //Skill 1
      GetComponent<Animation>().CrossFade(skill_1.name);
      Debug.Log("Skill_1");
      if(GetComponent<Animation>()[skill_1.name].normalizedTime > 0.9f){
         if(target != null){
            actionStat = ActionStat.Action;
         }else{
            actionStat = ActionStat.Idle;
         }
         SkillHandle = null;
      }
   }
   
   public void Skill_2_Cast(){
      //Cast Skill 2
      GetComponent<Animation>().Play(cast_2.name);
      countCastSkill_2 += 1 * Time.smoothDeltaTime;
      if(countCastSkill_2 >= deley_Cast_Skill_2){
         SkillHandle = Skill_2_Action;
         countCastSkill_2 = 0;
      }
   }
   
   public void Skill_2_Action(){
      //Skill 2
      GetComponent<Animation>().CrossFade(skill_2.name);
      if(GetComponent<Animation>()[skill_2.name].normalizedTime > 0.9f){
         if(target != null){
            actionStat = ActionStat.Action;
         }else{
            actionStat = ActionStat.Idle;
         }
         SkillHandle = null;
      }
   }
   
   public void TakingDamage(){
      //if take damage material monster will change to white color
      int index = 0;
      while(index < objMeshAndSkinMesh.Length){
         objMeshAndSkinMesh[index].GetComponent<Renderer>().material.color = Color.white;
         index++;
      }
      
      StartCoroutine(TakeDamage(0.1f));
   }
   
   public void InitTextDamage(Color colorText){
      // Init text damage
      GameObject loadPref = (GameObject)Resources.Load("TextDamage");
      GameObject go = (GameObject)Instantiate(loadPref, transform.position, Quaternion.identity);
      go.GetComponentInChildren<TextDamage>().SetDamage(damageGet, colorText);
   }
   
   public void AddBuff(float buffValue, float time){
      // Buff value
      actionValue += buffValue;
      skill_1_Value += buffValue;
      skill_2_Value += buffValue;
      StartCoroutine(BuffCount(buffValue, time));
   }
   
   private IEnumerator BuffCount(float buffValue ,float time){
      // Buff duration
      yield return new WaitForSeconds(time);
      actionValue -= buffValue;
      skill_1_Value -= buffValue;
      skill_2_Value -= buffValue;
   }
   
   private IEnumerator TakeDamage(float time){
      //if take damage material monster will change to setting color
      int index = 0;
      Color[] colorDef = new Color[objMeshAndSkinMesh.Length];
      while(index < objMeshAndSkinMesh.Length){
         colorDef[index] = objMeshAndSkinMesh[index].GetComponent<Renderer>().material.color;
         objMeshAndSkinMesh[index].GetComponent<Renderer>().material.color = colorTakeDamage;
         index++;
      }
      yield return new WaitForSeconds(time);
      index = 0;
      while(index < objMeshAndSkinMesh.Length){
         objMeshAndSkinMesh[index].GetComponent<Renderer>().material.color = colorDef[index];
         index++;
      }
      yield return 0;
      StopCoroutine("TakeDamage");
   }
   
   private IEnumerator CalCoolDownSkill_1(){
      //Cooldown skill 1
      float countCoolDown = coolDown_Skill_1;
      while(countCoolDown > 0){
         countCoolDown -= 1 * Time.smoothDeltaTime;
         value_CoolDown_Skill_1 = countCoolDown/coolDown_Skill_1;
         yield return 0;
      }
      yield return 0;
   }
   
   private IEnumerator CalCoolDownSkill_2(){
      //Cooldown skill 2
      float countCoolDown = coolDown_Skill_2;
      while(countCoolDown > 0){
         countCoolDown -= 1 * Time.smoothDeltaTime;
         value_CoolDown_Skill_2 = countCoolDown/coolDown_Skill_2;
         yield return 0;
      }
      yield return 0;
   }
}

Sshisbachza
Iniciante
Iniciante

PONTOS : 336
REPUTAÇÃO : 2
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: [Ajuda] Erro ao instanciar personagems (photon)

Mensagem por fecirineu em Sex Jul 07, 2017 2:59 pm

Sshisbachza escreveu:Esqueci de uma coisinha kkk, se eu tiro o if do photon view, ele me retorna outro erro



Script do erro: (Linha 87)
Código:
/// <summary>
/// This script use for control state of character.
/// </summary>

using UnityEngine;
using System.Collections;

public class Controller : MonoBehaviour {

 public enum TypeChatacter{ //Type of character
 Melee, Range, Healer
 }
 
 public enum ActionStat{ //State of character
 Idle, Move, Action, Skill, Dead
 }
 
 public TypeChatacter typeCharacter;
 public AnimationClip idle, walk, action, cast_1, cast_2, skill_1, skill_2, dead; //animation character
 public GameObject[] objMeshAndSkinMesh; //Gameobject Mesh use for change color material when taking attack
 public Texture2D icon_Skill_1, icon_Skill_2; //Icon skill
 public Texture2D textureHpFull, textureHpEmpty; //hp bar
 public Color colorTakeDamage; //color when character take damage
 
 //Status Character
 public float maxhp; //Max hp
 public float def; //Defend
 public float speedMove; //Speed movement
 public float actionValue; //If character is Melee,Range it mean Attack , If character is Healer it mean Healing power
 public float skill_1_Value; //Skill 1 Damage
 public float skill_2_Value; //Skill 2 Damage
 public float actionSpeed; //If character is Melee,Range it mean AttackSpeed , If character is Healer it mean Healing speed
 public float distanceAction; //Distance attack , Distance heal
 public float deley_Cast_Skill_1; //Cast skill timer
 public float deley_Cast_Skill_2; //Cast skill timer
 public float coolDown_Skill_1; //Cooldown to use skill 1 again
 public float coolDown_Skill_2; //Cooldown to use skill 2 again
 
 
 //Variable private field
 private float countCastSkill_1;
 private float countCastSkill_2;
 private float countAction;
 private float checkDistance;
 private Vector3 pointHp;
    private Rect rectHp;
 
 //Delegate update function
 public delegate void FunctionHandle();
 public FunctionHandle ActionHandle;
 public FunctionHandle SkillHandle;
 
 [HideInInspector]
 public GameObject target;
 
 [HideInInspector]
 public float damageGet;
 
 [HideInInspector]
 public Vector3 positionWay;
 [HideInInspector]
 public ActionStat actionStat;
 [HideInInspector]
 public bool active;
 [HideInInspector]
 public float value_CoolDown_Skill_1,value_CoolDown_Skill_2;
 [HideInInspector]
 public float hp;
 [HideInInspector]
 public Transform pointSpell;
 
 void Start(){
 ActionHandle = Action_1;
 hp = maxhp;
 }
 
 void Update(){
 UpdateActionStat();
 }
 
 void OnGUI(){
 //Draw hp GUI on character
 Vector3 pointTransform = Vector3.zero;
 pointTransform.x = transform.position.x;
 pointTransform.y = transform.position.y+1.5f;
 pointTransform.z = transform.position.z;
 pointHp = TouchController.instance.cameraTarget.WorldToScreenPoint(pointTransform);
 rectHp.width = 100;
 rectHp.height = 10;
 rectHp.x = pointHp.x-(rectHp.width/2);
 rectHp.y = Screen.height-pointHp.y-(rectHp.height/2);
 GUI.DrawTexture(rectHp,textureHpEmpty);
 GUI.BeginGroup(rectHp,"");
 GUI.DrawTexture(new Rect(0,0,100*(hp/maxhp),rectHp.height),textureHpFull);
 GUI.EndGroup();
 }
 
 void UpdateActionStat(){
 
 //Hero State animation
 switch(actionStat){
 case ActionStat.Idle:{
 if(actionStat != ActionStat.Dead){
 GetComponent<Animation>().CrossFade(idle.name);
 }
 }
 break;
 
 case ActionStat.Move:{
 if(actionStat != ActionStat.Dead){
 checkDistance = Vector3.Distance(transform.position, LookAtTo(positionWay));
 if(checkDistance >= 1){
 GetComponent<Animation>().CrossFade(walk.name);
 transform.Translate(Vector3.forward*speedMove*Time.deltaTime);
 }else{
 actionStat = ActionStat.Idle;
 }
 }
 }
 break;
 
 case ActionStat.Action:{
 if(actionStat != ActionStat.Dead){
 if(target != null){
 checkDistance = (transform.position - LookAtTo(target.transform.position)).magnitude;
 if(checkDistance >= distanceAction){
 if(GetComponent<Animation>()[action.name].normalizedTime <= 0){
 GetComponent<Animation>().CrossFade(walk.name);
 transform.Translate(Vector3.forward*speedMove*Time.deltaTime);
 }
 }else{
 ActionHandle();
 if(target.GetComponent<Enemy>() != null && target.GetComponent<Enemy>().hp <= 0){
 target = null;
 }
 }
 }else{
 actionStat = ActionStat.Idle;
 }
 }
 }
 break;
 
 case ActionStat.Skill:{
 if(actionStat != ActionStat.Dead){
 if(SkillHandle != null){
 SkillHandle();
 }
 }
 }
 break;
 
 case ActionStat.Dead:{
 GetComponent<Animation>().CrossFade(dead.name);
 Destroy(gameObject,4);
 }
 break;
 }
 }
 
 private Vector3 LookAtTo(Vector3 pos){
 //Lookat Monster
 Vector3 look = Vector3.zero;
 look.x = pos.x;
 look.y = transform.position.y;
 look.z = pos.z;
 try{
 this.transform.LookAt(look);
 }catch{
 Debug.Log("None Look");
 }
 return look;
 }
 
 private void Action_1(){
 //Wait delay attack
 GetComponent<Animation>().CrossFade(idle.name);
 countAction += actionSpeed * Time.smoothDeltaTime;
 if(countAction >= 100){
 countAction = 0;
 ActionHandle = Action_2;
 }
 }
 
 private void Action_2(){
 //Attack
 GetComponent<Animation>().Play(action.name);
 if(GetComponent<Animation>()[action.name].normalizedTime > 0.9f){
 ActionHandle = Action_1;
 }
 }
 
 public void Skill_1_Cast(){
 //Cast Skill 1
 GetComponent<Animation>().Play(cast_1.name);
 countCastSkill_1 += 1 * Time.smoothDeltaTime;
 if(countCastSkill_1 >= deley_Cast_Skill_1){
 SkillHandle = Skill_1_Action;
 countCastSkill_1 = 0;
 }
 }
 
 public void Skill_1_Action(){
 //Skill 1
 GetComponent<Animation>().CrossFade(skill_1.name);
 Debug.Log("Skill_1");
 if(GetComponent<Animation>()[skill_1.name].normalizedTime > 0.9f){
 if(target != null){
 actionStat = ActionStat.Action;
 }else{
 actionStat = ActionStat.Idle;
 }
 SkillHandle = null;
 }
 }
 
 public void Skill_2_Cast(){
 //Cast Skill 2
 GetComponent<Animation>().Play(cast_2.name);
 countCastSkill_2 += 1 * Time.smoothDeltaTime;
 if(countCastSkill_2 >= deley_Cast_Skill_2){
 SkillHandle = Skill_2_Action;
 countCastSkill_2 = 0;
 }
 }
 
 public void Skill_2_Action(){
 //Skill 2
 GetComponent<Animation>().CrossFade(skill_2.name);
 if(GetComponent<Animation>()[skill_2.name].normalizedTime > 0.9f){
 if(target != null){
 actionStat = ActionStat.Action;
 }else{
 actionStat = ActionStat.Idle;
 }
 SkillHandle = null;
 }
 }
 
 public void TakingDamage(){
 //if take damage material monster will change to white color
 int index = 0;
 while(index < objMeshAndSkinMesh.Length){
 objMeshAndSkinMesh[index].GetComponent<Renderer>().material.color = Color.white;
 index++;
 }
 
 StartCoroutine(TakeDamage(0.1f));
 }
 
 public void InitTextDamage(Color colorText){
 // Init text damage
 GameObject loadPref = (GameObject)Resources.Load("TextDamage");
 GameObject go = (GameObject)Instantiate(loadPref, transform.position, Quaternion.identity);
 go.GetComponentInChildren<TextDamage>().SetDamage(damageGet, colorText);
 }
 
 public void AddBuff(float buffValue, float time){
 // Buff value
 actionValue += buffValue;
 skill_1_Value += buffValue;
 skill_2_Value += buffValue;
 StartCoroutine(BuffCount(buffValue, time));
 }
 
 private IEnumerator BuffCount(float buffValue ,float time){
 // Buff duration
 yield return new WaitForSeconds(time);
 actionValue -= buffValue;
 skill_1_Value -= buffValue;
 skill_2_Value -= buffValue;
 }
 
 private IEnumerator TakeDamage(float time){
 //if take damage material monster will change to setting color
 int index = 0;
 Color[] colorDef = new Color[objMeshAndSkinMesh.Length];
 while(index < objMeshAndSkinMesh.Length){
 colorDef[index] = objMeshAndSkinMesh[index].GetComponent<Renderer>().material.color;
 objMeshAndSkinMesh[index].GetComponent<Renderer>().material.color = colorTakeDamage;
 index++;
 }
 yield return new WaitForSeconds(time);
 index = 0;
 while(index < objMeshAndSkinMesh.Length){
 objMeshAndSkinMesh[index].GetComponent<Renderer>().material.color = colorDef[index];
 index++;
 }
 yield return 0;
 StopCoroutine("TakeDamage");
 }
 
 private IEnumerator CalCoolDownSkill_1(){
 //Cooldown skill 1
 float countCoolDown = coolDown_Skill_1;
 while(countCoolDown > 0){
 countCoolDown -= 1 * Time.smoothDeltaTime;
 value_CoolDown_Skill_1 = countCoolDown/coolDown_Skill_1;
 yield return 0;
 }
 yield return 0;
 }
 
 private IEnumerator CalCoolDownSkill_2(){
 //Cooldown skill 2
 float countCoolDown = coolDown_Skill_2;
 while(countCoolDown > 0){
 countCoolDown -= 1 * Time.smoothDeltaTime;
 value_CoolDown_Skill_2 = countCoolDown/coolDown_Skill_2;
 yield return 0;
 }
 yield return 0;
 }
}
este  erro não tem nada a ver com photon, este erro, estar no  pointHp vector3. ele não está achando a referencia do objeto.. verifique se esta tudo linkado corretamente no inspector..
avatar
fecirineu
Programador

Masculino PONTOS : 681
REPUTAÇÃO : 83
Respeito as regras :

Ver perfil do usuário http://gamesbr.cf/

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum