P118 添加角色动画
添加控制器
- Assets
- Models
- Characters
- John Lemon
添加至Hierarchy,再添加至Prefabs,进入Prefab编辑
- Animators
- Create Animator Controller
- 拖入Animation,右键,Make Transmission
- Parameters, +, IsWalking, 选中transmission, conditions, +, IsWalking,
- 将Animator Controller拖入
点击
, 即可看到效果
P119 更改动画bug
添加rigidbody
update Mode: Animate Physics
P120 玩家代码
创建矢量,表示移动
创建变量,获取输入
private void FixedUpdate()
{
m_Movement.Set()
}
创建刚体和动画管理器
Start():
获取刚体组件;
获取动画控制组件;
update 和 fixedupdate的区别:一些物理属性的更新操作应该放在FixedUpdate中操作。
判断是否存在移动
23点04分
但是旋转还是没用成功
2022年2月21日
- 在游戏中给游戏对象添加component
- 在C#中构造变量:
- 变量有各种各样的,需要构造合适的变量
- 对变量进行各种运算处理
- 接收用户输入
将变量与component关联起来
根据对变量的处理结果,对component进行操作
14点41分
- 重新看了一遍视频,并跟视频检查了一下代码,没有发现问题。
- 准备调试的时候,配置了launch.json,发现不能调试,但重新运行游戏的时候,发现John可以转身了。
- 报错内容为:
error while processing request 'launch'(exception:未将对象引用设置到对象的实例。) - 将之前的tasks.json复制到.vscode文件夹下,可以调试了,但是不能在此状态下进行用户输入。
2022年2月22日
OnAnimatorMove()方法:
当动画播放引发根移动时执行
P122 场景和光照简介
window->Rendering->Environment->Environment Lighting-> Gradient
Equator:地平线向场景中传播的光线
Ground:场景下方的光线
P124 使用NavMesh导航系统
- Hierarchy > level > √ static > 包含子对象
- 被标记为static的Mesh Render组件,可用于导航网格。
- 被标记为static的对象,在渲染过程中就被当作导航网格。
- Corridors > Dressing > CeilingPlane > 不标记为static
- AI > Navigation > Bake > Agent radius > 0.25 -> Bake
但此时不显示蓝色地板
- 点开Gizmos
- Off-Mesh Link:非直接相连
P125 使用Cinemachine
- 没有在视频教程所教的位置找到这个Cinemachine
- GameObject > Cinemachine
- CM vcam1 > Body > Framing transposer -> Aim > Do nothing -> Rotation > x > 45
- -> follow (拖过来)JohnLemon
P126 后期特效简介
Render Pipeline的概念
渲染管线
内置渲染管线
着色器
抗锯齿
- 选中main camera > Tags & Layers > layer > add new layer > PostProcessingVolumes
- main Camera > add component > post-process Layer > Layer > PostProcessingVolumes -> Fast mode 打勾
P127 后期处理体积 添加颜色分级 泛光
后期处理体积
- Create Empty > 重命名为GlobalPost -> 选择层为PostProcessingVolumes
- -> 添加组件 > Post-process Volume > Position 定位0,0,0 -> 打勾 Is Global
- 添加配置文件 > Profile > New > 将在Scenes文件夹下创建一个“scene文件名_Profiles”文件夹,其中有GlobalPost
- GlobalPost > Add effect > color grading
- Tonemapping > √ Mode > ACES
- Tone > Postexposure
轨迹球 trackballs
- Lift会影响阴影的颜色
- Gain:影响最亮的高光
- Gamma: 涵盖图像颜色中间(或中间范围)的所有内容
泛光 bloom
- All
- Intensity 2.5
- Threshold 0.75
P128 添加环境光遮挡&渐晕&镜头失真
Ambient Occlusion
- All
- Intensity 0.5
- Thickness modifier 3.5
渐晕 Vignette
- Intensity 0.5
- Smoothness 0.3
Lens distortion
- Scale 1.1
- Intensity 30
P129 设置游戏结束UI
- Hierarchy > UI > Image
? Image的Anchors不能修改
- 但是可以鼠标拖动
修改锚点 > 修改Image边缘与锚点确定的边界的距离
------------恢复内容开始------------
# P118 添加角色动画## 添加控制器
* Assets
* Models
* Characters
* John Lemon
添加至Hierarchy,再添加至Prefabs,进入Prefab编辑
- Animators
- Create Animator Controller
- 拖入Animation,右键,Make Transmission
- Parameters, +, IsWalking, 选中transmission, conditions, +, IsWalking,
- 将Animator Controller拖入
点击
, 即可看到效果
P119 更改动画bug
添加rigidbody
update Mode: Animate Physics
P120 玩家代码
创建矢量,表示移动
创建变量,获取输入
private void FixedUpdate()
{
m_Movement.Set()
}
创建刚体和动画管理器
Start():
获取刚体组件;
获取动画控制组件;
update 和 fixedupdate的区别:一些物理属性的更新操作应该放在FixedUpdate中操作。
判断是否存在移动
23点04分
但是旋转还是没用成功
2022年2月21日
- 在游戏中给游戏对象添加component
- 在C#中构造变量:
- 变量有各种各样的,需要构造合适的变量
- 对变量进行各种运算处理
- 接收用户输入
将变量与component关联起来
根据对变量的处理结果,对component进行操作
14点41分
- 重新看了一遍视频,并跟视频检查了一下代码,没有发现问题。
- 准备调试的时候,配置了launch.json,发现不能调试,但重新运行游戏的时候,发现John可以转身了。
- 报错内容为:
error while processing request 'launch'(exception:未将对象引用设置到对象的实例。) - 将之前的tasks.json复制到.vscode文件夹下,可以调试了,但是不能在此状态下进行用户输入。
2022年2月22日
OnAnimatorMove()方法:
当动画播放引发根移动时执行
P122 场景和光照简介
window->Rendering->Environment->Environment Lighting-> Gradient
Equator:地平线向场景中传播的光线
Ground:场景下方的光线
P124 使用NavMesh导航系统
- 游戏对象 > static
- AI > Navigation > Bake > Agent radius > 0.25 -> Bake
但此时不显示蓝色地板 - 点开Gizmos
P125 使用Cinemachine
- 没有在视频教程所教的位置找到这个Cinemachine
- GameObject > Cinemachine
- CM vcam1 > Body > Framing transposer -> Aim > Do nothing -> Rotation > x > 45
- -> follow (拖过来)JohnLemon
P126 后期特效简介
Render Pipeline的概念
渲染管线
内置渲染管线
着色器
抗锯齿
- 选中main camera > Tags & Layers > layer > add new layer > PostProcessingVolumes
- main Camera > add component > post-process Layer > Layer > PostProcessingVolumes -> Fast mode 打勾
P127 后期处理体积 添加颜色分级 泛光
后期处理体积
- Create Empty > 重命名为GlobalPost -> 选择层为PostProcessingVolumes
- -> 添加组件 > Post-process Volume > Position 定位0,0,0 -> 打勾 Is Global
- 添加配置文件 > Profile > New > 将在Scenes文件夹下创建一个“scene文件名_Profiles”文件夹,其中有GlobalPost
- GlobalPost > Add effect > color grading
- Tonemapping > √ Mode > ACES
- Tone > Postexposure
轨迹球 trackballs
- Lift会影响阴影的颜色
- Gain:影响最亮的高光
- Gamma: 涵盖图像颜色中间(或中间范围)的所有内容
泛光 bloom
- All
- Intensity 2.5
- Threshold 0.75
P128 添加环境光遮挡&渐晕&镜头失真
Ambient Occlusion
- All
- Intensity 0.5
- Thickness modifier 3.5
渐晕 Vignette
- Intensity 0.5
- Smoothness 0.3
Lens distortion
- Scale 1.1
- Intensity 30
P129 设置游戏结束UI
- Hierarchy > UI > Image
? Image的Anchors不能修改
- 但是可以鼠标拖动
修改锚点 > 修改Image边缘与锚点确定的边界的距离
2022年2月23日
P130 添加游戏结束代码逻辑
- Hierarchy > Creat Empty > 重命名为GameEnding > Box collider > 设置位置 > √ Is trigger
- Scripts文件夹新建 >
? Unity3d_can't add the script component "" because the script class cannot be found
- 脚本中的
public class NewBehaviourScript : MonoBehaviour
改为public class GameEnding : MonoBehaviour
就好了
? 结束画面中,背景图透明
- ExitImageBackground> Image > color > A > 255
P131 加入石像鬼敌人
- Model > Gargoyle
- 创建 Animator Controller,双击编辑
- 把Animation拖进Animator Controller的编辑页面
- 把Animator Controller拖入游戏对象Animator组件中的Controller中。
- 添加Capsule Collider
- 在Gargoyle下Create Empty重命名为PointOfView,在local模式下调整角度(实质上就是创建了一个坐标系,之后再在该坐标系上添加碰撞体组件)
- 添加capsule Collider,direction调整为z轴
2022年2月24日
P132 为石像鬼添加代码
- 没有显示 you are caught,但可正常显示won
- Gargoyle > PointOfView > √ Is trigger
- 进入区域,显示won,并退出游戏
- GameEnding.cs >
void EndLevel(CanvasGroup imageCanvasGroup, bool doRestart){...}
>exitBackgroundImageCanvasGroup.alpha
改为imageCanvasGroup.alpha
- 显示 you are caught,但直接退出了游戏
if(doRestart)
{
SceneManager.LoadScene(0);
}
UnityEditor.EditorApplication.isPlaying = false;
改为:
if(doRestart)
{
SceneManager.LoadScene(0);
}
else
{
UnityEditor.EditorApplication.isPlaying = false;
}
- 完成!
P133 为石像鬼添加代码替代方法
// 使用Resources方法,可以直接读取项目文件夹Assets/Resources 中的文件
spriteCaught = Resources.Load<Sprite>("Caught");
- 按照教程修改了GameEnding的挂接Script:MyGameEnding
- 只有到达exit的时候正确显示Won,在触碰石像鬼视野的时候,不能显示Caught > 应该是 Observer的问题。
- Bingo! Observer.cs中:
public GameEnding myGameEnding;
改为public MyGameEnding myGameEnding;
- 修改之后,需要重新挂接一下GameEnding对象。
- MyGameEnding中:
exitBackgroundImageCanvasGroup.alpha
前增加image.sprite = sprite;
- exitBackgroundImageCanvasGroup > ExitImage > Source Image > None
2022年2月25日
P134 添加幽灵敌人
------------恢复内容开始------------
# P118 添加角色动画## 添加控制器* Assets
* Models
* Characters
* John Lemon
添加至Hierarchy,再添加至Prefabs,进入Prefab编辑
- Animators
- Create Animator Controller
- 拖入Animation,右键,Make Transmission
- Parameters, +, IsWalking, 选中transmission, conditions, +, IsWalking,
- 将Animator Controller拖入
点击
, 即可看到效果
P119 更改动画bug
添加rigidbody
update Mode: Animate Physics
P120 玩家代码
创建矢量,表示移动
创建变量,获取输入
private void FixedUpdate()
{
m_Movement.Set()
}
创建刚体和动画管理器
Start():
获取刚体组件;
获取动画控制组件;
update 和 fixedupdate的区别:一些物理属性的更新操作应该放在FixedUpdate中操作。
判断是否存在移动
23点04分
但是旋转还是没用成功
2022年2月21日
- 在游戏中给游戏对象添加component
- 在C#中构造变量:
- 变量有各种各样的,需要构造合适的变量
- 对变量进行各种运算处理
- 接收用户输入
将变量与component关联起来
根据对变量的处理结果,对component进行操作
14点41分
- 重新看了一遍视频,并跟视频检查了一下代码,没有发现问题。
- 准备调试的时候,配置了launch.json,发现不能调试,但重新运行游戏的时候,发现John可以转身了。
- 报错内容为:
error while processing request 'launch'(exception:未将对象引用设置到对象的实例。) - 将之前的tasks.json复制到.vscode文件夹下,可以调试了,但是不能在此状态下进行用户输入。
2022年2月22日
OnAnimatorMove()方法:
当动画播放引发根移动时执行
P122 场景和光照简介
window->Rendering->Environment->Environment Lighting-> Gradient
Equator:地平线向场景中传播的光线
Ground:场景下方的光线
P124 使用NavMesh导航系统
- Hierarchy > level > √ static > 包含子对象
- 被标记为static的Mesh Render组件,可用于导航网格。
- 被标记为static的对象,在渲染过程中就被当作导航网格。
- Corridors > Dressing > CeilingPlane > 不标记为static
- AI > Navigation > Bake > Agent radius > 0.25 -> Bake
但此时不显示蓝色地板
- 点开Gizmos
- Off-Mesh Link:非直接相连
P125 使用Cinemachine
- 没有在视频教程所教的位置找到这个Cinemachine
- GameObject > Cinemachine
- CM vcam1 > Body > Framing transposer -> Aim > Do nothing -> Rotation > x > 45
- -> follow (拖过来)JohnLemon
P126 后期特效简介
Render Pipeline的概念
渲染管线
内置渲染管线
着色器
抗锯齿
- 选中main camera > Tags & Layers > layer > add new layer > PostProcessingVolumes
- main Camera > add component > post-process Layer > Layer > PostProcessingVolumes -> Fast mode 打勾
P127 后期处理体积 添加颜色分级 泛光
后期处理体积
- Create Empty > 重命名为GlobalPost -> 选择层为PostProcessingVolumes
- -> 添加组件 > Post-process Volume > Position 定位0,0,0 -> 打勾 Is Global
- 添加配置文件 > Profile > New > 将在Scenes文件夹下创建一个“scene文件名_Profiles”文件夹,其中有GlobalPost
- GlobalPost > Add effect > color grading
- Tonemapping > √ Mode > ACES
- Tone > Postexposure
轨迹球 trackballs
- Lift会影响阴影的颜色
- Gain:影响最亮的高光
- Gamma: 涵盖图像颜色中间(或中间范围)的所有内容
泛光 bloom
- All
- Intensity 2.5
- Threshold 0.75
P128 添加环境光遮挡&渐晕&镜头失真
Ambient Occlusion
- All
- Intensity 0.5
- Thickness modifier 3.5
渐晕 Vignette
- Intensity 0.5
- Smoothness 0.3
Lens distortion
- Scale 1.1
- Intensity 30
P129 设置游戏结束UI
- Hierarchy > UI > Image
? Image的Anchors不能修改
- 但是可以鼠标拖动
修改锚点 > 修改Image边缘与锚点确定的边界的距离
------------恢复内容开始------------
# P118 添加角色动画## 添加控制器* Assets * Models
* Characters
* John Lemon
添加至Hierarchy,再添加至Prefabs,进入Prefab编辑
- Animators
- Create Animator Controller
- 拖入Animation,右键,Make Transmission
- Parameters, +, IsWalking, 选中transmission, conditions, +, IsWalking,
- 将Animator Controller拖入
点击
, 即可看到效果
P119 更改动画bug
添加rigidbody
update Mode: Animate Physics
P120 玩家代码
创建矢量,表示移动
创建变量,获取输入
private void FixedUpdate()
{
m_Movement.Set()
}
创建刚体和动画管理器
Start():
获取刚体组件;
获取动画控制组件;
update 和 fixedupdate的区别:一些物理属性的更新操作应该放在FixedUpdate中操作。
判断是否存在移动
23点04分
但是旋转还是没用成功
2022年2月21日
- 在游戏中给游戏对象添加component
- 在C#中构造变量:
- 变量有各种各样的,需要构造合适的变量
- 对变量进行各种运算处理
- 接收用户输入
将变量与component关联起来
根据对变量的处理结果,对component进行操作
14点41分
- 重新看了一遍视频,并跟视频检查了一下代码,没有发现问题。
- 准备调试的时候,配置了launch.json,发现不能调试,但重新运行游戏的时候,发现John可以转身了。
- 报错内容为:
error while processing request 'launch'(exception:未将对象引用设置到对象的实例。) - 将之前的tasks.json复制到.vscode文件夹下,可以调试了,但是不能在此状态下进行用户输入。
2022年2月22日
OnAnimatorMove()方法:
当动画播放引发根移动时执行
P122 场景和光照简介
window->Rendering->Environment->Environment Lighting-> Gradient
Equator:地平线向场景中传播的光线
Ground:场景下方的光线
P124 使用NavMesh导航系统
- 游戏对象 > static
- AI > Navigation > Bake > Agent radius > 0.25 -> Bake
但此时不显示蓝色地板 - 点开Gizmos
P125 使用Cinemachine
- 没有在视频教程所教的位置找到这个Cinemachine
- GameObject > Cinemachine
- CM vcam1 > Body > Framing transposer -> Aim > Do nothing -> Rotation > x > 45
- -> follow (拖过来)JohnLemon
P126 后期特效简介
Render Pipeline的概念
渲染管线
内置渲染管线
着色器
抗锯齿
- 选中main camera > Tags & Layers > layer > add new layer > PostProcessingVolumes
- main Camera > add component > post-process Layer > Layer > PostProcessingVolumes -> Fast mode 打勾
P127 后期处理体积 添加颜色分级 泛光
后期处理体积
- Create Empty > 重命名为GlobalPost -> 选择层为PostProcessingVolumes
- -> 添加组件 > Post-process Volume > Position 定位0,0,0 -> 打勾 Is Global
- 添加配置文件 > Profile > New > 将在Scenes文件夹下创建一个“scene文件名_Profiles”文件夹,其中有GlobalPost
- GlobalPost > Add effect > color grading
- Tonemapping > √ Mode > ACES
- Tone > Postexposure
轨迹球 trackballs
- Lift会影响阴影的颜色
- Gain:影响最亮的高光
- Gamma: 涵盖图像颜色中间(或中间范围)的所有内容
泛光 bloom
- All
- Intensity 2.5
- Threshold 0.75
P128 添加环境光遮挡&渐晕&镜头失真
Ambient Occlusion
- All
- Intensity 0.5
- Thickness modifier 3.5
渐晕 Vignette
- Intensity 0.5
- Smoothness 0.3
Lens distortion
- Scale 1.1
- Intensity 30
P129 设置游戏结束UI
- Hierarchy > UI > Image
? Image的Anchors不能修改
- 但是可以鼠标拖动
修改锚点 > 修改Image边缘与锚点确定的边界的距离
2022年2月23日
P130 添加游戏结束代码逻辑
- Hierarchy > Creat Empty > 重命名为GameEnding > Box collider > 设置位置 > √ Is trigger
- Scripts文件夹新建 >
? Unity3d_can't add the script component "" because the script class cannot be found
- 脚本中的
public class NewBehaviourScript : MonoBehaviour
改为public class GameEnding : MonoBehaviour
就好了
? 结束画面中,背景图透明
- ExitImageBackground> Image > color > A > 255
P131 加入石像鬼敌人
- Model > Gargoyle
- 创建 Animator Controller,双击编辑
- 把Animation拖进Animator Controller的编辑页面
- 把Animator Controller拖入游戏对象Animator组件中的Controller中。
- 添加Capsule Collider
- 在Gargoyle下Create Empty重命名为PointOfView,在local模式下调整角度(实质上就是创建了一个坐标系,之后再在该坐标系上添加碰撞体组件)
- 添加capsule Collider,direction调整为z轴
2022年2月24日
P132 为石像鬼添加代码
- 没有显示 you are caught,但可正常显示won
- Gargoyle > PointOfView > √ Is trigger
- 进入区域,显示won,并退出游戏
- GameEnding.cs >
void EndLevel(CanvasGroup imageCanvasGroup, bool doRestart){...}
>exitBackgroundImageCanvasGroup.alpha
改为imageCanvasGroup.alpha
- 显示 you are caught,但直接退出了游戏
if(doRestart)
{
SceneManager.LoadScene(0);
}
UnityEditor.EditorApplication.isPlaying = false;
改为:
if(doRestart)
{
SceneManager.LoadScene(0);
}
else
{
UnityEditor.EditorApplication.isPlaying = false;
}
- 完成!
P133 为石像鬼添加代码替代方法
// 使用Resources方法,可以直接读取项目文件夹Assets/Resources 中的文件
spriteCaught = Resources.Load<Sprite>("Caught");
- 按照教程修改了GameEnding的挂接Script:MyGameEnding
- 只有到达exit的时候正确显示Won,在触碰石像鬼视野的时候,不能显示Caught > 应该是 Observer的问题。
- Bingo! Observer.cs中:
public GameEnding myGameEnding;
改为public MyGameEnding myGameEnding;
- 修改之后,需要重新挂接一下GameEnding对象。
- MyGameEnding中:
exitBackgroundImageCanvasGroup.alpha
前增加image.sprite = sprite;
- exitBackgroundImageCanvasGroup > ExitImage > Source Image > None
2022年2月25日
P134 添加幽灵敌人
2022年2月26日
P137 添加非剧情音效
- Hierarchy > Creat Empty > 更名为 Audio > Transform > reset
- 在Audio下 > Creat Empty > Rename: Ambience > √ loop > volume
- -> Create New > Rename:Escape > 拖入SFXWin > 取消 √ Play on awake
public AudioSource audioClip;
audioClip.Play();
2022年2月27日
P138 添加玩家脚步声音
P139 添加鬼魂声效
- 为了音效更加逼真,把Audio Listener组件从Main Camera移至John Lemon.
- Spatial Blend > 设置为3D > 3D Sound Settings > Max Distance > 10
- ? Ghost突然不会巡逻了
force to Mono: 强制单声道