unity3D项目中如何避免硬代码(C#)

平时做项目,代码中是不允许出现硬代码的,一般我们是怎么处理的呢? 那么硬代码又是什么呢?

我们俗称的硬代码:eg:  1 public UIlabel label; 2 label.text = "欢迎来到梦幻岛";  这样我们俗称为硬代码。

好了,那么该如何避免,话不多说,直接上图:

这是一种处理方式,TXT 格式的文档,前面是ID,后面是描述性文字。

可是我们该如何在项目中访问这个txt文件里面的数据呢? 话不多说,直接上代码:

 1 using UnityEngine;
 2 using System.Collections;
 3
 4 public class ReadTxt :MonoBehaviour{
 5
 6     public TextAsset txt;
 7     public static ReadTxt _instance;
 8     string fonttxt;
 9     void Awake()
10     {
11         _instance = this;
12     }
13
14     void Start() { }
15
16     public string GetFont(int ID)
17     {
18         string[] taskinfoArray = txt.ToString().Split(‘\n‘);
19         foreach(string str in taskinfoArray){
20
21             string[] Fontlist = str.Split(‘|‘);
22             int id = int.Parse(Fontlist[0]);
23             while (ID== id) {
24                 fonttxt = Fontlist[1];
25                 break;
26             }
27         }
28
29         return fonttxt;
30     }
31
32
33 }

上述用到了单利,单利这里我们就不赘述了。

string[] taskinfoArray = txt.ToString().Split(‘\n‘);  这里有些朋友就要问了,Split(‘\n‘)是干什么的,它是分割函数,检测是否有换行操作,如果有换行我们把它存在数组里面,上面的txt文档,我们就是写完一行,肯定要回车换行写下一句,这里就是用这个Split()函数进行检测的。  好了说到这里,想必大家都清楚了吧。至于调用呢,这个就很简单了。
 1 using UnityEngine;
 2 using System.Collections;
 3
 4 public class TestTxt : MonoBehaviour {
 5
 6     public UILabel label;
 7
 8
 9     void Start()
10     {
11         string bbb = ReadTxt._instance.GetFont(1001);
12
13         label.text = bbb;
14     }
15
16 }

然而label显示的 文字必定是:维护公告。  这里我们只是抛砖引玉,所以写的比较粗糙,望大家谅解。

				
时间: 2024-10-29 22:00:49

unity3D项目中如何避免硬代码(C#)的相关文章

在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)

最近公司的大厅要重做,我协助主程一起制作新大厅和新框架,前面制作的编辑器也派上了用场.等全部功能做完后我会再写一个复盘,这两天主程在忙于写热更新的功能,所以把接入分享SDK功能的任务交给了我,ShareSDK官网的文档比较分散,而且关于Unity的文档比较简略,所以还是有不少的坑.写篇博客分享一下,并加强理解记忆. 第一步,先去ShareSDK的官网下载最新版本的ShareSDK(完全免费).地址:http://www.mob.com/ 我们选择ShareSDK For Unity3D,页面会直

03_Android项目中读写文本文件的代码

编写一下Android界面的项目 使用默认的Android清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.writedata" android:versionCode="1&qu

Findbug在项目中的运用--提高代码质量

 FindBugs是一个静态分析工具,它检查类或者 JAR文件,将字节码与一组缺陷模式进行对比以发现可能的问题.有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析 第一 手动安装 在Eclipse点击菜单中Help-->菜单 第二:输入地址: http://findbugs.cs.umd.edu/eclipse,出现版本列表: 按照一步步提示安装重启即可 =================================================== 2) (Re-)star

在PHP项目中使用Standford Moss代码查重系统

Standford Moss 系统是斯坦福大学大名鼎鼎的代码查重系统,它可以查出哪些同学提交的代码是抄袭别人的,从而将提交结果拒之门外.它对一切希望使用该系统的人都是开放的,那么在PHP的项目中如何使用它呢? 下载Moss的PHP文件moss.php 您可以访问https://github.com/Phhere/MOSS-PHP 来下载moss.php,并将它放在您的第三方扩展库中 使用moss.php 通过下面的范例代码您就可以简单的做个moss小测试了 <?phpinclude("mo

一个项目中如果有重复代码,如何变成一个标签使其通用?

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="Web.index" %> Page:所使用的是page页面,也就是所谓的aspx页面 AutoEventWireup:是否自动关联某些特殊事件(例如:Page_Load(),)默认true CodeBehind:属性并不是一个真正的 ASP.NET

使用TProfiler分析并调优项目中的Fastjson序列化代码

新项目年后就上线了,现在业务上没什么问题,就用TProfiler做了下性能分析,果然有坑. 一.TProfiler入门 高手请自觉略过本节. 1.简介 TProfiler是阿里巴巴开源的一款性能分析工具.号称可以用于生产环境进行长期的性能分析.测试程序部署后,在低峰期对响应时间影响20%,在高峰期对QPS影响30%.详细介绍请见官方WIKI. 2.简要的实现原理 TProfiler的实现基于JAVA的Instrumentation 和ASM.Instrumentation可以理解为一种虚拟机级别

使用 Lombok 简化项目中无谓的Java代码

在写使用Java时,难免会有一些模板代码要写,不然get/set,toString, hashCode, close 资源,定义构造函数等等.代码会显得很冗余,很长.Lombok项目可以是我们摆脱这些东西,通过一系列的注解,Lombok可以帮我们自动生成这些函数. Lombok 官网地址:https://projectlombok.org/ 参考文档:https://projectlombok.org/features/index.html 1. 安装 到官网下载 lombok.jar,直接双击

项目中计算票价的代码小结

1 package com.zq.www.mis.dao; 2 //import java.text.SimpleDateFormat; 3 //import java.util.Date; 4 5 import org.hibernate.Query; 6 import org.springframework.stereotype.Repository; 7 8 import com.zq.www.common.BaseDAO; 9 import com.zq.www.mis.entity.D

如何在qmake项目中在QML语言中调用C++代码

在这篇文章中,我们将介绍如何在QML中使用C++代码.在以前的文章" 使用C++拓展QML 类型及Property binding!"中,我们可以可以通过C++ plugin的方法来拓展我们的QML功能.那个项目是CMake项目.对于qmake项目来说,我们也可以做同样的事.可以使用一个plugin,并在QML中调用它. 今天,我们将不使用plugin的方法,我们希望在qmake项目中直接调用C++代码.那么我们将如何做呢?这里注意qmake只对15.04及以上的ubuntu手机tar