سؤال
أحاول استخدام Physics.Raycast
الطريقة، ولكن أحصل على أخطاء قائلا:
أفضل تطابق طريقة مثالية لتحميل "UnityEngine.pysics.raycast (UnityEngine.Vector3، UnityEngine.Vector3، Float، Int)" لها بعض الوسائط غير الصالحة.
من الغريب أن كل من itellisense والوثائق قل لي أن هذا مسموح به:
RaycastHit hit = new RaycastHit();
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, hit)) {
print(hit.point.ToString());
selection.transform.Translate(hit.point - selection.transform.position);
}
اي فكرة؟
المحلول
أعتقد أنك بحاجة إلى الكلمة الرئيسية قبل "ضرب" في الفيزياء.
RaycastHit hit = new RaycastHit();
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit)) {
print(hit.point.ToString());
selection.transform.Translate(hit.point - selection.transform.position);
}
نصائح أخرى
في C #، يجب أن نستخدم معلمة مقدمة الخروج قبل النتيجة المتغيرة من أجل الحصول على الوظيفة لتعيين البيانات إليها.
لا تنتمي إلى StackOverflow