所以我試圖將鼠標單擊的對象保存到一個單獨的變量,但RaycastHit不會轉換爲GameObject,即使在檢查其類型的if語句中也是如此。C#故障設置變量
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Select : MonoBehaviour
{
public GameObject selectorPrefab;
private GameObject selectedObject;
private GameObject clone;
void Update()
{
if(Input.GetMouseButtonDown(0))//left click
{
if(clone)
{
Destroy(clone);
}
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit) && hit.collider.tag == "Ship")
{
Vector3 position = hit.transform.position;
float scaleMultiplier = (hit.transform.localScale.x + hit.transform.localScale.z)/2;
clone = Instantiate(selectorPrefab);
clone.transform.position = position;
clone.transform.localScale *= scaleMultiplier;
if(hit is GameObject)//Green underline here
{
selectedObject = hit;//Red underline under "hit"
}
}
}
}
}
您可能想要添加相關的技術/ API /框架標籤。 – Plutonix
selectedObject = hit.transform.gameObject –
您在紅色下劃線處的錯誤消息可能是無法從一種類型分配到另一種類型。你需要對它進行轉換,比如'selectedObject =(GameObject)命中;' – ClickRick