تغییر اسپرایت در حین اجرای بازی در یونیتی 5_change sprite runtime unity5 به زبان سیشارپ csharp
جمعه, ۱۵ آبان ۱۳۹۴، ۰۱:۵۸ ب.ظ
منبع:gameover.blog.ir
یک 2d object->sprite ایجاد و اسکریپت سیشارپ با نام changeSprite (حتما باید همنام با کلاس داخل اسکریپت باشه) بسازید و بدید بهش:
یادتون نره دو تا عکس بندازید روی پارامترهای spr1 و spr2 در ورودی اسکریپت(در inspector)
سپس اجرا کنید. با کلید 1 و 2 اسپرایت ها تعویض میشه.
یک 2d object->sprite ایجاد و اسکریپت سیشارپ با نام changeSprite (حتما باید همنام با کلاس داخل اسکریپت باشه) بسازید و بدید بهش:
//changeSprite runTime //lang:csharp //author:sajjad3011 //attach this script to your 2dobject sprite using UnityEngine; using System.Collections; public class changeSprite : MonoBehaviour { public Sprite spr1;//set it in the inspector public Sprite spr2;//set it in the inspector SpriteRenderer sprRndr1; // Use this for initialization void Start(){ sprRndr1=this.gameObject.GetComponent<SpriteRenderer> ();//access to component SpriteRenderer } // Update is called once per frame void Update () { if (Input.GetKey (KeyCode.Keypad1)||Input.GetKey (KeyCode.Alpha1)) { sprRndr1.sprite = spr1; } else if (Input.GetKey (KeyCode.Keypad2)||Input.GetKey (KeyCode.Alpha2)) { sprRndr1.sprite = spr2; } } }
سپس اجرا کنید. با کلید 1 و 2 اسپرایت ها تعویض میشه.
روش دوم بدون متغیر public و با استفاده از مسیر فایل png :
نکته ی بسیار مهم :
ابتدا حتما باید پوشه ای به مسیر Assets/Resources ایجاد کنید.
سپس پوشه ای که
حاوی اسپرایت ها هست بریزید توش. مثل spritesFolder به مسیر
Assets/Resources/spritesFolder
حال داخل پوشه ی Assets/Resources/spritesFolder یک فایل به اسم mySprite.png داریم که می خوایم با کد اونو در لحظه ی اجرا لود کنیم.
به زبان سیشارپ اینطوری می شه :
GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>("spritesFolder/mySprite");