コード例 #1
0
    public void CreateCharacter(Vector3 startPosition, CharacterDataBean characterData)
    {
        GameObject objModel = null;

        if (characterData.characterType == CharacterTypeEnum.Player)
        {
            objModel = objCharacterPlayerModel;
        }
        else if (characterData.characterType == CharacterTypeEnum.Enemy)
        {
            objModel = objCharacterEnemyModel;
        }
        GameObject   objCharacter = Instantiate(gameObject, objModel, startPosition);
        CharacterCpt characterCpt = objCharacter.GetComponent <CharacterCpt>();

        characterCpt.SetCharacterData(characterData);

        if (characterData.characterType == CharacterTypeEnum.Player)
        {
            listPlayer.Add(characterCpt);
        }
        else if (characterData.characterType == CharacterTypeEnum.Enemy)
        {
            listEnemy.Add(characterCpt);
        }
    }
コード例 #2
0
    public void OnTriggerEnter(Collider other)
    {
        CharacterCpt characterCpt = other.GetComponent <CharacterCpt>();

        if (characterCpt)
        {
            //不可以攻击自己人
            CharacterDataBean characterData = characterCpt.GetCharacterData();
            if (characterData.characterType == this.characterType)
            {
                return;
            }
            //死人不攻击
            if (characterData.life <= 0)
            {
                return;
            }
            characterCpt.AddLife(-bulletDamage, out bool isDead);
            //如果死亡
            if (isDead)
            {
                //炸飞
                characterCpt.BlowUp(transform.position);
            }
            else
            {
                //没死的话展示生命值
                characterCpt.ShowLife(3);
            }
        }
    }
コード例 #3
0
 public void RefreshEnemyCharacter()
 {
     for (int i = 0; i < listEnemy.Count; i++)
     {
         CharacterCpt characterItem = listEnemy[i];
         characterItem.RefreshCharacter();
     }
 }
コード例 #4
0
 public void RefreshPlayerCharacter()
 {
     for (int i = 0; i < listPlayer.Count; i++)
     {
         CharacterCpt characterItem = listPlayer[i];
         characterItem.RefreshCharacter();
     }
 }
コード例 #5
0
    public void SetCharacterSpeedUp(CharacterTypeEnum characterType, float addSpeed, float time)
    {
        List <CharacterCpt> listCharacter = manager.GetCharacterByType(characterType);

        for (int i = 0; i < listCharacter.Count; i++)
        {
            CharacterCpt itemCharacter = listCharacter[i];
            itemCharacter.SetCharacterSpeedUp(addSpeed, time);
        }
    }
コード例 #6
0
    public void AddCharacterSpeed(CharacterTypeEnum characterType, float addSpeed)
    {
        List <CharacterCpt> listCharacter = manager.GetCharacterByType(characterType);

        for (int i = 0; i < listCharacter.Count; i++)
        {
            CharacterCpt itemCharacter = listCharacter[i];
            itemCharacter.AddCharacterSpeed(addSpeed);
        }
    }
コード例 #7
0
    /// <summary>
    ///  设置角色生命值
    /// </summary>
    /// <param name="characterType"></param>
    /// <param name="maxLife"></param>
    public void SetCharacterLife(CharacterTypeEnum characterType, int maxLife)
    {
        List <CharacterCpt> listCharacter = manager.GetCharacterByType(characterType);

        for (int i = 0; i < listCharacter.Count; i++)
        {
            CharacterCpt itemCharacter = listCharacter[i];
            itemCharacter.SetLife(maxLife);
        }
    }
コード例 #8
0
    /// <summary>
    /// 清除NPC
    /// </summary>
    /// <param name="characterCpt"></param>
    public void CleanCharacter(CharacterCpt characterCpt)
    {
        CharacterDataBean characterData = characterCpt.GetCharacterData();

        if (characterData.characterType == CharacterTypeEnum.Player)
        {
            listPlayer.Remove(characterCpt);
        }
        else if (characterData.characterType == CharacterTypeEnum.Enemy)
        {
            listEnemy.Remove(characterCpt);
        }
    }
コード例 #9
0
 /// <summary>
 /// 清除所有NPC
 /// </summary>
 public void CleanAllCharacter()
 {
     for (int i = 0; i < listPlayer.Count; i++)
     {
         CharacterCpt characterItem = listPlayer[i];
         Destroy(characterItem.gameObject);
     }
     for (int i = 0; i < listEnemy.Count; i++)
     {
         CharacterCpt characterItem = listEnemy[i];
         Destroy(characterItem.gameObject);
     }
     listPlayer.Clear();
     listEnemy.Clear();
 }
コード例 #10
0
 public void CleanCharacter(CharacterCpt characterCpt)
 {
     manager.CleanCharacter(characterCpt);
 }