Unity快速入门之三 脚本与事件

Unity快速入门之一 3D基础概念、Camera、Canvas RenderMode的几种方式对比_翕翕堂

Unity快速入门之二 GUI Transform 详解_翕翕堂

Unity快速入门之三 脚本与事件_翕翕堂

Unity快速入门之四 - Unity模型动画相关_翕翕堂-CSDN博客

资源管理待定……

……

这一篇主要是从代码了,代码内容是纯示例内容,可以有更多更好的思路扩展。

本篇幅会比较长,涉及到比较多的内容,请坐好准备发车~~~~

前置准备就需要自己准备好了:

1、准备 visual studio 2017 IDE。

2、安装 vs for unity 插件。

3、C#语法基础或其他语言基础。


目录

C# Script(脚本)

脚本创建

挂载脚本

前置场景与知识准备

Unity内置事件

Unity按钮(Button)点击(OnClick)事件

文本(Text)触发(Trigger)事件

自定义(Custom)触发(Trigger)事件

自定义事件系统

铺垫

EventManagerUnity(UnityEvent && UnityAction)

EventManagerDelegate

EventManagerFunc

EventManagerAction

 EventManagerFunc

事件系统总结


C# Script(脚本)

脚本创建

Project视图下,Assets及其子目录,右键菜单->Create->C# Script:

Unity快速入门之三 脚本与事件_第1张图片 创建C#脚本方式

建一个Script文件夹,创建一个C#脚本,默认脚本名字 New Behaviour Script,点击脚本,可以在 Inspector中可以显示脚本内容:

Unity快速入门之三 脚本与事件_第2张图片 第一个默认脚本

挂载脚本

Unity快速入门之三 脚本与事件_第3张图片 将创建的脚本当成组件挂载到3D对象身上

Hierarchy视图中选中一个3D对象,在其Inspector视图中,最下方点击 Add Componet 按钮,输入框中搜索刚才创建的脚本 NewBehaviourScript,就可以看到它了,点击挂在到这个对象上:

Unity快速入门之三 脚本与事件_第4张图片 脚本被挂载了

先用 vs2017打开这个脚本,双击上方图片中黄色位置即可(需要配置好环境,不展开了):

Unity快速入门之三 脚本与事件_第5张图片 vs2017下脚本

前置场景与知识准备

由于按钮是最通用的控件,从它开始切入。首先创建一个基础场景:

  • 按钮控件:button event
  • 文本控件:text event
  • 文本控件:custom trigger
  • 3D Cube:Cube
Unity快速入门之三 脚本与事件_第6张图片 一个按钮、两个文本、一个cube

创建一个脚本 ButtonEvent,并放到 button event控件 上,先介绍几个脚本的基本内容:

MonoBehaviour:Unity对象的基础类,里面拥有很完整的生命周期,继承于这个类的脚本都可以当成组件挂载到具体的对象身上。

void Start():首次加载以及对象再次激活的时候会被调用,这次我们只要用到它就好了。

gameObject:此脚本组件说挂载的对象,由于我们要使用Button及其点击事件,Button也是一个独立组件,要由它来获取。

Unity内置事件

Unity按钮(Button)点击(OnClick)事件

流程上:

  • 创建点击处理函数
  • 找到按钮
  • 绑定处理函数到按钮

按钮点击函数上代码实现方式,常见的四种:

  • 成员函数
  • 匿名委托
  • 实例委托
  • lambda

这些都是基于C#语法的,语法规则就不做展开了。

下面开始说 Button怎么绑定点击响应事件,首先,保留脚本最简形式:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {

    }
}

增加一个响应我们点击事件的成员函数作为处理函数:

public class ButtonEvent : MonoBehaviour
{
    void Start()...

    public void OnClickFunction00()
    {
        Debug.Log("AddListener - 委托成员函数 - OnClickFunction00");
    }
}

在Start中找到我们要的按钮,并将处理函数绑定到按钮上:

// 使用控件需要添加的命名空间
using UnityEngine.UI;

public class ButtonEvent : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        // AddListener - 成员函数 - OnClickFunction
        gameObject.GetComponent

由于使用了Butoon,这个属于 UnityEngine.UI 之下,所以开头要使用 using UnityEngine.UI

获取组件通过 gameObject.GetComponent() 接口,我们这用的Button,所以是gameObject.GetComponent

你可能感兴趣的:(Unity,unity)