Tôi đã viết C# Script in Unity, phát hiện tất cả các đối tượng hiển thị. Bây giờ tôi muốn xuất chúng từ trái sang phải, như cách chúng được định vị trong cảnh. Mỗi đối tượng có một số và kịch bản lệnh xuất ra các đối tượng theo thứ tự tăng dần.Đọc các đối tượng từ trái sang phải
Ý tưởng của tôi:
Tôi nghĩ về một for-loop
mà đi dọc theo lĩnh vực ngang xem. Đầu tiên tính FOV ngang bởi:
private static float horizontalFOV() {
float radAngle = Camera.main.fieldOfView * Mathf.Deg2Rad;
float radHFOV = 2 * Mathf.Atan(Mathf.Tan(radAngle/2) * Camera.main.aspect);
float hFOV = Mathf.Rad2Deg * radHFOV;
return hFOV;
}
Và tạo vòng lặp theo:
public static string OutputVisibleRenderers (List<Renderer> renderers) {
float hFov = horizontalFOV();
if (null == renderers)
throw new System.ArgumentNullException ("renderers are null");
for (int i = 0; i < hFov; i++) {
foreach (var renderer in renderers) {
if (IsVisible (renderer)) {
myList.Add (renderer.name);
}
}
}
string itemsInOneLine = string.Join ("-", myList.ToArray());
myList.Clear();
print (itemsInOneLine);
print ("--------------------------------------------------");
return itemsInOneLine;
}
Nhưng unfortunally này không hoạt động. Vậy làm thế nào tôi có thể đọc tất cả các đối tượng từ trái sang phải?
Bạn có gặp lỗi hoặc là 'trình kết xuất đồ họa 'trống hoặc chúng không được thêm vào danh sách không? – jhhoff02
Thông tin thêm về cách hoạt động "không hoạt động" sẽ hữu ích. – hatchet
Xin lỗi, tôi có nghĩa là danh sách được tạo, nhưng tất cả các tên (là số) được thêm vào theo thứ tự tăng dần. Và tôi muốn chúng được thêm vào theo thứ tự "vị trí", từ trái sang phải. – Viktoria