استدر كل ثانية
جزء من قسم أساسيات البرمجة النصية في 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 درجة.
التحدي
سهليحتوي المكعب على نص برمجي Spinner بسرعة 90. في Update()، اجعل المكعب يدور حول محوره y بمقدار speed درجة كل ثانية، على أي جهاز.
اضغط على Play لمشاهدته، ثم اضغط على Check.
جرّب بنفسك
using UnityEngine;
public class Spinner : MonoBehaviour
{
public float speed = 90f;
void Update()
{
// أدِر المكعب حول محوره y هنا
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر