Unity中Inspector无法显示validTiles列表项的问题求助
Unity Inspector无法显示validTiles列表内容
我编写了一个函数,用于查找指定位置的Tile并添加到列表,最终将该列表赋值给validTiles。通过调试与Debug.Log可确认列表包含正确的Tile实例,但运行游戏时Inspector中却无法显示这些列表项。我已尝试将编辑器版本升级至2021.3.14f1,以及直接向validTiles列表添加元素,但问题仍未解决。
以下是我的代码:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class PieceController : MonoBehaviour { [Header("Location managing")] public Tile currentTile; public Vector3 currentTilePos; [Header("Move making")] public Piece pieceType; public List<Tile> validTiles = new List<Tile>(); private TileSelector tileSelector; // Start is called before the first frame update void Start() { tileSelector = GameObject.Find("GameController").GetComponent<TileSelector>(); } // Update is called once per frame void Update() { currentTilePos = currentTile.GetComponent<Tile>().positionTop; validTiles = CalculateValidTiles(); Debug.Log("Valid tiles: " + validTiles.ToString()); } public List<Tile> CalculateValidTiles() { float tileLength = pieceType.tileLength; List<Tile> tiles = new List<Tile>(); foreach (LegalMove move in pieceType.moves) { Vector3 legalPosition; Vector3 originPosition = transform.position; legalPosition = new Vector3(originPosition.x + move.tilesPositiveX, originPosition.y, originPosition.z + move.tilesPositiveZ); Ray ray = new Ray(legalPosition, Vector3.down); RaycastHit hit; if (Physics.Raycast(ray, out hit, 1.5f)) { Debug.Log("Hit: " + hit.collider.gameObject.name); if (hit.collider.gameObject.tag == "piece" && !validTiles.Contains(hit.collider.gameObject.GetComponent<Tile>())) { tiles.Add(hit.collider.gameObject.GetComponent<Tile>()); } } } Debug.Log("Tiles calculated: " + tiles.ToString()); return tiles; } }
内容的提问来源于stack exchange,提问作者pinkflameinthepan
相关产品推荐
相关产品推荐

