您的位置:首页 > 移动开发 > Unity3D

【unity小技巧之三】添加自定义拓展,动态向某个类注入静态函数

2016-04-07 15:45 519 查看
有的时候想直接通过transform.position.x=10f;的时候,编译器会报错,必须这样写

transform.position = new Vector3(10f, transform.position.y, transform.position.z);
这样特别的不方便,然而C#3.0新加入一个特性,就是通过this关键字动态的向某个类注入静态函数,比如:

using UnityEngine;
using System.Collections;

public static class ExtraTransform {

public static void SetX(this Transform transform, float x)
{
Vector3 newPosition =
new Vector3(x, transform.position.y, transform.position.z);
transform.position = newPosition;
}

public static void SetY(this Transform transform, float y)
{
Vector3 newPosition =
new Vector3 (transform.position.x, y, transform.position.z);
transform.position = newPosition;
}

public static void SetZ(this Transform transform, float z)
{
Vector3 newPosition =
new Vector3 (transform.position.x, transform.position.y, z);
transform.position = newPosition;
}

public static float GetX(this Transform transform)
{
return transform.position.x;
}

public static float GetY(this Transform transform)
{
return transform.position.y;
}

public static float GetZ(this Transform transform)
{
return transform.position.z;
}
}

所以上面的代码直接写transform.SetX(10f);即可,这样代码写起来更加快捷~~~



提示:静态类不能拓展MonoBehaviour类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: