هل هناك من يشرح لي هذا الكود c# unity

أخر تفاعل قبل على October 26, 2017 Unity
3 على August 14, 2017

السكربت موجود على coin ولكن لم افهم فيه هذا السطر

if (other.GetComponent<PlayerController>() == null)
            return;

ما المقصود ب   other.GetComponent<PlayerController>() == null

يعني ليه يساوي لا شئ لم افهمها

وكذلك ما الهدف من  return;

 

وكذلك عندي سؤال يحيرني ما الفرق بين كتابة if بي الجسم {} و if بدون الجسم كما في السكربت وما الفرق بينهم ارجو ان اجد من يشرح لي هذه الامور وجزاه الله خيرا

 

using System.Collections;using System.Collections;using System.Collections.Generic;using UnityEngine;
public class CoinPickup : MonoBehaviour {
 public int pointToAdd;
 private void OnTriggerEnter2D(Collider2D other) { if (other.GetComponent<PlayerController>() == null) return;
 ScoreManager.AddPoints(pointToAdd);
 Destroy(gameObject); }}
 
  • إعجاب بواسطة
رد
0 على August 21, 2017

معنى السكريبت السابق، أنه لو قام بالإصطدام بمجسم ليس بلاعب لا تقم بعمل شيء وإخرج حالاً من الدالة.
وهذه طريقة جيدة إذا إصطدمت الكوين مع مجسم آخر غير اللاعب.

لاكن الأفضل هو إزالة إمكانية التصادم بين الكوينز وأي شيء ما عدى اللاعب من إعدادات الفيزيكس الموجودة في المحرك

  • إعجاب بواسطة
رد
إلغاء
0 على September 3, 2017

null = لا شيء

بمعنى اخر لم يجد اي قيمة حقيقية موجودة في المكون

الان سيصطدم بالكائن، معلومات الكائن ستكون موجودة في المتغير other
سنتحقق من other
هل يحتوي على سكربت PlayerController؟
null = لا توجد قيمة
وبالعربي. ما حصل على السكربت
بالتالي بيعمل return
يعني بيقفل الدالة وراح يرجع

في دوال void
تستطيع استعمال return
وستنهي عمل الدالة فوراً
في دوال غير void
يجب عليك استعمال return
والتي تعني = عودة
ولكن يجب ان تضع قيمة نفس ذات النوع المحدد
النوع المحدد يكون بدل عن void
مثلا
int getMyScore(){ return 10;}
or
int myHealth = 150;
int getMyHealth(){return myHealth;}

 

  • إعجاب بواسطة
رد
إلغاء
0 على October 26, 2017

بالتوفيق

  • إعجاب بواسطة
رد
إلغاء
تحميل ردود أكثر
UA-87916106-1