目录
Using 关键字介绍
看了很多的参考文档都把 using 关键字列为 3 个用途,但我看下来准备列为 4个用途
- 允许在命名空间中使用类型,这样无需在该命名空间中限定某个类型的使用
- 允许访问类型的静态成员和嵌套类型,而无需限定使用类型名称进行访问
- 为命名空间或类型创建别名,称为 using 别名指令
using
关键字还用于创建 using 语句,此类语句的类需要继承 IDisposable
Using 关键字使用介绍
第一个用途使用介绍
using 来声明你用到的系统类,类似于java 中的 import。如下using UnityEngine.UI 加入到类中,Unity 开发中就可以使用 UI 控件了,比如Image,Button,Text,Toggle等一些UI控件,这些都写在类的最前面。
using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class LoginScripts : MonoBehaviour
{
//代码体省略
}
第二个用途使用介绍
允许访问类型的静态成员和嵌套类型,而无需限定使用类型名称进行访问,如下代码中第二个类中 using static System.Math的静态l类引入,用户在使用时就比较便捷,直接使用成员变量或者方法就可以了
using System;
public class Circle
{
public Circle(double radius)
{
Radius = radius;
}
public double Radius { get; set; }
public double Diameter
{
get { return 2 * Radius; }
}
public double Circumference
{
get { return 2 * Radius * Math.PI; }
}
public double Area
{
get { return Math.PI * Math.Pow(Radius, 2); }
}
}
using System;
using static System.Math;
public class Circle
{
public Circle(double radius)
{
Radius = radius;
}
public double Radius { get; set; }
public double Diameter
{
get { return 2 * Radius; }
}
public double Circumference
{
get { return 2 * Radius * PI; }
}
public double Area
{
get { return PI * Pow(Radius, 2); }
}
}
第三个用途使用介绍
为命名空间或类型创建别名,如下截图是是为命名空间创建别名:
第四个用途使用介绍
这里通过Unity和Android之间交互来介绍这个用途,一般 Unity 中用AndroidJavaClass 来直接调用Android的接口。
因为使用AndroidJavaClass和AndroidJavaObject是最为方便的方式。具体可以看如下代码:
using UnityEngine;
public class AndroidDialogTest : MonoBehaviour
{
private AndroidJavaClass jc;//调用的是Android中的静态方法
private AndroidJavaObject jo;//调用的是Android中的非静态方法
// Start is called before the first frame update
void Start()
{
//这是Unity的固定写法
using (jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
}
}
//二级dialog
public void DialogTestMethod()
{
//调用 Android 中的 UnityDialog 方法
jo.Call("UnityDialog", "My Unity", "欢迎来到 Erica 的Unity");
}
//退出dialog
public void DialogQuitAppTestMethod()
{
//调用 Android 中的 UnityQuitMainActivity 方法
jo.Call("UnityQuitMainActivity", "退出", "是否退出应用?");
}
}
上述代码中可以用 using 创建对象语句主要是AndroidJavaObject是继承了IDisposable ,而 AndroidJavaClass 继承了AndroidJavaObject,具体看如下源码截图:
更多Unity 知识请关注本公众号: