Unity框架学习_拓展静态方法_更轻松简介的开发方式

             Unity框架学习_拓展静态方法_更轻松简介的开发方式


目录

1、博客介绍

2、内容

3、推送

4、结语


1、博客介绍

平时我们调研官方属性的时候,例如Transfrom,GameObject的时候只能调用一些官方自己API

官方API调用例子:

		gameObject.GetComponent<Test>();

拓展API调用例子:

		gameObject.IsTestFuc();

       现在我们想要实现的就是官方属性调用自己编写的API,这就是静态类拓展了,最近在学习凉鞋老师的框架QFramework,很值得大家学习,看到了一些关于静态类拓展的内容,学习和整理了一下,贴出来以供各位参考。


2、内容

这里给大家列举一两个拓展方法,供大家理解

例1:判断一个GameObject是否为空,非空返回自身,空则实例后返回

正常写法:

        private GameObject obj;

	public GameObject GetObj()
	{
		if (obj==null)
		{
			obj = new GameObject();
		}

		return obj;
	}

利用this + T的方式来在静态类中拓展静态方法的方式来简化这个流程。

using UnityEngine;

/// <summary>
/// time:2019/5/10 0:43
/// author:Sun
/// des:GameObject_静态类拓展
/// </summary>
public static class GameObjectExtention{
	
	/// <summary>
	/// GameObject非空返回,空实例返回
	/// </summary>
	/// <param name="obj"></param>
	/// <returns></returns>
	public static GameObject IsNullToInit(this GameObject obj)  
	{
		if (obj==null)
		{
			obj = new GameObject();
		}
		return obj;
	}

}

拓展方法调用: 

GameObject newObj = obj.IsNullToInit();

如此一来,我们在静态的拓展方法中已经做过了判断,所以可直接像上述obj.IsNullToInit()一样去调用了。

 

例2:只改变一个Transform的X值,Y和Z要保持不变

正常写法:

        private Transform tra;

	private void SetX(float x)
	{
		tra.position = new Vector3(x,tra.position.y,tra.position.z);
	}

拓展方法:


using UnityEngine;

/// <summary>
/// time:2019/5/8
/// author:Sun
/// des:Transfom_静态类拓展
/// </summary>
public static class TransformExtension{
    
    /// <summary>
    /// 设置X
    /// </summary>
    /// <param name="transform"></param>
    /// <param name="x"></param>
    public static void SetX(this Transform transform, float x)  
    {  
        transform.position = new Vector3(x, transform.position.y, transform.position.z);
    }

}

拓展方法调用:

tra.SetX(10);

       博主从凉鞋老师的拓展类摘了很多拓展方法出来,放在了GitHub上,有兴趣的同学可以了解一下,后续会不断的向里面补充和更新。


3、推送

博主Github:https://github.com/KingSun5/StaticExtension

学习:https://blog.csdn.net/egostudio/article/details/51086453

QFramework:https://github.com/liangxiegame/QFramework


4、结语

博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。

       QQ交流群:806091680(Chinar)

       该群为CSDN博主Chinar所创,推荐一下!我也在群里!

       本文属于原创文章,转载请著名作者出处并置顶!!!!!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值