c# - 如何在鼠标位置生成对象?

标签 c# unity3d

当我单击右键时,我想创建新的球体。而且我不知道为什么这不起作用。它创建了一个球体,但绝对不是在鼠标位置上!

Vector2 mousePos;
public Transform mousePointer;
float mouseX, mouseY;
Vector3 spawnPoint;

void Start () {

}

void Update () {
    if(Input.GetMouseButtonDown(1)){
        mousePos = Input.mousePosition;
        mouseX = Input.mousePosition.x;
        mouseY = Input.mousePosition.y;
        spawnPoint = new Vector3(mouseX, mouseY, 0);
        Instantiate(mousePointer, spawnPoint, Quaternion.identity);
    }
}

最佳答案

尝试生成相对于相机的对象。

例如,使用 spawnPoint = cameraPosition + new Vector3(mouseX, mouseY, 0); 或类似的东西。查看相关帖子:Create a cube relative to camera mouse position .

对象正在全局坐标中生成。

关于c# - 如何在鼠标位置生成对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33947438/

相关文章:

unity3d - Unity 中的 Kafka 消费

unity3d - Raycasting 在 Unity 2d 游戏中找到鼠标单击对象

android - Unity 2020 无法将 android APK 更新到 API 级别 29

c# - 堆栈 <> C# 中的实现

c# - 无法使用 c# System.Data.SqlClient 连接到本地数据库

c# - 是否可以在自己的 .Net 应用程序中嵌入 Windows Sidebar Widgets

c# - 方法 C# 的扩展方法

c# - Unity 5 C# - 如何更改场景并从最后一个场景导入所有资源

c# - 将项目添加到列表中的递归算法

c# - 一次发送数千封电子邮件,陷阱/最佳方式?