Unity에서 오브젝트의 스프라이트 변경


11

영웅 (객체)의 스크립트 코드 안에 스프라이트를 변경할 수있는 가능성을 추가하고 싶습니다.

플레이어가 스페이스 버튼을 누르면 스프라이트가 프로젝트에 이미 추가 된 다른 스프라이트로 바뀝니다.

이를 위해 샘플 코드를 제공해 주시겠습니까?


1
아래 스프라이트를 변경하는 기능은 요청한대로 정확하게 작동하지만 Unity 애니메이터를 살펴 보는 것이 좋습니다. 일반적으로 사람들이 스프라이트를 변경할 때 액션에 대한 애니메이션 (예 : 칼을 휘 두르거나 문을 여는 등)을 만드는 것이 일반적으로 스프라이트를 수동으로 교체하여보다 기본적인 엔진에서 수행됩니다. 그러나 Unity는 애니메이션을 지원하여 필요한 모든 스프라이트에 대한 애니메이션 파일을 생성 한 다음 애니메이션 컨트롤러에서 특정 조건에 따라 자동으로 재생하도록 게임에 지시 할 수 있습니다.
벤자민 위험 존슨

답변:


20

코드가 주석 처리되었습니다. 즐겨.

public Sprite sprite1; // Drag your first sprite here
public Sprite sprite2; // Drag your second sprite here

private SpriteRenderer spriteRenderer; 

void Start ()
{
    spriteRenderer = GetComponent<SpriteRenderer>(); // we are accessing the SpriteRenderer that is attached to the Gameobject
    if (spriteRenderer.sprite == null) // if the sprite on spriteRenderer is null then
        spriteRenderer.sprite = sprite1; // set the sprite to sprite1
}

void Update ()
{
    if (Input.GetKeyDown (KeyCode.Space)) // If the space bar is pushed down
    {
        ChangeTheDamnSprite (); // call method to change sprite
    }
}

void ChangeTheDamnSprite ()
{
    if (spriteRenderer.sprite == sprite1) // if the spriteRenderer sprite = sprite1 then change to sprite2
    {
        spriteRenderer.sprite = sprite2;
    }
    else
    {
        spriteRenderer.sprite = sprite1; // otherwise change it back to sprite1
    }
}

게임 오브젝트에 스프라이트 렌더러가 연결되어 있어야합니다. 새로운 C # 스크립트를 생성하고 GameObject에 첨부하십시오. 괄호 사이에 코드를 붙여 넣으십시오. 여기에서 알아낼 수 있습니다. :)


당신은 전설입니다.
kal kokah
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.