728x90

몬스터 자식에 캔버스를 따로 생성한뒤

텍스트 생성

 

Targetting img 스크립트에 

 public static TargettingImg instance;
    public GameObject targetimg;
    public GameObject inventory;
    public Image hpbar; // fillamount 값 조정할거라 이미지 받아와주고 
    public GameObject HpBar; // hp바 프레임 배경 다가져오기위해 Gameobject로 받아주고 
    public Text Damage;//데미지 받기위한 텍스트 
    public GameObject canvas;//데미지 캔버스 
    
     public void Damaging(float damage)// 다른스크립트 코루틴은 스타트가 안되기때문에 스타트 해줄 함수 선언 
    {
        StartCoroutine(OndamageText(damage)); //스타트 코루틴 
    }

    public IEnumerator OndamageText(float damage)
    {
        canvas.SetActive(true);//canvas 보이게 
        Damage.text = damage.ToString();  // 텍스트는 전달받은 데미지로 
        Damage.fontSize = 60;//데미지 폰트 60 으로설정 
        for(int i=Damage.fontSize;i>=30;i--) // 폰트가 30이 될때까지 for 문 작동
        {
            Damage.fontSize = i; // 데미지 폰트사이즈는 i
            yield return new WaitForFixedUpdate();//다음 fixedupdate 까지 기다림;
        }
        yield return new WaitForSeconds(1f);// 1.5초 뒤에
        canvas.SetActive(false);//canavs 안보이게 
    }
     void Update()
    {
        if(inventory.activeSelf == false)
        {
            Damage.transform.position = Camera.main.WorldToScreenPoint(transform.position + new Vector3(0, 1, 0));
            
            targetimg.transform.position = Camera.main.WorldToScreenPoint(transform.position);
            hpbar.fillAmount = Mathf.Lerp(hpbar.fillAmount, (float)Monster.instance.stat.curHp / (float)Monster.instance.stat.maxHp, Time.deltaTime * 10);// 체력바가 부드럽게 줄기위해서 Lerp 를 사용하였다.
            HpBar.transform.position = Camera.main.WorldToScreenPoint(transform.position + new Vector3(0, 2, 0));//몬스터 y축으로 2 더높게 뜨게 설정하였다.
        }
        
       
    }

 

추가후

 

TargettingImg.instance.Damaging(playerDamage);//Damaigng 함수 호출 (코루틴시작함수)

몬스터  OntriggerEnter 에서 호출해준다.

 

 

 

 

그러면 이런식으로 Text가 생성된다.

 

 

 

오늘은 학원에 등원해서 취업상담을 진행해서 여기까지만 진행하고 

 

다음에는 퀵슬롯 구현 예정이다. 

반응형