マウスでクリックされたオブジェクトを別の変数に保存しようとしていますが、その型をチェックするif文でもRaycastHitはGameObjectに変換されません。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)hit;のようにキャストする必要があります – ClickRick