本次主要介绍5个鼠标事件

void OnMouseEnter():鼠标进入
void OnMouseExit():鼠标移出
void OnMouseDown():鼠标点击
void OnMouseUp():鼠标抬起
void OnMouseDrag():鼠标拖曳

2个静态方法

static GameObject Instantiate():克隆
static void Destroy():销毁

本次案例

本次要求:天上不断的掉下方块,当鼠标在方块上做各种操作,方块会变色
布置场景
一个具有各种鼠标点击事件的预制(muti),
一个鼠标点击事件的脚本(MouseClick.cs)
一个克隆的脚本(MuTiClone)
一个Plane,一个平行光,一个空的游戏对象
制作muti
1>添加一个Cube1,并设置Rigidbody
2>编写MouseClick.cs
public class MouseClick : MonoBehaviour {

    // Use this for initialization
void Start () { } // Update is called once per frame
void Update () { } void OnMouseEnter()
{
gameObject.renderer.material.color=Color.red;
} void OnMouseExit()
{
gameObject.renderer.material.color = Color.blue;
} void OnMouseDown()
{
gameObject.renderer.material.color = Color.green;
} void OnMouseUp()
{
//gameObject.renderer.material.color = Color.yellow;
//当鼠标抬起的时候 销毁游戏对象
GameObject.Destroy(gameObject);
}
}

3>添加预制

把MouseClick拉到Cube1中,把MouseClick.cs拉到Cube1中,最后把Cube1拉到母体中,这个时候,可以把Cube1删掉了

Unity学习-鼠标的常用操作(八)-LMLPHP

编写克隆脚本
1>添加一个GameObject,拉到适当位置,作为要克隆的游戏对象的初始位置

Unity学习-鼠标的常用操作(八)-LMLPHP

2>编写克隆脚本

public class MuTiClone : MonoBehaviour
{
//因为是public,会在Inspector中看到这个属性,对应一个游戏对象
public GameObject go;
// Use this for initialization
void Start () { } // Update is called once per frame
void Update () {
if (Input.GetKeyUp(KeyCode.Space))
{
//当我们抬起空格键的时候 开始克隆
GameObject.Instantiate(go, gameObject.transform.position, gameObject.transform.rotation);
}
}
}

3>MuTiClone.cs拉到GameObject中,并把muti拉到对应的Go中

Unity学习-鼠标的常用操作(八)-LMLPHP

4>运行,点击空格,天上掉下方块,鼠标操作各种变色

Unity学习-鼠标的常用操作(八)-LMLPHP

05-26 09:17