社区问答 | 本周问答汇总 0621-0628

文摘   科技   2024-06-28 19:11   上海  

本文汇总了 2024 年 6 月 21 日 - 2024 年 6 月 28 日 Unity 中文社区精选问答。如果在使用 Unity 过程中遇到任何问题,欢迎点击阅读原文前往 Unity 中文社区提问,将有官方技术支持及社区贡献者当日解答此外,本周还有少量待解决问题,欢迎小伙伴们到社区分享经验,为他人答疑解惑。

本期问题目录:

新手答疑:
1. 获取 Image 组件报错
2. Text (TMP) 这个组件在代码里要怎么定义类型?
3. 代码如何设置游戏物体的宽高?
4. 如何将 UnityWebRequestTexture.GetTexture 获取到的纹理缓存到本地,下次要用的时候直接取缓存
5. Unity 可以打开多个资源包让他们在同一场景上显示吗,如果可以的话怎么操作呢?

6. 求告知如何实现图片显示圆角

技术支持:

7. 子物体存在动画,父物体添加动画如何控制子物体

8. xcode15.3 打包 framework 导入 iOS 项目在 iOS17.4.1 设备上运行就崩溃
新手答疑
  Q1.获取 Image 组件报错
获取 Image 组件报错。求解

Unity 版本:2022.3

答主 年少有你、Penny Lu

using UnityEngine.UI; 

这种报错一般都是没引用命名空间。如果你对 C# 或 Unity 相关 API 不熟悉,建议多查阅官方手册,可以解决你的大多数问题。https://docs.unity3d.com/cn/2021.1/ScriptReference/index.html
  Q2.Text (TMP) 这个组件在代码里要怎么定义类型?
答主 年少有你:

public TextMeshProUGUI textMeshPro;

要记得引入命名空间哦!using TMPro;

  Q3.代码如何设置游戏物体的宽高?

答主 UnityJun24:
游戏对象.Transform.localScale = new Vector3(宽, 高,   游戏对象.Transform..localScale.z);
  Q4.如何将 UnityWebRequestTexture.GetTexture 获取到的纹理缓存到本地,下次要用的时候直接取缓存
Unity 版本:2022.3

答主 Mark

可以看一下我之前写的一篇文章,下载到本地后续可以通过本地路径去加载

https://developer.unity.cn/projects/65e83a29edbc2a001f1e2a28

  Q5. Unity 可以打开多个资源包让他们在同一场景上显示吗,如果可以的话怎么操作呢?

答主 Mark

使用 PackageManager 导入多个资源包即可,或直接从外部导入 Project 面板右键  Import Package -> Custom Package

  Q6.求告知如何实现图片显示圆角

团结 MuseChat 已解决:

要在 Unity 中实现显示圆角的图片,可以通过创建一个圆角的材质来实现。以下是详细的步骤:
创建圆角材质:首先,您需要创建一个圆角的材质。您可以使用 Shader 来实现这一效果。下面是一个简单的圆角 Shader 示例:
Shader "Custom/CircularMask" {    Properties {        _MainTex ("Texture", 2D) = "white" {}        _Radius ("Radius", Range(0, 1)) = 0.1    }    SubShader {        Tags { "Queue" = "Transparent" }        Pass {            ZWrite Off            Blend SrcAlpha OneMinusSrcAlpha            CGPROGRAM            #pragma vertex vert            #pragma fragment frag            #include "UnityCG.cginc"
struct appdata { float4 vertex : POSITION; float2 uv : TEXCOORD0; };
struct v2f { float2 uv : TEXCOORD0; UNITY_FOG_COORDS(1) float4 vertex : SV_POSITION; };
sampler2D _MainTex; float _Radius;
v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.uv = v.uv; UNITY_TRANSFER_FOG(o,o.vertex); return o; }
fixed4 frag (v2f i) : SV_Target { float2 center = 0.5; float distance = length(i.uv - center); float alpha = smoothstep(_Radius, _Radius + 0.01, distance); fixed4 col = tex2D(_MainTex, i.uv); col.a *= alpha; return col; } ENDCG } }}
创建材质:在 Unity 中创建一个新的材质,并将上面创建的 Shader 分配给这个材质。
应用材质:将这个材质应用到您的图片对象上,即可实现显示圆角的效果。

通过以上步骤,您可以在 Unity 中实现显示圆角的图片效果。希望对您有所帮助!如果您有任何疑问,请随时提出。

技术支持
  Q7.子物体存在动画,父物体添加动画如何控制子物体
子物体已经存在动画了,要在父物体上添加动画并控制子物体,但是选中父物体然后录制动画时,其他子物体可以正常录制,选择存在动画的子物体时,会退出录制并切换成子物体上的动画。
自答:

已解决,锁定动画窗口即可。

  Q8.xcode15.3 打包 framework 导入 iOS 项目在 iOS17.4.1 设备上运行就崩溃

最近升级 xcode15.3,发现用 Untiy2021.3.1f1c1 版本打 iOS 平台的包,导出 framework 集成到 iOS 工程在 iOS17.4.1 系统设备上运行崩溃,升级了 Unity 版本到 2022.3.17f1c1 版本和 2023.1.1f1c1 版本都没有解决,是必现的问题,请问有什么解决方案,换成 xcode14.2 打包的就不会。

自答:

把 Edit sheme下Thread Performance Checker 关闭就行,打包出来其实不会崩溃。

本系列问题汇总将每周更新,欢迎点击阅读原文,与 Unity 中文社区成员一起答疑互助,共同进步。
长按关注
Unity 官方开发者服务平台
第一时间了解 Unity 社区动向,学习开发技巧

 点击“阅读原文”,访问 Unity 社区问答



Unity官方开发者服务平台
Unity引擎官方开发者服务平台,分享技术干货、学习课程、产品信息、前沿案例、活动资讯、直播信息等内容。
 最新文章