开发者社区> chinar-yunxi> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Unity3D中对系统类进行扩展教程(简化代码逻辑)

简介: Unity中对系统类进行扩展的方法 Unity扩展系统类,简化代码 本文提供全流程,中文翻译。 助力快速完成 Unity 对系统类进行扩展,添加函 新建一个脚本,名称随意 类必须设为静态 Static ,函数同样(这样才能通过其他类,直接访问到扩展函数) 形参为 this + 需要扩展的类 此时,我们通过 transform.
+关注继续查看

Unity扩展系统类,整合简化代码


本文提供全图文流程,中文翻译。

Chinar 坚持将简单的生活方式,带给世人!

(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)

Chinar —— 心分享、心创新!

助力快速完成 Unity 对系统类进行扩展,添加函数便于调用

给新手节省宝贵的时间,避免采坑!


Chinar 教程效果:

    /// <summary>
    /// 每帧刷新
    /// </summary>
    void Start()
    {
        gameObject.SetOff();//是不是很方便,代码很整洁呢!?
        Vector2 v = gameObject.transform.position.GetVector2();//可直接得到物体的二维坐标,取整
    }

1

Come straight to the point —— 开门见山



新建一个脚本,名称随意

类必须设为静态 Static ,函数同样(这样才能通过其他类,直接访问到扩展函数)

形参为 this + 需要扩展的类

依照下列各式
举个例子

// ========================================================
// 描述:对系统类进行扩展,添加函数
// 作者:Chinar 
// 创建时间:2018-08-28 00:03:03
// 版 本:1.0
// ========================================================
using UnityEngine;
/// <summary>
/// 扩展Vector3
/// </summary>
public static class Vctor3Ex
{
    /// <summary>
    /// 调用 transform.position.GetVector2,可直接得到 x,y 平面坐标的信息,并对坐标直接取整
    /// </summary>
    /// <returns>二维坐标</returns>
    public static Vector2 GetVector2(this Vector3 v)
    {
        int x = Mathf.RoundToInt(v.x);
        int y = Mathf.RoundToInt(v.y);
        return new Vector2(x, y);
    }

    /// <summary>
    /// 通过 gameobject.SetOff,可直接关闭当前游戏对象
    /// </summary>
    public static void SetOff(this GameObject go)
    {
        go.SetActive(false);
    }


    /// <summary>
    /// 关闭游戏对象
    /// </summary>
    public static void Off(this Transform go)
    {
        go.gameObject.SetActive(false);
    }


    /// <summary>
    /// 激活游戏对象
    /// </summary>
    public static void On(this GameObject go)
    {
        go.SetActive(true);
    }


    /// <summary>
    /// 激活游戏对象
    /// </summary>
    public static void On(this Transform go)
    {
        go.gameObject.SetActive(true);
    }


    /// <summary>
    /// 设置父物体
    /// </summary>
    public static void SetParent(this GameObject go, GameObject parentGo)
    {
        go.transform.SetParent(parentGo.transform);
    }
}

2

Instruction and Test —— 说明与测试


此时,我们通过 transform.position.GetVector2 就可以调用到扩展后的函数

关闭游戏对象,一般平时写的是gameObject.SetActive(false)

现在:gameobject.SetOff 就可以调用到扩展后的函数,关闭游戏对象

其他的就要靠大家的需求,自己开发啦....是不是很方便呢!?

举个例子

    /// <summary>
    /// 每帧刷新
    /// </summary>
    void Start()
    {
        gameObject.SetOff();//是不是很方便,代码很整洁呢!?
        Vector2 v = gameObject.transform.position.GetVector2();//可直接得到物体的二维坐标,取整
    }

其他

May Be —— 搞开发,总有一天要做的事!


拥有自己的服务器,无需再找攻略!

Chinar 提供一站式教程,闭眼式创建!

为新手节省宝贵时间,避免采坑!




服务器、建站、备案、网站配置等(服务器相关教程大全)


END

本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(二)
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(二)
21 0
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(三)
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(三)
28 0
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(一)
【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)(一)
41 0
第30篇:根据官方教程详解嵌套类、内部类、静态嵌套类、局部类、匿名类 ...
🌻 嵌套类、内部类、局部类等是 Java 面向对象中的难点,但好好研究清楚感觉也不是特别难。博主再次学习这部分内容,以次巩固知识。 🌻 博主其他介绍相关内容的文章:嵌套类、内部类、静态嵌套类... 🌻 博主以官方教程为基础开始学习,其中的概念都是以官方教程为主,这样学习起来比较放心。
9 0
C# GDI+编程之Graphics类
GDI+是GDI的后继者,它是.NET Framework为操作图形提供的应用程序编程接口,主要用在窗体上绘制各种图形图像,可以用于绘制各种数据图像、数学仿真等。 Graphics类是GDI+的核心,它提供将对象绘制到显式设备的方法。Graphics类封装了绘制直线、曲线、圆形、图像和文本的方法,是一切GDI+操作的基础类。在绘图之前,必须在指定的窗体上创建一个Graphics对象,才能调用Graphics类的方法画图。
100 0
【氚云】在代码中,如何实现对人员和部门的调用?
在代码中,如何实现对人员和部门的调用?
84 0
Vim技能修炼教程(10) - 代码跳转
vim和ctags配合,可以实现代码的自动跳转支持
2365 0
+关注
chinar-yunxi
有人天生为王、有人败者为寇 脚下的路如果不是自己的选择,那么旅途的终点在哪?也就没人知道....
文章
问答
文章排行榜
最热
最新
相关电子书
更多
继承与功能组合
立即下载
使用C++11开发PHP7扩展
立即下载
使用TensorFlow搭建智能开发系统自劢生成App UI代码
立即下载