Menu
CoddyTech
flag Ar iconالعربيةdown icon

استدر كل ثانية

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

تُدير transform.Rotate(x, y, z) كائن اللعبة GameObject بمقدار الدرجات المحدد حول كل محور من محاوره. وعند استدعائها في Update()، تُديره قليلًا في كل إطار، فيستمر الكائن في الدوران.

لكن كم عدد الإطارات في الثانية؟ قد يكون العدد 120 على حاسوب سريع، و30 على هاتف. ستجعل transform.Rotate(0, 0, 5) البسيطة الجسم يدور بسرعة أكبر بأربع مرات على الجهاز الأسرع. حل Unity هو Time.deltaTime: عدد الثواني التي انقضت منذ الإطار السابق. اضرب السرعة فيه، فتصبح السرعة محسوبة في الثانية على كل الأجهزة.

هنا تدور عجلة حول محورها z بمقدار 45 درجة كل ثانية:

public float speed = 45f;

void Update()
{
    transform.Rotate(0, 0, speed * Time.deltaTime);
}

عند 60 إطارًا في الثانية، تكون قيمة Time.deltaTime نحو 0.0167، لذا تدور العجلة في كل إطار بمقدار 45 * 0.0167، أي نحو 0.75 درجة، ويكون مجموع 60 إطارًا 45 درجة. وعند 30 إطارًا في الثانية، تدور العجلة ضعف هذه المسافة في كل إطار، ويظل المجموع في الثانية الواحدة 45 درجة.

challenge icon

التحدي

سهل

يحتوي المكعب على نص برمجي Spinner بسرعة 90. في Update()، اجعل المكعب يدور حول محوره y بمقدار speed درجة كل ثانية، على أي جهاز.

اضغط على Play لمشاهدته، ثم اضغط على Check.

جرّب بنفسك

using UnityEngine;

public class Spinner : MonoBehaviour
{
    public float speed = 90f;

    void Update()
    {
        // أدِر المكعب حول محوره y هنا
    }
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

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