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

本次主要介绍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删掉了
image
编写克隆脚本
1>添加一个GameObject,拉到适当位置,作为要克隆的游戏对象的初始位置
image
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中
image
4>运行,点击空格,天上掉下方块,鼠标操作各种变色
image
更多精彩内容请看:http://www.cnblogs.com/2star
原文地址:https://www.cnblogs.com/kimisme/p/4268392.html