コード例 #1
0
ファイル: BattleView.cs プロジェクト: TeamJelly/project21
        /// <summary>
        /// 유닛을 필드에 오브젝트로 생성시키는 함수
        /// 생성하면서 이벤트 콜벡을 할당해줘야 한다.
        /// </summary>
        /// <param name="unit"></param>
        public static void MakeUnitObject(Unit unit)
        {
            // 미리 존재 여부 확인
            if (UnitObjects.ContainsKey(unit) == true)
            {
                Debug.LogError($"이미 필드에 유닛({unit.Name}) 오브젝트가 존재합니다.");
                return;
            }

            // 게임 오브젝트 생성
            GameObject newObj = new GameObject(unit.Name);

            // 위치 지정
            newObj.transform.position = new Vector3(unit.Position.x, unit.Position.y, 0);

            // 박스 콜라이더 컴포넌트 추가
            BoxCollider2D boxCollider2D = newObj.AddComponent <BoxCollider2D>();

            boxCollider2D.size = new Vector2(1, 1);

            // 이벤트 트리거 컴포넌트 추가
            EventTrigger eventTrigger = newObj.AddComponent <EventTrigger>();

            GameObject imgObj = new GameObject("image");

            imgObj.transform.SetParent(newObj.transform);

            // 스프라이터 랜더러 추가
            SpriteRenderer spriteRenderer = imgObj.AddComponent <SpriteRenderer>();

            spriteRenderer.sprite = unit.Sprite;

            // 애니메이터 추가
            Animator animator = imgObj.AddComponent <Animator>();

            animator.runtimeAnimatorController = instance.animatorController;

            UnitObjects.Add(unit, newObj);

            // HP 바 생성
            GameObject hpBarObj = Instantiate(instance.hPBarPrefab, MainPanel.transform);

            hpBarObj.transform.SetAsFirstSibling();
            HPBar newHPBar = hpBarObj.GetComponent <HPBar>();

            newHPBar.Init(unit);
            HPBars.Add(UnitObjects[unit].transform, newHPBar);

            //유닛 오브젝트 상호작용 콜백 등록
            unit.OnPosition.after.AddListener(MoveObject);
            unit.OnCurHP.after.AddListener(newHPBar.SetValue);

            //최초 갱신
            //newHPBar.SetValue(unit.CurHP);
            int        tempHP       = unit.CurHP;
            Vector2Int tempPosition = unit.Position;

            unit.OnPosition.after.Invoke(tempPosition);
            unit.OnCurHP.after.Invoke(tempHP);
        }
コード例 #2
0
ファイル: Unit.cs プロジェクト: TransferTest/Demo
 public void Start()
 {
     HP    = maxHP;
     hpbar = transform.GetComponentInChildren <HPBar>();
     hpbar.Init(maxHP, HP);
     buffs = new List <Buff>();
     SetAutoTarget(this);
     StartCoroutine(FSM());
 }
コード例 #3
0
    private void OnEnable()
    {
        attackMonster.Clear();
        //havingMonster.Clear();

        hp = maxHp;
        hpBar.Init();
        hpBar.gameObject.SetActive(false);

        prePos    = this.transform.position;
        heroState = HeroState.Idle;
        NextState();
    }
コード例 #4
0
ファイル: BattleCreature.cs プロジェクト: tapenjoyGame/cry
    void InitCommon(CharacterContainer character_container, float attack_next_time, GameObject hpBarPrefab, GameObject skillPrefab)
    {
        InitContainer(character_container);

        HPBar = (GameObject.Instantiate(hpBarPrefab) as GameObject).GetComponent <CharacterHPBar>();
        HPBar.transform.SetParent(BattleBase.Instance.HPBarCanvas.transform, false);
        HPBar.Init(this, IsTeam == false, Scale);

        SkillName = (GameObject.Instantiate(skillPrefab) as GameObject).GetComponent <CharacterSkill>();
        SkillName.transform.SetParent(BattleBase.Instance.CharacterSkillCanvas.transform, false);
        SkillName.Init(Character.transform, IsTeam);


        Skills = new List <BattleSkill>();
        Buffs  = new List <Buff>();

        Restart(attack_next_time);
    }
コード例 #5
0
    protected virtual void OnEnable()
    {
        //attackMonster.Clear();

        if (inGameMgr == null)
        {
            inGameMgr = InGameManager.instance;
        }
        if (resourceMgr == null)
        {
            resourceMgr = ResourceManager.instance;
        }
        hero = inGameMgr.hero;

        hp = maxHp;
        hpBar.Init();
        hpBar.gameObject.SetActive(false);
        //initPos = this.transform.position;
        monsterState = MonsterState.Idle;
    }