跳到正文
Qiita · Unity 开发社区· 来源· amucat_·· 3 小时前AI 评分22

Unity、C#中使用的类型总结

Unity,C#で使う型まとめ

正文 · AI 翻译

前言

这篇文章是一个刚开始用 Unity 半年的人(而且编程经验也不长)在制作游戏的过程中,把学到的东西总结出来的。
其中可能有几处是错的,还请宽容看待。

使用環境

Unity:6000.4.3f1(Unity 6.4)
C#:9.0

话说类型是什么?

在 Unity 中使用时几乎必定会用到的多种多样的类型。
先说结论,类型表示的是变量所能处理的数据种类
例如

private GameObject door;
private int missCount = 0;

从目前使用的代码中摘录一段来看
GameObject是处理 Unity 场景内对象的
int是处理整数的类型。
紧接其后的door和missCount就是变量名。

关于变量,我打算之后再总结。

这次就来总结一下其类型的种类。

C# 的基本类型

型 用途・种类 例
int 整数 int day = 0;
float 小数 float speed = 3.5f;
double 精度更高的小数 double speed = 1.2345678912;
bool true/false bool isMoving = true;
string 文字列 string name = "player";
char 1文字 char initial = 'A';

这里令人关注的是

  • float 和 double
  • string 和 char

关于这些类型该如何区分使用。

查到的结果是,float 的有效位数约为6〜9位,double 约为15〜17位。
这并不是指「能表示到小数点后第几位」,而是数值越大,小数部分就越难以精细表示。
另外,即使是像 0.1f 这样短的小数,有时也会产生些许误差。
在 Unity 中,坐标等使用的是 float,因此日常的移动和速度用 float,需要更精确的计算时用 double,似乎可以这样区分使用。
参考:Microsoft Learn:浮点数类型

顺带一提,3.5f 末尾的 f 是「这个数值是 float 型」的标记。

关于string和char,虽然只是字符串还是一个字符的区别,
一时没想到有什么地方用char更好,但看来
在逐字符处理的时候使用它比较好。

例如,在检查文章中是否包含“?”时似乎很有用。

Unity的对象和功能的类型(UI以外)

型 用途・种类
GameObject 游戏对象本体
Transform 位置、旋转、缩放
Rigidbody / Rigidbody2D  物理运动(比如重力)
Collider / Collider2D 碰撞检测
Animator 动画
AudioSource 声音的播放源
AudioClip 声音本身
Camera 摄像机
SpriteRenderer 2D 图像的绘制
Sprite 2D 图像本身
MeshRenderer 3D网格的渲染

UI使用的类型

using UnityEngine;
using UnityEngine.UI;
using TMPro;

这次的类型名是以根据需要先写好上述 using 为前提的。

型 用途・种类
按钮 按钮
Image UI 的图片
Slider  滑动条 
RectTransform UI的位置和尺寸
TMP_Text 文本
TMP_InputField 文字入力欄

上表中的内容是GameObject的组件(功能)。
UI也是GameObject,因此可以通过Transform来移动。
此外,如果以 Button 类型获取,就可以更改按钮是否可按下。使用 RectTransform 时,除了UI的位置和尺寸之外,还可以设置锚点和边距等。

顺便说一下,关于Sprite和Image的区别
Sprite是图像数据,而Image是使用它的UI部件。
就是这样的区别。
使用方法上,设置想要在Image中显示的Sprite来使用。
打个比方,Image是连同画框一起挂在墙上的画。
Sprite则是装在里面的画本身,大概这种感觉。
同一个 Sprite 也可以设置到多个 Image 上显示。
参考:Unity官方:Image

总结

仅这次总结的内容就已经相当多,但恐怕还有更多。
因为很难调查并记住全部内容,
所以先大致了解“有这种模式”,需要时再去查就好。
另外,今后在制作时如果意识到可能存在组件特有的功能,或许会更好。

附加宣传

目前我正在一个名为 UMINEKOWalKing 的游戏制作团队中,
用 Unity 制作一款以灵异照片为主题的 2D 恐怖 ADV 游戏【BLACKOUT:Fatal Exposure】。
这次也是制作这款游戏过程中所调查内容的总结。
メインカプセル修正 (2).png

如果您有兴趣,希望您能看看 X 等平台。
UMINEKOwalKing X 账号
Steam 页面(体验版发布中!)

来源:Qiita · Unity 开发社区 · qiita.com