Unity基础

设置

运行项目免去加载时间:ProjectSetting->Edit->Enter Play Mode Options

File->build Setting ->查看场景标识符

FIle->build settind->player setting->build

file->new scene创建新场景,ctrl+s保存

插件下载⚙️

插件:别人写好的cs文件,直接调用接口完成功能

对于资源,首先在Asset Store添加,然后对于项目用到的需要,Window->Package Manage ->选择My Assest->搜索名称并下载Download->Import导入到项目

1️⃣ DOTween :https://reurl.cc/WrWYRDPlugins/DoTween,平滑过渡效果(变换,颜色等)

2️⃣ Timers Manager: https://reurl.cc/M0Dm4LSmart Timers Manager计时器

3️⃣ Spawn Mega:https://reurl.cc/vdXb0y生成,添加spawn mega组件

4️⃣ Free Music: https://reurl.cc/j1p4WDMusic Tracks音乐

5️⃣ Game SFX:https://reurl.cc/RrD7qg音效

6️⃣ Dragon Warrior: https://reurl.cc/vdXbaysprite图像

7️⃣ Zombie:https://reurl.cc/KbDzlM

8️⃣ Wooden GUI: https://reurl.cc/e3abyQ

9️⃣ Background:https://reurl.cc/6QerQd

Input System插件:

设置输入管理系统:ProjectSetting->Player-》Active input Handling->Both允许你选择项目的输入处理系统,选择"Both"意味着你的项目将同时支持旧的输入管理系统(Input Manager)和新的输入系统(Input System Package)

Window->Package Manage ->Unity Registry->Input System插件

创建Player Input组件,调整Behavior ->invoke unity events,事件与挂载的脚本函数绑定

事件是发布(事件)订阅(事件)系统,订阅事件就是绑定自定义行为,发布就是调用事件,即执行与事件绑定的自定义行为

c#API:

脚本挂载到引擎obj上,创建类实例(对象)

var变量类型,相当于c++的auto

SerializeField\]安全名,将变量显示到引擎上 Debug.Log(); 定义属性: 属性访问器get{},set{}允许类控制对其内部数据的访问 ```cs public Vector2 Position/* 属性(Property) */ { get { return playerTransform.position; } } ``` void OnTriggerEnter2D(Collider2D col)当刚体发生碰撞 ,Collider2D是被撞击的obj,需要彼此都有碰撞体 .CompareTag("")查找标签 .GetComponent\<\>();获取组件 Physics2D.OverlapCircleNonAlloc(圆心,半径,Collider2D\[\]结果)以什么为圆心获取周围的物体 Quaternion.LookRotation(绕什么轴,旋转到什么方向) Instantiate(gameobject,position,)在什么位置生成 Quaternion.identity就是 new Quaternion(0f, 0f, 0f, 1f); Quaternion.Euler(0, 0, 0) ##### UnityEvent UnityEvent\(\<\>可省略,内部为在事件中传递的数据)创建事件,type是参数类型,.Invoke(参数......)执行事件, 对于具有\<\>的,我们在引擎要选择无(参数)的版本 ##### TimersManager TimersManager.SetTimer(this,time, fun);;插件的 设置计时器,在time时间后执行fun函数 TimersManager.SetLoopableTimer(this,time,fun); 设置循环计时器,在time时间执行一次 Time.timeScale = 0;暂停 =1继续 **(注意:要在世界添加time manager脚本)** ##### SceneManager SceneManager.LoadScene(场景标识符) #### Prefab预制体 Prefab预制体,将设置的组合体,保存为资源,但这时资源和场景是完全分离的,因此如果预制体调用了场景中其他实例(类对象),则无法获取到,抛出nullreferenceException空引用异常 因此想要防止上述情况,其中一种解决方式,设置被调用实例为单例(在程序中唯一类实例instance),这样其中的方法就不属于任何类实例,就可以直接获取了 #### TileMap 创建obj,tile anchor设置每个瓦片大小 打开window-\>2D-\>tile palette 面板,设置瓦片颜色 #### 组件component ##### Rigid body2d 物理组件刚体Rigid body2d中gravityscale重力0--1, ##### Canvas render mode:覆盖,摄像机,世界 ##### silder 仅保留fill area-》子集fill,在silder.target graphic选中fill 设置anchors,pivot,position unity内置bug:当按ctrl z 或者调整silder的宽高时fill消失,重新设置target graphic或者重新调整anchors silder有value,min/max value的值,控制填充 ##### sprite renderer 控制图形渲染 collider is trigger是否可以穿透 flip面向方向 ##### audio source,AudioClip 无法播放声音,可能是game的声音图标设置为关,或者没有audio listener组件 audio source.stop() playe on awake开始时播放 loop循环 audioSource.PlayOneShot(AudioClip)播放音效 ##### Animator animator.Play(string) window-\>animation-\>animation, 选中要为其创建动画的物体(会自动为物体创建animator)-\>create一个动画 再次创建create new clip ##### camera 内置渲染管线下camera组件介绍[https://blog.csdn.net/enternalstar/article/details/118818159](https://blog.csdn.net/enternalstar/article/details/118818159 "https://blog.csdn.net/enternalstar/article/details/118818159") #### vscode快捷键 ctrl + shilt + k删除行 ctrl + d 选中光标所在的单词 `ctrl` + `shift` + `\`左右括号之间跳转 ctrl + k + s快捷键编辑 ctrl + '+' + '. ' 自动生成定义等 enter,tab补全方式不同

相关推荐
EQ-雪梨蛋花汤5 小时前
【Part 3 Unity VR眼镜端播放器开发与优化】第四节|高分辨率VR全景视频播放性能优化
unity·音视频·vr
与火星的孩子对话9 小时前
Unity进阶课程【六】Android、ios、Pad 终端设备打包局域网IP调试、USB调试、性能检测、控制台打印日志等、C#
android·unity·ios·c#·ip
幻世界11 小时前
【Unity智能模型系列】Unity + MediaPipe + Sentis + ArcFace模型:构建高效人脸识别比对系统
unity·游戏引擎
死也不注释1 天前
【Unity 编辑器工具开发:GUILayout 与 EditorGUILayout 对比分析】
unity·编辑器·游戏引擎
小赖同学啊1 天前
物联网中的Unity/Unreal引擎集成:数字孪生与可视化控制
物联网·unity·游戏引擎
Zlzxzw2 天前
使用unity创建项目,进行动画制作
unity·游戏引擎
X_StarX2 天前
【Unity笔记01】基于单例模式的简单UI框架
笔记·ui·unity·单例模式·游戏引擎·游戏开发·大学生
九班长2 天前
Golang服务端处理Unity 3D游戏地图与碰撞的详细实现
3d·unity·golang
ysn111112 天前
NGUI实现反向定位到层级面板结点
unity
Thomas_YXQ2 天前
Unity3D DOTS场景流式加载技术
java·开发语言·unity