Skip to main content

Command Palette

Search for a command to run...

Unity 学习中遇到的问题

Updated
1 min read
Unity 学习中遇到的问题

问题:斜坡 tile 是 16x16 的,Tilemap Collider 把每一个像素都算进了碰撞箱,让斜坡变成了“阶梯”,怎么处理?

解答:可以用 Composite Collider 来合并碰撞体:

  1. 在 Tilemap Collider 中勾选 “Used By Composite”,表示允许用作合并

  2. 在 Composite Collider 中调整 "Geometry Type” 和 "Vertex Distance” 来控制合并后的碰撞体的形状和平滑度

    • Geometry Type:决定碰撞体的形状是由直线(Outlines)还是多边形(Polygons)组成

    • Vertex Distance:决定了合并后的碰撞体的平滑度,值越大,碰撞体越平滑


问题:我要使用 OverlapBoxAll 来判断碰撞,但我不确定设置的 size 的范围,有可视化的办法吗?

解答:两种办法:

  1. 使用 Gizmos.DrawWireCube,在指定位置画线框进行预览

  2. 添加一个 Box Collider 在需要的位置,将 offset、size 记录下来,填进 OverlapBoxAll


问题:Hierarchy 中通过右键创建的对象,本质上是不是 GameObject 外带一个 Component?

解答:是的,Unity 会自动完成这个过程,创建出空的 GameObject,然后带上固定的 Transform 和一些组件。


问题:一个对象上有多个相同类型组件时,能用 GetComponent 吗?

解答GetComponent 函数可以获取当前游戏对象上的指定类型的组件,但如果存在多个相同类型的,GetComponent 会返回找到的第一个。

如果要查所有,应该使用 GetComponents


问题:BoxCast 和 BoxCastAll 的区别是什么呢?

解答:他们都会模拟一个盒型区域,让他沿着某个方向移动一段距离,BoxCast 会返回碰撞到的第一个对象,而 BoxCastAll 会返回碰撞到的所有对象。

BoxCast 更适用于找出第一个将要碰撞的物体(如子弹飞行的路径),而 BoxCastAll 更适用于找出所有将要碰撞的物体(如一辆车通过的路径)。


问题:在 FixedUpdate 中使用 Input.GetButtonDown 检查玩家输入,但他好像会吞操作?

解答GetButtonDown 的结果状态不是持续的,状态每一都会重置,比如说在第一帧按下了空格没放手,这时返回的是 true,到了第二帧再次调用,状态重置了,返回的是 false

FixedUpdateUpdate 调用的频率不一样,在正常/默认情况下,Update 按 60Hz 运行,FixedUpdate 按 50Hz 运行。

所以可能出现这样的情况:第一帧 Update → 第二帧 UpdateFixedUpdate,如果 GetButtonDown 写在 FixedUpdate 中,那么在第二帧时按键状态已经被重置了,FixedUpdate 拿到的结果就是 false

所以实现按键后跳跃相关的操作,可以写成:

bool isJumping = false;

void Update() {
  if (Input.GetButtonDown("Jump")) {
    isJumping = true;
  }
}

void FixedUpdate() {
  if (isJumping) {
    // do something...
    isJumping = false;
  }
}
Z
zgd1y ago

We are willing to pay a high price to acquire the source code of a mobile game that is compatible with both Android and iOS platforms, for the purpose of learning and research. The game must meet the following criteria: it should be developed by a top-tier gaming company within the past 5 years, fully completed and matured, and preferably of the multiplayer online MMORPG or ARPG genre. If your game meets our interest, we will proceed with the transaction promptly and offer an upfront payment as a gesture of goodwill. Contact me q791864008q@gmail.com

Z
zgd1y ago

Who has access to the source code for a completed, large-scale multiplayer online Android and iOS game developed by a major gaming company? The game must have top-notch graphics. I will not accept games developed by individuals. I am willing to pay a high fee to purchase it for learning and research purposes. Contact me q791864008q@gmail.com

More from this blog

12 月装机行动记录

(Banner 图文无关) 这几天买了新的装备回来升级配置,除了显卡和散热器,其他都更新了,这两个不更新的原因是太贵了。 由于我不太懂选配置,所以还是让朋友给推荐,我说我的预算在 5000 左右,他就给我转了一个整机,配置大概是这样的: CPU:AMD 9700X 主板:微星 B650M GAMING PLUS WIFI 或者 微星 B650M GAMING WIFI 显卡:木有 内存:英睿达/宇瞻 DDR5 6000 32G 硬盘:1T NVMe PCIe4 SSD 读速 3500M...

Dec 7, 20241 min read
12 月装机行动记录

Homekit + cozylife 插座连接 HA

近期在淘宝上买了个 Homekit + cozylife 的插座,就这种: 一开始只通过 iOS 访问,就是只连接 Homekit,长按开关重置插座,iOS 一扫码就连上了,后来我嫌在外面访问不了,又不想掏钱买苹果的 HomePod,于是就装上了 Home Assistant,打算让设备们都连上 HA,这样就不用交苹果税了。 连接方式还是通过 Homekit,一般来说支持 Homekit 设备都能这样连接,先连上 iOS,然后在 Home App 中移除设备,这时候就能在 HA 中找到设备了:...

Nov 30, 20241 min read
Homekit + cozylife 插座连接 HA

找到了一台祖传的 Ccd 相机

开个玩笑,这台相机其实是我们家在 05 年的时候买的,发票都还在呢,当时花了 4000 块钱!搁现在我都受不了,更别说当年了,看到价格我都震惊了。 相机的型号是索尼的 Cybershot DSC-N1,属于小红书时尚单品 CCD 相机,由于一直放在包装盒里,现在还有 99 新呢。 机子还是正常的,能开机,能拍照,其中一个问题是日期,这款没有 WiFi 功能,所以时间只能保存在本地,不知道是不是 BUG,每次开机都让我重新设置,默认就定在 2005 年 1 月 1 日。 第二个问题是电池,电池应该...

Nov 28, 20241 min read
找到了一台祖传的 Ccd 相机

记录和 ffmpeg 与 LLM 搏斗的两天

要做的 最近在写一个制作视频的功能,就是把 N 个视频合并,然后把对应的 N 张图片,在视频开始的前 5 秒叠加显示出来。 第一口 - diffusion studio 本来我用的是 diffusion studio,这是一个 JS 库,但这玩意性能太差了,因为他要把视频每一帧都读到 canvas 里,数据一多页面就卡住了(为啥要折腾 DOM 呢?) 而且他的 API 十分不好用,作为浏览器脚本你无法读本地数据也就算了,你起码给一个接受纯数据的参数吧,比如 HTML 类型接受源代码,Image ...

Nov 16, 20242 min read
记录和 ffmpeg 与 LLM 搏斗的两天
V

void mian

39 posts