欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > C# Unity 唐老狮 No.8 模拟面试题

C# Unity 唐老狮 No.8 模拟面试题

2026/4/23 11:01:54 来源:https://blog.csdn.net/2301_77947509/article/details/146173303  浏览:    关键词:C# Unity 唐老狮 No.8 模拟面试题

  本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要:

全部 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho

        如果你发现了文章内特殊的字体格式,那是AI补充的知识,我发现原网站下面有答案,我将会把答案以不同样式穿插在回答之中

目录

C#

1. 如果我们想为Unity中的Transform类添加一个自定义的方法,应该如何处理?

2. 请说出using关键字的两个作用

3. C#中Dictionary不支持相同键存储    如果想要一个键对应多个值如何处理?

4. 请问下面代码的最终打印结果是什么?为什么?

5. 上题中的代码,如果我们希望打印出0~9,应该如何修改代码?

Unity

1. Unity中如何将本地坐标转为世界坐标?

2. Unity中如何计算出两个向量之间的夹角,请说出两种方式

3. 请写出UGUI中两种处理异形按钮的具体方法

4. 请说出Unity中如何进行数据持久化,至少说出5种方式

5. 在Unity中如何控制渲染优先级?(谁先渲染谁后渲染,分情况回答)


C#

1. 如果我们想为Unity中的Transform类添加一个自定义的方法,应该如何处理?

        this拓展方法,下面是一个演示

        自定义静态拓展方法

public  static class Test 
{public static void TransformObj(this Transform transform, int a) {Debug.Log(a);}
}

        在其他地方使用

       this.transform.TransformObj(1);

        合理输出

         

2. 请说出using关键字的两个作用

        安全使用流文件读写

        using 命名空间

        Unity数据持久化 之 向文件流读写(详细Plus版)_unity filestream-CSDN博客

3. C#中Dictionary不支持相同键存储
    如果想要一个键对应多个值如何处理?

        字典套字典,字典套顺序表

        虽然有一点点麻烦,但是确实比较常用

4. 请问下面代码的最终打印结果是什么?为什么?

        10个10   Action本质是委托,委托相当于一个函数的容器,被调用时将依次执行其添加的匿名函数,闭包是捕获变量而不是其值,所有委托共享同一个 i 变量

5. 上题中的代码,如果我们希望打印出0~9,应该如何修改代码?

static void Main(string[] args)
{Action action = null;for (int i = 0; i < 10; i++){int temp = i;  action += () =>{Console.WriteLine(temp);};}action();
}

Unity

1. Unity中如何将本地坐标转为世界坐标?

        Api:TransformPoint

         // 定义一个本地坐标点Vector3 localPoint = new Vector3(1, 1, 1); // 获取物体的Transform组件Transform objectTransform = transform; // 将本地坐标转换为世界坐标Vector3 worldPoint = objectTransform.TransformPoint(localPoint); Debug.Log("世界坐标: " + worldPoint);

          

2. Unity中如何计算出两个向量之间的夹角,请说出两种方式

        Api: Vector3.Angle

        因为点乘是a·b = |a| * |b| * cosθ

        所以θ = arccos((a·b) / (|a| * |b|))

using UnityEngine;public class DotAngleCalculation : MonoBehaviour
{void Start(){// 定义向量1Vector3 vector1 = transform.forward; // 定义向量2Vector3 vector2 = new Vector3(0, 1, 0); // 计算向量1的模长float magnitude1 = vector1.magnitude;// 计算向量2的模长float magnitude2 = vector2.magnitude;// 计算向量点积float dotResult = Vector3.Dot(vector1, vector2); // 计算夹角的余弦值float cosAngle = dotResult / (magnitude1 * magnitude2);// 使用反余弦函数得到弧度制的夹角float radianAngle = Mathf.Acos(cosAngle); // 将弧度转换为角度float angle = radianAngle * Mathf.Rad2Deg; Debug.Log("两向量夹角为:" + angle + " 度");}
}

3. 请写出UGUI中两种处理异形按钮的具体方法

               拼接和Mask2D

4. 请说出Unity中如何进行数据持久化,至少说出5种方式

       json,二进制,xml,playerprefs,数据库?

        sc是编辑器数据持持

5. 在Unity中如何控制渲染优先级?(谁先渲染谁后渲染,分情况回答)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词