เปลี่ยนเทพดาของวัตถุในเอกภาพ


11

ภายในโค้ดสคริปต์ของฮีโร่ (วัตถุ) ฉันต้องการเพิ่มความเป็นไปได้ในการเปลี่ยนสไปรต์

ดังนั้นผู้เล่นกดปุ่ม space และ sprite เปลี่ยนเป็น sprite อื่น ๆ ที่เพิ่มเข้าไปในโครงการ

คุณสามารถให้รหัสตัวอย่างแก่ฉันเพื่อทำสิ่งนี้ได้หรือไม่


1
แม้ว่าฟังก์ชั่นสำหรับเปลี่ยนสไปรต์ด้านล่างจะทำงานได้ตามที่คุณขอ แต่ฉันขอแนะนำให้คุณดู Unity Animator โดยทั่วไปเมื่อผู้คนเปลี่ยนสไปรต์มันคือการสร้างอนิเมชั่นสำหรับการกระทำ (เช่นการเหวี่ยงดาบหรือเปิดประตู) และโดยทั่วไปแล้วจะทำในเครื่องมือพื้นฐานมากกว่าโดยการสลับสไปรท์ด้วยตนเอง อย่างไรก็ตาม Unity ได้สร้างการสนับสนุนสำหรับแอนิเมชั่นที่ช่วยให้คุณสร้างไฟล์แอนิเมชั่นสำหรับสไปรต์ทั้งหมดที่ต้องการจากนั้นให้คุณบอกเกมให้เล่นโดยอัตโนมัติตามเงื่อนไขบางประการในคอนโทรลเลอร์คอนโทรลเลอร์
Benjamin Danger Johnson

คำตอบ:


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

คุณต้องมีสไปรต์เรนเดอร์แนบกับ GameObject สร้าง C # Script ใหม่และแนบ GameObject วางรหัสไว้ในวงเล็บ ... ฉันแน่ใจว่าคุณสามารถหาได้จากตรงนั้น :)


คุณเป็นตำนาน
kal kokah
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.