当前位置: 首页 > news >正文

Unity C#开发中常用的using语句(笔记)

一、核心Unity功能

using UnityEngine;          // 所有Unity脚本的基石
using UnityEngine.Events;    // 事件系统(UnityEvent)
using UnityEngine.SceneManagement; // 场景加载与管理

UnityEngine.Events

  • 作用:创建可配置的事件系统

  • 示例:

    public UnityEvent OnPlayerDeath; // 在Inspector中配置触发事件
  • 典型应用:UI按钮点击事件、游戏状态通知

UnityEngine.SceneManagement

  • 作用:场景控制

  • 常用方法:

SceneManager.LoadScene("Level2"); // 加载场景
SceneManager.GetActiveScene().name; // 获取当前场景名称

二、UI系统

using UnityEngine.UI;        // UI组件(Button/Text/Image等)
using TMPro;                 // TextMeshPro文本系统

UnityEngine.UI

  • 核心组件:

    • Button:交互按钮

    • Slider:进度条

    • ScrollRect:滚动视图

  • 示例:

public Text scoreText; 
scoreText.text = "Score: " + currentScore;

TMPro (需导入TextMeshPro包)

  • 优势:高清文本渲染

  • 使用:

using TMPro;
public TMP_Text dialogueText; // 替代传统Text组件

三、高级功能扩展

using UnityEngine.Networking; // 网络请求(旧版UNET)
using UnityEngine.AI;        // AI导航系统
using System.Threading.Tasks; // 异步编程

UnityEngine.Networking

  • 用途:HTTP请求处理

  • 示例(协程方式):

IEnumerator GetWebData() {
  using(UnityWebRequest www = UnityWebRequest.Get("https://api.example.com")) {
      yield return www.SendWebRequest();
      Debug.Log(www.downloadHandler.text);
  }
}

UnityEngine.AI

  • 导航系统核心组件:

NavMeshAgent agent = GetComponent<NavMeshAgent>();
agent.SetDestination(targetPosition); // 自动寻路

System.Threading.Tasks

  • 异步编程模式:

async void LoadAsyncScene() {
  AsyncOperation asyncLoad = SceneManager.LoadSceneAsync("Level2");
  while (!asyncLoad.isDone) {
      await Task.Yield(); // 等待每帧
  }
}

四、系统级功能

using System.Text;           // 字符串处理(如StringBuilder)
using System.Diagnostics;    // 程序诊断(计时器/调试)
using System.Collections;    // 协程支持(IEnumerator)

System.Text

  • 高效字符串构建:

StringBuilder sb = new StringBuilder();
sb.Append("Player: ").Append(playerName);
Debug.Log(sb.ToString());

System.Diagnostics

  • 性能测试:

Stopwatch sw = new Stopwatch();
sw.Start();
// 执行需要计时的代码
sw.Stop();
Debug.Log($"耗时:{sw.ElapsedMilliseconds}ms");

System.Collections

  • 协程基础:

IEnumerator FadeOut() {
  while (alpha > 0) {
      alpha -= Time.deltaTime;
      yield return null; // 等待一帧
  }
}
StartCoroutine(FadeOut());

五、第三方/扩展库

using Newtonsoft.Json;       // JSON序列化(需导入Json.NET)
using DG.Tweening;           // 动画插件(DoTween)

Newtonsoft.Json

  • 数据序列化:

PlayerData data = new PlayerData();
string json = JsonConvert.SerializeObject(data);
File.WriteAllText("save.json", json);

DG.Tweening

  • 流畅动画:

transform.DOMoveX(5, 1f) // 在1秒内移动到X=5
        .SetEase(Ease.OutBounce);

使用建议表格

使用场景推荐命名空间
创建编辑器工具UnityEditor
处理复杂数据结构System.Collections.Generic
制作UI界面UnityEngine.UI + TMPro
处理文件/存档System.IO + Newtonsoft.Json
网络请求UnityEngine.Networking
动画效果DG.Tweening
性能调试System.Diagnostics

相关文章:

  • 使用uni-app框架 写电商商城前端h5静态网站模板项目-手机端-前端项目练习
  • WEB安全--文件上传漏洞--白名单绕过
  • WPF 教程:给 TreeView 添加 SelectedItem 双向绑定支持(MVVM-Friendly)
  • 全球市场舆情收集:OgPhone云手机如何帮出海企业抢占先机?
  • 【群智能算法改进】一种改进的蜣螂优化算法IDBO[3](立方混沌映射Cubic、融合鱼鹰勘探策略、混合高斯柯西变异)【Matlab代码#92】
  • HarmonyOS:ComposeTitleBar 组件自学指南
  • 【学习笔记】计算机网络(五)
  • 【Golang】Windows系统键鼠空闲监测练习
  • 每天学一个 Linux 命令(8):ls
  • 使用 KT-Connect 0.3.7在本地访问 Kubernetes
  • 如何实现口型0误差?
  • RTL8304问题
  • 《电容:时空交错的能量银行》
  • 愚人杯-web-被遗忘的反序列化
  • [数学]关于组合数
  • 蓝桥杯比赛python程序设计——班级活动
  • 【前端】一文掌握 Vue 3 指令用法(vue3 备忘清单)
  • 字符串复习
  • scss报错Sass @import rules are deprecated and will be removed in Dart Sass 3.0.0
  • 如何加强 SSH 安全:内网和专用网络环境下的防护策略
  • 安远县建设局网站/编程培训班学费一般多少钱
  • 如何建立游戏网站/在百度做广告多少钱
  • 专做网页的网站/深圳网站建设维护
  • 德阳做网站的公司/西安seo培训学校
  • 长春专业做网站公司排名/安卓优化清理大师
  • 国外室内设计网站大全网站/企业网站设计与实现论文