글쓰기
로그인
회원가입
#spriterenderer
마음만받을게
· 2년전
질문
유니티 화살에 맞았을 시 적의 색을 바꾸려고 하는데요
화살의 태그를 Arrow로 하고 private void OnCollisionEnter2D(Collision2D collision) { if (collision.gameObject.tag == "Arrow") { //데미지 hp--; speed /= 2; Invoke("RemindSpeed", 2.5f); isheat = true; if (hp <= 0) { //사망! //===================== //사망 연출 //===================== //출돌 판정 비활성 GetComponent<CircleCollider2D>().enabled = false; //이동 정지 rbody.velocity = new Vector2(0, 0); // 애나메이션 변경 Animator animator = GetComponent<Animator>(); animator.Play(deadAnime); //0.5초 후에 제거 Destroy(gameObject, 0.5f); } } } } 이렇게 충돌함수 정의하고 SpriteRenderer Esprite; 선언하고 start함수에 Esprite = GetComponent();해준뒤 void Update() { if(isheat) //문제발생 { Debug.Log("isheat"); Esprite.color = new Color(1f, 0f, 0f, 1f); } 요렇게 추가했는데 isheat 로그도 뜨는데 색이 안바뀌네요 왜그럴까요 ㅠ
#유니티
#c
#spriterenderer
237
1
0
데브게므
·
2023-06-13
Esprite.color = new Color(1f, 0f, 0f, 1f); 코드는 캐릭터의 스프라이트 색상을 빨강으로 바꾸는 코드입니다. 그러나 만약 스프라이트에 적용된 텍스처가 색상 변경을 지원하지 않는다면 코드가 작동하지 않을 수 있습니다. 예를 들어, 스프라이트의 텍스처가 흑백 또는 알파 채널만 가진 텍스처인 경우 색상 변경이 제대로 적...
더 보기