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补全方式不同

相关推荐
omegayy9 小时前
Unity 2022.3.x部分Android设备播放视频黑屏问题
android·unity·视频播放·黑屏
与火星的孩子对话14 小时前
Unity3D开发AI桌面精灵/宠物系列 【三】 语音识别 ASR 技术、语音转文本多平台 - 支持科大讯飞、百度等 C# 开发
人工智能·unity·c#·游戏引擎·语音识别·宠物
向宇it15 小时前
【零基础入门unity游戏开发——2D篇】2D 游戏场景地形编辑器——TileMap的使用介绍
开发语言·游戏·unity·c#·编辑器·游戏引擎
牙膏上的小苏打23331 天前
Unity Surround开关后导致获取主显示器分辨率错误
unity·主屏幕
Unity大海1 天前
诠视科技Unity SDK开发环境配置、项目设置、apk打包。
科技·unity·游戏引擎
浅陌sss2 天前
Unity中 粒子系统使用整理(一)
unity·游戏引擎
维度攻城狮2 天前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2
为你写首诗ge2 天前
【Unity网络编程知识】FTP学习
网络·unity
神码编程2 天前
【Unity】 HTFramework框架(六十四)SaveDataRuntime运行时保存组件参数、预制体
unity·编辑器·游戏引擎
菲fay2 天前
Unity 单例模式写法
unity·单例模式