Menu
CoddyTech

الأعداد العشرية تحتاج إلى f

جزء من قسم أساسيات البرمجة النصية في Unity في رحلة Unity على Coddy. الدرس 3 من 85.

الأعداد الصحيحة لا تكفي للعبة: يطفو بالون عند 3.5، ويركض لاعب بسرعة 4.2 وحدة في الثانية. للأعداد التي تحتوي على فاصلة عشرية نوع خاص بها، وهو float:

float speed = 4.2f;

لاحظ f في النهاية. في C#، العدد 4.2 من دون لاحقة هو double، وهو نوع عشري آخر، كما أن مواضع Unity وأحجامها من النوع float. تخبر f لغة C# بأن العدد من النوع float. إذا حذفتها، ترفض Unity بدء اللعبة، ويظهر هذا الخطأ في وحدة التحكم:

error CS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this type

يبدو الأمر مخيفًا، لكنه يعني فقط «أضف f». لا يحتاج عدد صحيح مثل 2 إلى f: فهو يتسع في float كما هو.

مفاجأة أخرى: قسمة قيمتين من النوع int تحتفظ بالجزء الصحيح فقط، لذا فإن 7 / 2 تساوي 3. اكتب 7 / 2f لتحصل على 3.5.

challenge icon

التحدي

سهل

أصلح نص البرمجة النصي للبالون، ثم اجعله يطفو إلى ارتفاع أكبر ويصبح أكبر حجمًا.

  1. اضغط على «العب»: تعرض وحدة التحكم الخطأ CS0664 في سطر height.
  2. غيّر ذلك السطر إلى float height = 3.5f;.
  3. غيّر سطر الحجم إلى float size = 1.5f;. يحتاج كل رقم يحتوي على فاصلة عشرية إلى f.

اضغط على «العب»: يطفو البالون عند 3.5، ويصبح حجمه مرة ونصف حجمه الأصلي. ثم اضغط على «تحقق».

جرّب بنفسك

using UnityEngine;

public class Balloon : MonoBehaviour
{
    void Start()
    {
        float height = 2.5;
        float size = 1;

        transform.position = new Vector3(0, height, 0);
        transform.localScale = new Vector3(size, size, size);
    }
}

جميع دروس أساسيات البرمجة النصية في Unity

تدرّب بنفسك: Playground لـ Unity