自己写了一段代码,检测的时候没报错,运行奠基石却出现了如下情况:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BuildTool : MonoBehaviour
{
public RaycastHit hitInfo;
public GameObject prefab;
void Start()
{
Debug.Log(prefab.name);
}
void Update()//检测鼠标所点击到的物体并在对应位置创建新物体
{
if(Input.GetMouseButtonDown(0))
{
Ray buildray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(buildray, out hitInfo, 300, LayerMask.GetMask("build point")))
{
Transform HITTEDparentT = hitInfo.transform.parent.transform;
Transform HITTEDselfT = hitInfo.transform;
Quaternion PrefabForward = Quaternion.Euler(HITTEDselfT.forward);
Instantiate(prefab,HITTEDparentT.position + HITTEDselfT.forward,PrefabForward);
}
}
}
}
你取了射线碰到的物体的父物体的transform,我看你外边也没有那个物体有父物体啊
21行改成:
Transform HITTEDparentT = hitInfo.transform.transform;