首页 > 编程语言 > C#中级编程——C#扩展方法,基于Unity

C#中级编程——C#扩展方法,基于Unity

时间:2023-04-15 16:34:20浏览次数:60  
标签:C# 编程 扩展 Transform Unity trans 方法

C#中级编程——C#扩展方法,基于Unity

目标:

记录下扩展方法的创建,实现和调用。

内容:

例如我们通过扩展方法,要给Unity的Transform写个reset方法。

创建:

直接上代码

using UnityEngine;

public static class ResetTransform
{
    public static void ResetTransformAction(this Transform trans)
    {
        trans.localPosition=Vector3.zero;
        trans.localRotation = Quaternion.identity;
        trans.localScale=Vector3.one;
    }
}

调用:

using UnityEngine;
public class Test611 : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.F1))
        {
            transform.ResetTransformAction();
        }
    }
}

总结:

创建一个包含所有扩展方法的类是很常见的做法。此类必须是静态类。 扩展方法即使像普通方法一样使用,也必须声明为静态。 请注意,第一个参数具有“this”关键字,后跟一个 Transform变量。 此变量表示扩展方法会成为哪个类的一部分。

调用的时候:

请注意,即使方法声明中有一个参数,也不会将任何参数传递给此扩展方法。 调用此方法的Transform 对象会自动作为第一个参数传入。

标签:C#,编程,扩展,Transform,Unity,trans,方法
From: https://blog.51cto.com/u_16023649/6192365

相关文章

  • MFC-SetRectEmpty将矩形各个坐标设置为0
     RECTrect={10,10,50,100};BOOLb=SetRectEmpty(&rect);//将矩形各个坐标设置为0/*参数1:LPRECTlprc指向RECT结构的指针返回值:如果该函数成功,则返回值为非零值。如果函数失败,则返回值为零*/     ......
  • java——微服务——spring cloud——前言导读
                       黑马课程连接:https://www.bilibili.com/video/BV1LQ4y127n4?p=1&vd_source=79bbd5b76bfd74c2ef1501653cee29d6 ......
  • matlab练习程序(Frechet距离)
    Frechet距离用于描述路径的相似性。 可以用一个二维矩阵$Ca$来表示。设$d(i,j)$为A,B路径第$i$和第$j$个点的欧式距离。首先计算A路径第一个点到B路径第一个点的欧式距离,设为$Ca$矩阵的第一个元素。然后再计算$Ca$矩阵的第一行和第一列:$Ca(1,j)=Max(Ca(1,j-1),d(1,j))$$Ca(......
  • Lenovo Legion 5 15IMH05H电脑 Hackintosh 黑苹果efi引导文件
    原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔)硬件型号驱动情况主板LenovoLegion515IMH05H处理器Intel(R)Core(TM)[email protected]已驱动内存16GB2933MHzDDR4已驱动硬盘Intel760p512GB已驱动显卡Intel(R)UHDGraphics630(1GB)......
  • 集成电路IC(4Gbit)IS46TR16256BL-125KBLA1动态随机存取存储器
    IS46TR16256BL-125KBLA14GBitDDR3SDRAM提供紧凑型BGA-96封装的高速SDRAM。IS46TR16256BL具有256Mx16结构,电源电压为1.45V或1.3V,最大时钟频率为800MHz。该SDRAM具有8个内部银行并发操作和8nBit预取架构。IS46TR16256BL是电信和网络、汽车和工业嵌入式计算的理想选择。应用汽车;......
  • git 遇到的CApath: none问题解决
    在适应git时,遇到了如下问题。fatal:unabletoaccess'https://github.com/brunosimon/folio-2019.git/':errorsettingcertificateverifylocations: CAfile:D:/明月下/Git/mingw64/ssl/certs/ca-bundle.crtCApath:none第一反应是查找这个文件是什么,在不在。首先这......
  • PAT Basic 1099. 性感素数
    PATBasic1099.性感素数1.题目描述:“性感素数”是指形如\((p,p+6)\)这样的一对素数。之所以叫这个名字,是因为拉丁语管“六”叫“sex”(即英语的“性感”)。(原文摘自http://mathworld.wolfram.com/SexyPrimes.html)现给定一个整数,请你判断其是否为一个性感素数。2.输入格......
  • mysql left join 查询时主表为null统计count为0的解决方法(join后面加group by)
     如果没有加groupby则会出UserCount为0外其它都是nullselecta.*,count(b.ID)asUserCountfromerp_roleasaleftjoinerp_userasbona.ID=b.RoleIdwhere1=1anda.TenantID=2anda.RoleName='string' 加上groupby一切正常selecta.*,count(b.ID)as......
  • CodeChef Starters 83 Division 1 解题报告
    CodeChefStarters83Division1题解\(\newcommand\v\mathrm\)\(\text{ByDaiRuiChen007}\)ContestLinkA.ConstructStringProblemLink题目大意给定长度为\(n\)的字符串\(S\),每次操作可以把三个相同的字符变成一个同样的字符(\(\texttt{ccc}\to\textttc\))求若......
  • centos7 PATH 环境变量设置
    https://blog.csdn.net/qq_39715000/article/details/1250231901、系统环境变量系统环境变量对全部的用户生效,设置系统环境变量有三种方法。1)在/etc/profile文件中设置。用户登录时执行/etc/profile文件中设置系统的环境变量。但是,Linux不建议在/etc/profile文件中设置系统环......