Thay đổi sprite của một đối tượng trong Unity


11

Bên trong mã script của anh hùng (đối tượng) tôi muốn thêm khả năng thay đổi sprite của nó.

Vì vậy, người chơi nhấn nút không gian và sprite thay đổi thành sprite khác đã được thêm vào dự án.

Bạn có thể cung cấp cho tôi một mã mẫu để làm điều này?


1
Mặc dù chức năng thay đổi các họa tiết bên dưới sẽ hoạt động chính xác như bạn đã yêu cầu, tôi sẽ đề nghị bạn xem xét hoạt hình Unity. Thông thường khi mọi người thay đổi các sprite, đó là tạo ra một hình ảnh động cho một hành động (chẳng hạn như vung kiếm hoặc mở cửa) và điều này thường được thực hiện trong các động cơ cơ bản hơn bằng cách hoán đổi các sprite thủ công. Tuy nhiên, Unity đã tích hợp hỗ trợ cho hình động cho phép bạn tạo một tệp hoạt hình cho tất cả các họa tiết cần thiết, sau đó cho phép bạn nói với trò chơi để chúng tự động phát các điều kiện nhất định trong bộ điều khiển hoạt hình.
Benjamin Danger Johnson

Câu trả lời:


20

Các mã đã được nhận xét cho bạn. Thưởng thức.

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
    }
}

Bạn cần phải có trình kết xuất sprite được đính kèm với GameObject của bạn. Tạo Tập lệnh C # mới và đính kèm vào đó một GameObject. Dán mã vào giữa dấu ngoặc đơn ... Tôi chắc chắn bạn có thể tìm ra nó từ đó :)


Ngài là một huyền thoại.
kal kokah
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.