لوضع مصفوفة من نوع GameObject
هنا عدد GameObject غير محدد
-----------------------------------------------------------------------------------------------------------------
ماذا لو اردنا وضع عدد لــــ GameObject
مثلا يكون 20 GameObject في مصفوفة arrayofgameobject
ملاحظه
(في المصفوفه يتم العد من الرقم صفر انظر => 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 فيصبح المجموع 20 خانة)
لاضافة عدد 20 GameObject هذا السكربت سيعطيك خطأ
لاضافة عدد 20 GameObject وهذا السكربت الصحيح
الان قارن بين السكربت الصحيح والسكربت الخطأ
قبل ان ننطلق في شرحنااا
يجب ان تعرف كيف تحدد طول هذه المصفوفة واقصد عدد GameObject في مصفوفة arrayofgameobject
من خلال الامر التالي
-----------------------------------------------------------------------------------------------------------------
الان كيف احدد GameObject معين في مصفوفة arrayofgameobject
يتم ذلك بتحدد الخانة لهذه GameObject
بعد ان حددنا GameObject في السكربت السابق ماذا بعد
صلو على النبي علشان نكمل
نريد مثلا استدعاء اسم هذا القيم GameObject وطباعة
فنكتب التالي
نريد ان نحدد مثلا موقعه وطياعتة
-----------------------------------------------------------------------------------------------------------------
الان نريد ان نحدد GameObject ونضعهم في مصفوفة باسم arrayofgameobject
عن طريق tag لهذا GameObject
نضع مربع ودائره واسطوانة ونغير التاج لهم ونجعله tag من نوع Player
الان نضع هذا السكربت
الان ادخلناهم في المصفوفة
وماذا بعد
اذكرو الله اولا.... ثم نعود للشرح
مثلا نريد طباعة جميع اسماء GameObject في مصفوفة التي تحمل اسم nameofgameobject
نسختدم هذا السكربت
هنا قمنا بتعريف متغير باسم nameofgameobject وحددنا نوعه وهو GameObject
وقلنا له ان هذا nameofgameobject يساوي GameObject الاول في مصفوفة arrayofgameobject
ولكن for سوفة تستمر بالدوران وتجل nameofgameobject يساوي GameObject الثاني في مصفوفة arrayofgameobject
وهكذا سيكون هنالك loop خلال الامر () for
الان سنرى طريقة اخرى ::::
او نستخدم هذا السكربت
الان قارن بين السكربتين
سيتم التحديث قريبااااااااااااااااااا والتفصيل اكثر رقم 1
لقد تعرفنا على طريقة اضافة GameObject باستخدام tag الي مصفوفة باسم arrayofgameobject
الان سنتعرف على طريقة اخرى لاضافة GameObject الي مصفوفة باسم arrayofgameobject
سنحتاج الي تحديد عدد معين من الخانات هكذا
بالتالي سينتج لنا 20 خانة فاضية تستوعب عدد 20 GameObject
ثم نقوم بملأ هذه الخانات بـــGameObject نحدده بعينة ويتم ذلك
طريقة تحديد GameObject بعينة يتم بهذا الكود .... بسحب الكائن وافلاته
او
بالبحث عن الكائن عن طريقة اسمه
الان استطعنا تحديد GameObject بالطريقتين السابقتين سوف ندخلة الي مصفوفة باسم arrayofgameobject
ويكون الكود كالتالي
او
قارن بين الاثنين:::::: انتهيت من المقارنه صلي على النبي واذكر الله نرجع لدرسنااااااا
الان رئيتهم الية ادخال GameObject في الخانة رقم 4 .......
ملاحظه ( يمكن عمل ما ذكر سابقا بسحب GameObject وافلاته في الخانة رقم 4 مباشره )
سيتم التحديث قريبااااااااااااااااااا والتفصيل اكثر رقم 2
بصراحة ندمت اني ماساعدتك
وما جاوبتك على سؤالك في وقتها لكن التحديث القادم سيكون الجواب
--------------------------------------------------------------------------------------------------------
الان سنطبق كل ما تعلمناه في سكربت واحد ..... سنصنع سكربت وضيفة
ان يقوم باللتقاط كل GameObject نحدده عليه بالفأره ونضغط على زر الماوس الايسر
فيتم ادخال هذا GameObject في مصفوفة لمرة واحد فقط ...........
بالبداية نحدد المصفوفة وعدد الخانات ونضي ايضا متغير لتحديد رقم الخانة ويكون هذا المتغير من نوع int
الان نضع دالة function Update ونضع بداخلها شرط ...
اذا تم الضغط على الزر الايسر من الفاره Input.GetButtonDown ("Fire1") 0_0
سيتم استدعاء دالة إضافة GameObject للمصفوفه وهي باسم getgameobjectandPutinarray() 0_0
ويكون الكود كالتالي
الان نقوم بكتابة دالة getgameobjectandPutinarray المختصه في إضافة GameObject الي المصفوفة
اولا نقوم بتحديد احداثي مؤشر الفارة واللذي يبتدي او ينطلق من الكاميرا بهذا الكود
بذلك نكون عرفنا متغير نوعة احداثي Vector3 .....( وضيفتة ان يقوم بتحديد موقع مؤشر الفاره بالنسبة للكاميرا )
ثانيا نعرف متغير من نوع شعاع تصادمي ... (وضيفته ان يقوم بجلب المعلومات عن المجسمات التي اصتدمت به)
بهذا الكود
الان نضع شرط اذا اصتدم الشعاع بــGameObject يتم جلب هذا ال GameObject ووضعة في مصفوفة
نكتب الكود الشرط بهذه الطريقة
ملاحظه (لوضع شعاع التصادم يتطلب منك ثلاث اوامر على الاقل
الاول تحديد مكان شعاع التصادم اللذي ينطلق منه والامر الثاني يطلب منك تحديد اتجاه انطلاقة وقد استخدمنا ray لذلك الامرين
واما الامر الثالث فهو يطلب منك طول هذا الشعاع وقد وضعنا او استخدمنا hit لذلك وهذا يعني انه طولة الي ماله نهاية وبدايته من الكاميرا المفعلة)
بذلك نحصل على الكود الابتدائيه بهذه الصوره
الان نكمل في اوامر اضافة الجيم اوبجكت عن اصتدامه بالشعاع وإضافة الي المصفوفة لمره واحده فقط
اولا قبل اضافة الجيم اوبجكت نحدد هل هو موجود في المصفوفة او لا
عن طريق عمل loop لاستعراض جميع الجيم اوبجكت في المصفوفة ومقارتنتها بالجيم اوبجكت اللذي اصتدم بالشعاع هل يساوي او لا
بهذا الكود
هنا الاحتمال الاول ::
ستم عمل لوب اوستعراض جميع الجيم اوبجكت وماقرنتها مع الجيم اوبجكت اللذي اصتدم به الشعاع
فاذا كان احد هذه الجيم اوبجكت يساويه
فانه الامر return سيوقف عمل loop والدالة بالكامل
ولن يتم قراة الدالة function getgameobjectandPutinarray بالكامل
هنا الاحتمال الثاني::
ستم عمل لوب اوستعراض جميع الجيم اوبجكت وماقرنتها مع الجيم اوبجكت اللذي اصتدم به الشعاع
فاذا كان احد هذه الجيم اوبجكت لا يساويه
فانه الامر return لن يعمل وسوف تستمر loop الي النهاية ثم سيتم قراءة الدالة function getgameobjectandPutinarray بالكامل
وهنا مربط الفرس اذا كان الاحتمال الثاني صحيح فاننا نضع هذا الامر لاضافة الجيم اوبجكت الي المصفوفة
الان نضع السكربت دالة function getgameobjectandPutinarray بالكامل
والان نضيف السكربت بالكامل
انتهى الدرس سيييي يووووو
وهذه اضافة لمن طبقو الدرس
كود PHP:
var arrayofgameobject : GameObject[] ;
-----------------------------------------------------------------------------------------------------------------
ماذا لو اردنا وضع عدد لــــ GameObject
مثلا يكون 20 GameObject في مصفوفة arrayofgameobject
ملاحظه
(في المصفوفه يتم العد من الرقم صفر انظر => 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 فيصبح المجموع 20 خانة)
لاضافة عدد 20 GameObject هذا السكربت سيعطيك خطأ
كود PHP:
var arrayofgameobject : GameObject[19] ;
لاضافة عدد 20 GameObject وهذا السكربت الصحيح
كود PHP:
var arrayofgameobject : GameObject[]= new GameObject[19] ;
الان قارن بين السكربت الصحيح والسكربت الخطأ
قبل ان ننطلق في شرحنااا
يجب ان تعرف كيف تحدد طول هذه المصفوفة واقصد عدد GameObject في مصفوفة arrayofgameobject
من خلال الامر التالي
كود PHP:
print(arrayofgameobject.Length)
الان كيف احدد GameObject معين في مصفوفة arrayofgameobject
يتم ذلك بتحدد الخانة لهذه GameObject
كود PHP:
arrayofgameobject [4]
بعد ان حددنا GameObject في السكربت السابق ماذا بعد
صلو على النبي علشان نكمل
نريد مثلا استدعاء اسم هذا القيم GameObject وطباعة
فنكتب التالي
كود PHP:
print(arrayofgameobject[4].name);
نريد ان نحدد مثلا موقعه وطياعتة
كود PHP:
print(howmany[0].transform.position);
-----------------------------------------------------------------------------------------------------------------
الان نريد ان نحدد GameObject ونضعهم في مصفوفة باسم arrayofgameobject
عن طريق tag لهذا GameObject
نضع مربع ودائره واسطوانة ونغير التاج لهم ونجعله tag من نوع Player
الان نضع هذا السكربت
كود PHP:
var arrayofgameobject : GameObject[] ;
function Start () {arrayofgameobject = GameObject.FindGameObjectsWithTag("Player") ;}
وماذا بعد
اذكرو الله اولا.... ثم نعود للشرح
مثلا نريد طباعة جميع اسماء GameObject في مصفوفة التي تحمل اسم nameofgameobject
نسختدم هذا السكربت
كود PHP:
for(var nameofgameobject : GameObject in arrayofgameobject ){print(nameofgameobject.name);}
وقلنا له ان هذا nameofgameobject يساوي GameObject الاول في مصفوفة arrayofgameobject
ولكن for سوفة تستمر بالدوران وتجل nameofgameobject يساوي GameObject الثاني في مصفوفة arrayofgameobject
وهكذا سيكون هنالك loop خلال الامر () for
الان سنرى طريقة اخرى ::::
او نستخدم هذا السكربت
كود PHP:
for(var i =0 ;i < arrayofgameobject.Length ; i++){print(arrayofgameobject[i].name);}
سيتم التحديث قريبااااااااااااااااااا والتفصيل اكثر رقم 1
لقد تعرفنا على طريقة اضافة GameObject باستخدام tag الي مصفوفة باسم arrayofgameobject
كود PHP:
var arrayofgameobject : GameObject[] ;
function Start () {arrayofgameobject = GameObject.FindGameObjectsWithTag("Player") ;}
الان سنتعرف على طريقة اخرى لاضافة GameObject الي مصفوفة باسم arrayofgameobject
سنحتاج الي تحديد عدد معين من الخانات هكذا
كود PHP:
var arrayofgameobject : GameObject[]= new GameObject[19] ;
ثم نقوم بملأ هذه الخانات بـــGameObject نحدده بعينة ويتم ذلك
طريقة تحديد GameObject بعينة يتم بهذا الكود .... بسحب الكائن وافلاته
كود PHP:
var anygameobject : GameObject ;
بالبحث عن الكائن عن طريقة اسمه
كود PHP:
var anygameobject : GameObject;
anygameobject = GameObject.Find("اسم الكائن");
ويكون الكود كالتالي
كود PHP:
var arrayofgameobject : GameObject[] = new GameObject[19]; ;
var anygameobject : GameObject ;
function Start () {
arrayofgameobject[4]=anygameobject ;
}
كود PHP:
var arrayofgameobject : GameObject[] = new GameObject[19]; ;
var anygameobject : GameObject;
anygameobject = GameObject.Find("اسم الكائن");
function Start () {
arrayofgameobject[4]=anygameobject ;
}
قارن بين الاثنين:::::: انتهيت من المقارنه صلي على النبي واذكر الله نرجع لدرسنااااااا
الان رئيتهم الية ادخال GameObject في الخانة رقم 4 .......
ملاحظه ( يمكن عمل ما ذكر سابقا بسحب GameObject وافلاته في الخانة رقم 4 مباشره )
سيتم التحديث قريبااااااااااااااااااا والتفصيل اكثر رقم 2
المشاركة الأصلية بواسطة matrixinc
مشاهدة المشاركة
بصراحة ندمت اني ماساعدتك
وما جاوبتك على سؤالك في وقتها لكن التحديث القادم سيكون الجواب
--------------------------------------------------------------------------------------------------------
الان سنطبق كل ما تعلمناه في سكربت واحد ..... سنصنع سكربت وضيفة
ان يقوم باللتقاط كل GameObject نحدده عليه بالفأره ونضغط على زر الماوس الايسر
فيتم ادخال هذا GameObject في مصفوفة لمرة واحد فقط ...........
بالبداية نحدد المصفوفة وعدد الخانات ونضي ايضا متغير لتحديد رقم الخانة ويكون هذا المتغير من نوع int
كود PHP:
var arrayofgameobject : GameObject[] = new GameObject[19];
var numberofgameobjectinarray = 0;
الان نضع دالة function Update ونضع بداخلها شرط ...
اذا تم الضغط على الزر الايسر من الفاره Input.GetButtonDown ("Fire1") 0_0
سيتم استدعاء دالة إضافة GameObject للمصفوفه وهي باسم getgameobjectandPutinarray() 0_0
ويكون الكود كالتالي
كود PHP:
var arrayofgameobject : GameObject[] = new GameObject[19];
var numberofgameobjectinarray = 0;
function Update()
{
if (Input.GetButtonDown ("Fire1"))
{
getgameobjectandPutinarray();
}
}
كود PHP:
function getgameobjectandPutinarray()
{
}
اولا نقوم بتحديد احداثي مؤشر الفارة واللذي يبتدي او ينطلق من الكاميرا بهذا الكود
بذلك نكون عرفنا متغير نوعة احداثي Vector3 .....( وضيفتة ان يقوم بتحديد موقع مؤشر الفاره بالنسبة للكاميرا )
كود PHP:
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
بهذا الكود
كود PHP:
var hit : RaycastHit;
الان نضع شرط اذا اصتدم الشعاع بــGameObject يتم جلب هذا ال GameObject ووضعة في مصفوفة
نكتب الكود الشرط بهذه الطريقة
كود PHP:
if (Physics.Raycast (ray, hit))
الاول تحديد مكان شعاع التصادم اللذي ينطلق منه والامر الثاني يطلب منك تحديد اتجاه انطلاقة وقد استخدمنا ray لذلك الامرين
واما الامر الثالث فهو يطلب منك طول هذا الشعاع وقد وضعنا او استخدمنا hit لذلك وهذا يعني انه طولة الي ماله نهاية وبدايته من الكاميرا المفعلة)
بذلك نحصل على الكود الابتدائيه بهذه الصوره
كود PHP:
function getgameobjectandPutinarray()
{
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
if (Physics.Raycast (ray, hit))
{
هنا سنع بعض الاوامر لاضافة القيم اوبجكت لمره واحده فقط
{
}
الان نكمل في اوامر اضافة الجيم اوبجكت عن اصتدامه بالشعاع وإضافة الي المصفوفة لمره واحده فقط
اولا قبل اضافة الجيم اوبجكت نحدد هل هو موجود في المصفوفة او لا
عن طريق عمل loop لاستعراض جميع الجيم اوبجكت في المصفوفة ومقارتنتها بالجيم اوبجكت اللذي اصتدم بالشعاع هل يساوي او لا
بهذا الكود
كود PHP:
for(var i = 0;i < arrayofgameobject.length;i++)
{
if(hit.collider.gameObject == arrayofgameobject[i])
return;
}
ستم عمل لوب اوستعراض جميع الجيم اوبجكت وماقرنتها مع الجيم اوبجكت اللذي اصتدم به الشعاع
فاذا كان احد هذه الجيم اوبجكت يساويه
فانه الامر return سيوقف عمل loop والدالة بالكامل
ولن يتم قراة الدالة function getgameobjectandPutinarray بالكامل
هنا الاحتمال الثاني::
ستم عمل لوب اوستعراض جميع الجيم اوبجكت وماقرنتها مع الجيم اوبجكت اللذي اصتدم به الشعاع
فاذا كان احد هذه الجيم اوبجكت لا يساويه
فانه الامر return لن يعمل وسوف تستمر loop الي النهاية ثم سيتم قراءة الدالة function getgameobjectandPutinarray بالكامل
وهنا مربط الفرس اذا كان الاحتمال الثاني صحيح فاننا نضع هذا الامر لاضافة الجيم اوبجكت الي المصفوفة
كود PHP:
arrayofgameobject[numberofgameobjectinarray] = hit.collider.gameObject;
numberofgameobjectinarray++;
الان نضع السكربت دالة function getgameobjectandPutinarray بالكامل
كود PHP:
function getgameobjectandPutinarray()
{
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
if (Physics.Raycast (ray, hit))
{
for(var i = 0;i < arrayofgameobject.length;i++)
{
if(hit.collider.gameObject == arrayofgameobject[i])
return;
}
arrayofgameobject[numberofgameobjectinarray] = hit.collider.gameObject;
numberofgameobjectinarray ++;
}
}
والان نضيف السكربت بالكامل
كود PHP:
var arrayofgameobject : GameObject[] = new GameObject[19];
var numberofgameobjectinarray = 0;
function Update()
{
if (Input.GetButtonDown ("Fire1"))
{
getgameobjectandPutinarray();
}
}
function getgameobjectandPutinarray()
{
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hit : RaycastHit;
if (Physics.Raycast (ray, hit))
{
for(var i = 0;i < arrayofgameobject.length;i++)
{
if(hit.collider.gameObject == arrayofgameobject[i])
return;
}
arrayofgameobject[numberofgameobjectinarray] = hit.collider.gameObject;
numberofgameobjectinarray ++;
}
}
انتهى الدرس سيييي يووووو
وهذه اضافة لمن طبقو الدرس
كود PHP:
if(numberofgameobjectinarray<arrayofgameobject.length-1)
numberofgameobjectinarray ++;
تعليق