c# - 在飞机上生成小立方体?
问题描述
我有一个脚本,通过鼠标单击和拖动,它会在场景视图中生成小立方体。但是,我有一架飞机,我想在这架飞机的顶部生成这些立方体。有什么办法可以做到这一点?
public class SmallCubes : MonoBehaviour
{
Ray ray;
RaycastHit hit;
public GameObject prefab;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit))
{
if (Input.GetMouseButton(0))
{
GameObject obj = Instantiate(prefab, new Vector3(hit.point.x, hit.point.y, hit.point.z), Quaternion.identity) as GameObject;
}
}
}
}
解决方案
只需使用平面的 y 位置而不是命中点来实例化。
GameObject plane = GameObject.Find("plane");
GameObject obj = Instantiate(prefab, new Vector3(hit.point.x, plane.transform.position.y + cubesize/2, hit.point.z), Quaternion.identity) as GameObject;
虽然我和其他评论者在一起,但似乎这段代码已经完全符合您的要求。
推荐阅读
- botframework - BotFramework Composer 中的多项选择动态选择选项
- c# - 如何使用 NLog 序列化对象字段?
- java - 如何将powerSet的内容保存到Java中的二维数组中
- javascript - 谷歌地图 API 不使用变量
- karate - 如何在 parm 请求中传递一个字符串并在我的请求路径中循环它而不保存到文件和创建表
- swift - 发送 JSON 数组作为参数 Alamofire
- ajax - Jaxon 不会在响应中返回任何内容
- go - Golang 在处理函数之外获取请求
- json - 如何使用python删除json中不需要的分隔符
- flutter - flutter schedule功能本地通知不起作用,有谁知道可能是什么?