النظر إلى الأشياء
جزء من قسم أساسيات البرمجة النصية في 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)، وهي بقعة بجوار مركز العالم، أينما كان الكائن.
التحدي
متوسطتتحرك العربة بالفعل باستخدام مفاتيح الأسهم على امتداد محوري 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;
// أدر المركبة الجوالة لتواجه اتجاه حركتها
}
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس أساسيات البرمجة النصية في Unity
1أول سكربت لك
مرحبًا يا Unityضع المكعبتحرّك في كل إطاراستدر كل ثانيةوجّه باستخدام المفاتيحمراجعة: قُد المكعب5التحويلات والتسلسل الهرمي
الآباء والأبناءالتحجيمالنظر إلى الأشياءالتحرك نحو نقطةمراجعة: القمر الدائر