文章首发及后续更新:https://mwhls.top/4439.html,无图/无目录/格式错误/更多相关请至首发页查看。
新的更新内容请到mwhls.top查看。
欢迎提出任何疑问及批评,非常感谢!
汇总:Unity 记录
写的很简略,因为不是写教程,是学习记录,其中大部分东西对我来说按经验去做就行,所以不像写项目那样详细。中英文也是这样,英文太长了,我就换成中文,不过我的翻译可能是错的或是有歧义的。
绝绝子,我博客的代码渲染居然不包括 C#
参考课程:最新 Unity和C#2D游戏开发实战全流程教程 [中文字幕|超新实战课程]
目录
安装
开启第一个项目
C
数
字符串
变量
逻辑运算
条件语句
循环
函数
数组
安装
- 官网:https://unity.com/download
- 下载安装 Unity Hub。
- 启动并登录 Unity Hub,打开后提示下载 Unity editor,使用免费个人许可下载。
- 下载完成后如下图所示。
- 三个都是它自动下载的,包括 Editor application、WebGL Build Support、Documentation。
- Documentation 下载失败且暂未解决,考虑到文档网上一大把,跳过。
开启第一个项目
- 打开 Projects,点击 New project,在 Core 里选择 2D,设置 Project name 与 Location 后,点击 Create project,等待几分钟直至项目自动开启。
- 更改中文:
- 写了一半发现我用的英文版,写选项太慢了,所以换中文
- Unity Hub 左上角设置,appearance,最下面改为中文。
- 改完发现只改了 Unity Hub…
- 创建物体:
- 点击在左上角层次结构的加号按键,在 2D 对象里面创建一个正方形。
- 导入自己的图像:
- 在下方项目的资产中,创建文件夹,并将自己的图像拖进去。
- 添加材质:
- 将资产里的图像拖到场景中。
- 点击场景中的对象,把图像拖到右边检查器的 sprite 中。
- 资产导出为 package:
- 菜单栏-资产-导出 package。
- 我像弄成下方项目的那个 Packages 那样,但是好麻烦的样子,现在这样也挺好。
- 创建脚本:
- 下方项目栏中,创建 C# 脚本。
- 我电脑安装过 VSCode,其自动打开 VSCode。
- 注:更改脚本名后,要对应修改类名,否则报错。
- VSCode 安装 C# 插件:
- 跟着弹窗走,安装 C# 插件,安装 .Net。
- 因为我没用过 C#,所以环境都没有。
- 注:脚本似乎只是借助 VSCode 来编辑,如果有问题,Unity 会报错,所以环境不一定要装。
- 注2:VSCode 装 C# 和 Unity 插件(Unity Tools, Unity Code Snippets)可以使用补全。
- 注3:
Could not locate MSBuild instance to register with OmniSharp.
C# extension插件回到1.24.4,可以类的补全,上面那个不够,参考:https://t.bilibili.com/666257188394631238 - 在 Start 里面打印 Hello,然后关闭编辑器。
- 脚本应用到对象并运行:
- 拖动脚本到对象。
- 按下上方运行键,打开下方控制台,可以看到输出了 Hello 信息。
C
- 对我来说这边比较基础,只是了解一下。
- 下面的语句大多没测试,可能有错,但问题不大。
数
整型:`1`
浮点型:`1f`
字符串
"h"
"hello"
数组:"hello"[0] == "h"
子字符串:"hello".substring(2, 3) == "llo"
长度:"hello".Length
- 为什么要用大写?
连接:"a"+"b" == "ab"
类型转换:1.0f.ToString()
变量
int, float, string, bool
string aString = "mwhls.top";
public string aString = "mwhls.top";
public 修饰 的变量可以在对象的检查器中修改。
public 修饰的变量放在方法里会报错,在类中和方法同级时不会报错。
逻辑运算
bool isDead = False;
&&, ||, !=, >=, >
条件语句
if (x < 0){
print("<0");
} else if (x == 0){
print("=0");
} else{
print(">0");
}
循环
while(x < 0){
print(x);
x += 1;
}
for (int x = -1; x <= 0; x += 1){
print(x);
}
函数
bool is_negative(int x){
if(x < 0){
return true;
} else{
return false;
}
}
数组
string[] websites = new string[] {"mwhls.top", "panwj.top"};
int[] number = new int[3];