📜  鼠标左键单击 unity - C# (1)

📅  最后修改于: 2023-12-03 15:12:57.797000             🧑  作者: Mango

鼠标左键单击 Unity - C#

在 Unity 中,鼠标左键单击是常见的用户交互方式之一,可以实现诸如选中物体、控制角色、放置道具等功能。在 C# 脚本中,我们可以使用以下代码来实现相应功能的监听:

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        // 鼠标左键单击时执行的代码
    }
}

注意:以上代码应该写在 MonoBehaviour 继承类中的 Update() 函数中。

实例:在鼠标左键单击时改变物体颜色

一个常见的应用场景是,我们在 Unity 场景中放置了若干个物体,并希望在用户鼠标左键单击某个物体时,该物体的颜色能够发生变化,以显示选中状态。

我们可以将以下代码添加到 MonoBehaviour 继承类中:

void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        if (Physics.Raycast(ray, out hit))
        {
            GameObject selectedObject = hit.collider.gameObject;
            selectedObject.GetComponent<Renderer>().material.color = Color.red;
        }
    }
}

这段代码的作用如下:

  1. 通过 Ray 类来生成从摄像机到鼠标点击处的射线;
  2. 判断射线是否与场景内的物体相交,并获取该物体的引用;
  3. 将该物体的材质颜色改为红色。

当然,以上代码只是一个简单的示例,实际应用时可能需要更加复杂的逻辑。

总结

鼠标左键单击是 Unity 中常见的用户交互方式之一,在 C# 脚本中,我们可以使用 Input.GetMouseButtonDown() 方法监听鼠标左键单击事件,并编写相应的逻辑代码。在实际应用中,我们可以使用该功能来实现选中、控制、放置等功能。