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

النظر إلى الأشياء

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

تُدير transform.LookAt(point) كائنًا بحيث يشير محوره الأمامي، وهو السهم الأزرق z، إلى موضع في العالم. وهي تُدير الكائن ولا تحرّكه. يقع هذا الكشاف على برج عند (0, 6, 0) ويوجّه نحو البوابة عند (4, 0, 10):

void Start()
{
    transform.LookAt(new Vector3(4, 0, 10));
}

تقع البوابة أسفل الضوء، لذا يميل الكشاف إلى الأسفل بالإضافة إلى دورانه: توجّه LookAt مباشرةً نحو النقطة، سواء كانت أعلى أم أسفل. بعد ذلك، يشير transform.forward من الضوء نحو البوابة.

عند استدعائها في Start()، توجّه LookAt مرة واحدة. وعند استدعائها في Update()، تعيد التوجيه في كل إطار، لذا يواصل الكائن مواجهة النقطة أثناء تحرّك الكائن أو النقطة. وسيطها دائمًا موضع: توجّه LookAt(Vector3.forward) نحو نقطة العالم (0, 0, 1)، وهي بقعة بجوار مركز العالم، أينما كان الكائن.

challenge icon

التحدي

متوسط

تتحرك العربة بالفعل باستخدام مفاتيح الأسهم على امتداد محوري x وz في العالم. اجعلها تواجه الاتجاه الذي تتحرك فيه: عندما تتحرك، يشير مقدّمها (محورها الأمامي) إلى اتجاه الحركة، بما في ذلك الاتجاهات القطرية. عندما لا يكون أي مفتاح مضغوطًا، تبقى ساكنة وتظل مواجهة للاتجاه الذي تحركت فيه آخر مرة.

اضغط على Play، وقدها في الأنحاء، ثم اضغط على Check.

جرّب بنفسك

using UnityEngine;

public class Rover : MonoBehaviour
{
    public float speed = 3f;

    void Update()
    {
        Vector3 move = Vector3.zero;
        if (Input.GetKey(KeyCode.RightArrow)) move += Vector3.right;
        if (Input.GetKey(KeyCode.LeftArrow)) move += Vector3.left;
        if (Input.GetKey(KeyCode.UpArrow)) move += Vector3.forward;
        if (Input.GetKey(KeyCode.DownArrow)) move += Vector3.back;
        move = move.normalized;
        transform.position += move * speed * Time.deltaTime;
        // أدر المركبة الجوالة لتواجه اتجاه حركتها
    }
}
quiz iconاختبر نفسك

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

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