一,先开始下载完游戏引擎就可以学摄像机在游戏模式下移动,然后学键盘绑定调用,设计,。然后就开始学动画控制器,和角色移动,物体动画制作,胶囊移动,人模型移动,动画控制器命名参设置,和键盘,就可以可是设计不同的动画了走,移动跑步,跳跃,开枪等,技能与开枪射击,。。我觉得另一个初学者单人业余爱好者应该首选设计好一个游戏环境,无论城市和区域在开始简单动画,UI设计,开始菜单,任务模板,完成条件,剧情。
Unity自学概念
从unity自带的项目third第三人称模板开始学了动画移动代码解释汉化,
Unity引擎 打开pakagemanager,注册表INPUT SESTEM 输入系统自带的模板导入有简单的移动加速,发射物体,Q键举起空格仍的功能可以借鉴,cimenecam模板有时空门传送门功能,timelilne有动画模拟播放效果转换,
自带的迷你fps游戏有完整的射击 AI掉生命值,加生命值物, 碰撞功能,AI 追击攻击,功能,ui开始功能
动画功能学习风扇转动动画animation新建后调整风扇旋转坐标实现风扇旋转,.门动画新建后旋转80度实现,,,昼夜,灯效新建后改变INTENSITY强度 和coler颜色功能在动画Animation中实现
人物移动animatorContorller中Parameters 新建FLOAT参功能移动,跳跃新建Tigger参
代码主要还是借鉴unity自带带的Starterassets Thirdperscontroller项目模板使用增加改进取一样的名动画文件名实现.
UI界面设计人与任务UI合并显示UicanvasUI屏幕选择SCREEN SPACE_CAMERA,然后缩放调整前后位置大小,
屏幕空间 - 相机
在此模式下,Canvas 的渲染就像绘制在给定摄像机前方一定距离的平面对象上一样。UI 的屏幕大小不随距离而变化,因为它始终会重新缩放以完全适合摄像机视锥体。如果屏幕的大小或分辨率或相机视锥体发生更改,则 UI 将自动重新缩放以适应。任何3D 对象
在场景中,比 UI 平面更靠近摄像机的平面将在 UI 前面渲染,而平面后面的物体将被遮挡。
相机模式 UI,场景对象位于前面
Canvas Scaler
Canvas Scaler (画布缩放器) 组件用于控制整体缩放和像素
密度用户界面
Canvas 中的元素。此缩放会影响 Canvas 下的所有内容,包括字体大小和图像边框。
Properties
Property: | Function: |
UI Scale Mode | D了解 Canvas 中 UI 元素的缩放方式。 |
Constant Pixel Size | 使 UI 元素保持相同的像素大小,而不管屏幕大小如何。 |
Scale With Screen Size | 屏幕越大,UI 元素就越大。 |
Constant Physical Size | 使 UI 元素保持相同的物理大小, 而不管屏幕大小和分辨率如何。 |
Constant Pixel Size 的设置:
Property: | Function: |
Scale Factor | 按此系数缩放 Canvas 中的所有 UI 元素。 |
Reference Pixels Per Unit | 如果精灵 UI 中的一个单元. |
Scale With Screen Size 的设置:
属性: | 功能: |
Reference Resolution | UI 布局设计的目标分辨率。如果屏幕分辨率较大, 则 UI 会放大,如果较小,则 UI 会缩小。 |
Screen Match Mode | 在当前分辨率的宽高比不适应参考分辨率时, 用于缩放画布区域的模式。 |
Match Width or Height | 以宽度、高度或二者的某种平均值作为参考来缩放画布区域。 |
Expand | 水平或垂直扩展画布区域,使画布不会小于参考。 |
Shrink | 水平或垂直裁剪画布区域,使画布不会大于参考。 |
Match | 确定是否以宽度、高度或二者的某种平均值作为参考进行缩放。 |
Reference Pixels Per Unit | 如果精灵具有此“Pixels Per Unit”设置,则精灵中的每个像素将覆盖 UI 中的一个单位。 |
Constant Physical Size 的设置:
属性: | 功能: |
Physical Unit | 用于指定位置和大小的物理单位。 |
Fallback Screen DPI | 在屏幕 DPI 未知时采用的 DPI。 |
Default Sprite DPI | 用于精灵的每英寸像素,使其“Pixels Per Unit”设置与“ Reference Pixels Per Unit”设置匹配。 |
Reference Pixels Per Unit | 如果精灵具有此“Pixels Per Unit”设置,则其 DPI 将与“Default Sprite DPI”设置匹配。 |
World Space Canvas 的设置(画布 (Canvas) 组件设置为 World Space 时显示):
属性: | 功能: |
Dynamic Pixels Per Unit | 用于 UI 中动态创建的位图(如文本)的每单位像素量。 |
Reference Pixels Per Unit | 如果精灵具有此“Pixels Per Unit”设置,则精灵中的每个像素 将覆盖世界中的一个单位。如果“Reference Pixels Per Unit”设置为 1,则精灵中的“Pixels Per Unit”设置将按原样使用。 |
详细信息
对于设置为“Screen Space - Overlay”或“Screen Space - Camera”的画布,画布缩放器 UI Scale Mode 可以设置为 Constant Pixel Size、Scale With Screen Size 或 Constant Physical Size。
Constant Pixel Size
使用 Constant Pixel Size 模式时,可在屏幕上按像素指定 UI 元素的位置和大小。这也是画布在未Scale With Screen Size
使用 Scale With Screen Size 模式时,可以根据指定参考分辨率的像素来指定位置和大小。如果当前屏幕分辨率大于参考分辨率,则画布会保持只具有参考分辨率的分辨率,但是会放大以便适应屏幕。如果当前屏幕分辨率小于参考分辨率,则画布会相应缩小以适应屏幕。
如果当前屏幕分辨率的宽高比与参考分辨率不同,则单独缩放每个轴以适应屏幕会形成非一致缩放,通常不希望发生这种情况。相反,ReferenceResolution 组件会使画布分辨率偏离参考分辨率,以便遵循屏幕的宽高比。可以使用 Screen Match Mode 设置控制此偏离的行为方式。
Constant Physical Size
使用 Constant Physical Size 模式时,可按物理单位(如毫米、点或派卡)指定 UI 元素的位置和大小。此模式要求设备正确报告其屏幕 DPI。对于不报告 DPI 的设备,可以指定回退 DPI。
World Space
对于设置为“World Space”的画布,可以使用画布缩放器来控制画布中 UI 元素的像素密度。
Ui与输入控制器条用规则
[Header(" PlayerWeaponsManager ")]
[Header(")]代码第一行生成标签名
[Tooltip("这段代码的主要功能是管理玩家在第一人称射击游戏中使用的武器。它处理武器的添加、移除、切换,同时实现了武器晃动、后坐力和准心动画等效果,使得玩家在游戏中的射击体验更加真实和流畅。")]
AI敌人自动寻路导航循环路径waypoint设置先在场景中定位几个坐标置防止一个球体模型,写代码然后用AI敌人模型制作一个动画移动加各种动作和移动到坐标动画调整动画的时间正确和移动步伐速度同步.然后用Animation动画新建后制作animator控制器挂上后放在场景中测试然后更改动画坐标动画完善完整的显示正确的动画效果位置为止.
设置动画控制器Parameters open名Trigger和close名trigger.然后场景中设置一个空游戏对象挂boxcollider,doorAnimator代码设置,好场景位置后实验.
[Tooltip(“”)] 代码生成解释文本在unity设置层
[Range(0, 1)] [Tooltip("Multiplier to apply to self damage:这是用于在对象受到自身伤害时调整伤害值的公共变量,范围限定在0到1之间。默认值为0.5,意味着如果对象受到自身伤害,伤害值将减半")]
[Range(0, 1)] 代码生成滑动条
- [CustomEditor(typeof(Damageable))]:
- 这个属性告诉Unity编辑器,这个自定义编辑器类(DamageableEditor)是用于编辑Damageable类的。
[System.Serializable]//属性使得这个结构体可以被Unity的编辑器序列化,允许在Unity编辑器中直接创建和修改这个结构体的实例。
- [CustomEditor(typeof(TESTUI), true)]: 这是一个属性标记,用于指定 TESTUIEditor 是 TESTUI 类的自定义编辑器。true 参数表示这个编辑器会继承默认的 GraphicEditor 编辑器的所有功能。
- [CanEditMultipleObjects]: 这个属性标记表示这个编辑器可以同时编辑多个选中对象,只要这些对象都有 TESTUI 脚本附加。
- 使用[MenuItem("Tools/Asset Store/Uploader", false, 0)]等属性定义了一系列编辑器菜单项,这些菜单项出现在Unity编辑器的“Tools”菜单下的“Asset Store”子菜单中。
- [Header("UI")]:在Unity编辑器中创建一个标题为“UI”的分组。
- [Space(10)]:在Unity编辑器中为这个分组添加一些额外的空间。
- [SerializeField]:确保这个成员变量在Unity编辑器中可见,即使它是public或private的。
- public GameObject testUI;:一个游戏对象引用,用于表示你的UI界面。
- public Button btn;:一个按钮组件引用,用于处理按钮点击事件。
- public Text txt;:一个文本组件引用,用于显示文本内容。
[ExecuteInEditMode]//确保SceneObjectGuid组件的行为在编辑模式下也能得到执行,而不仅仅是在播放模式下。
[DisallowMultipleComponent]//防止同一个GameObject上被多次附加SceneObjectGuid组件,确保每个GameObject只有一个这样的组件。
[AddComponentMenu("")]//将SceneObjectGuid组件从Unity编辑器的“Add Component”菜单中移除,这意味着开发者不能通过编辑器界面直接添加这个组件,需要通过脚本或手动操作来添加。
[NonSerialized]//表示这个字段不会被序列化,但是可以在运行时进行设置和使用。
//功能[HideInInspector] 使得这个字段在 Inspector 面板中不可见。
//功能 [ReadOnly]//[ReadOnly] 确保在 Inspector 面板中该字段不可编辑。[Tooltip] 提供了字段的简短描述。
- [SerializeField]//是一个 Unity 提供的属性标签,通常用于标记私有字段,使其在 Unity 编辑器的 Inspector 窗口中可见。[CreateAssetMenu]标记允许你在Unity编辑器的“Assets”菜单下创建这个ScriptableObject实例。
- class PublishCriteria : ScriptableObject
- PublishCriteria类继承自ScriptableObject,这意味着它可以作为Unity中的数据容器使用。
- List<AmmoCounter> m_AmmoCounters = new List<AmmoCounter>();:一个私有的List<AmmoCounter>字段,用于存储当前所有武器的弹药计数器。