FloatingText
데미지값 출력해주기!
1) 프리팹제작
Canvas안에 UI -> Text로 만들어준다.
2) FloatingText 스크립트(프리팹에 추가할 스크립트)
public void print(string Text)
{
FloatTextPrint.text = string.Format(" {0}",Text);
}
private void Start()
{
moveSpeed = 5f; //위로 움직이는 속도값
destroyTime = 3f; //몇초 후 삭제 될건지
}
void Update()
{
vector.Set(FloatTextPrint.transform.position.x, FloatTextPrint.transform.position.y
+ (moveSpeed + Time.deltaTime), FloatTextPrint.transform.position.z);
FloatTextPrint.transform.position = vector;
destroyTime -= Time.deltaTime;
if(destroyTime <=0)
{
Destroy(this.gameObject);
}
}
vector.Set(FloatTextPrint.transform.position.x, FloatTextPrint.transform.position.y
+ (moveSpeed + Time.deltaTime), FloatTextPrint.transform.position.z);
생성된 FloatTextPrint 위치를 Y값으로 증가 시킨다.
3) UI.Mgr 스크립트
public void SetFloating(GameObject vr, string bulletpower) //몬스터의 위치, 총알의 공격력을 받아옴
{
PrefabFloatingTXT = Resources.Load<GameObject>("prefab/FloatingTxt");
if(PrefabFloatingTXT == null)
{
Debug.Log("FloatingTxt Null");
}
GameObject TXT = Instantiate(PrefabFloatingTXT);
Vector3 uiPosition = Camera.main.WorldToScreenPoint(vr.transform.position);
TXT.transform.localPosition = uiPosition;
TXT.transform.SetParent(canvas.gameObject.transform);
Ftxt = TXT.gameObject.transform.GetComponent<FloatingText>();
Ftxt.print(bulletpower);
}
Vector3 uiPosition = Camera.main.WorldToScreenPoint(vr.transform.position);
UI 오브젝트 이기 때문에 몬스터의 position값을 넣어도 화면에 보이지 않는다.
Camer.main.WorldToScreenPoint를 월드좌표에서 스크린좌표로 값을 변환해준다.
'유니티 > 기능구현' 카테고리의 다른 글
유니티) 2D Light 라이트 효과 (0) | 2019.01.03 |
---|---|
유니티) Fade(In,Out) 효과넣기(알파값 조절) (0) | 2019.01.02 |
유니티) 일정거리 안에 들어오면 오브젝트 반응하기 (오브젝트 사이간 거리계산) (2) | 2018.12.24 |
유니티) 랜덤함수 Random.Range 아이템 랜덤 드랍하기! (0) | 2018.12.16 |
유니티)카메라 화면 전환 효과내기(1인칭),(측면뷰) (2) | 2018.12.15 |