本篇内容主要围绕
关于 Jared Halpern的书《Unity 2D 游戏开发 使用C#进行独立游戏编程》
的阅读及实践过程的磕碰之处,如Unity版本问题。本文是2022版本 2022.3.61f1c1
希望对你阅读书籍进行实操时有用。
3.7
现在你已经…他们都受到重力的影响。
前提是组件Rigidbody的Gravity Scale 不为0,尝试的时候可以调整看看效果
4.1
最后一段

选择最后的Rectangular 矩形即可 , 另外其他的含义是 Hex(六边形)以及Iso(等距)
4.8 虚拟相机
第一段
这个版本及更新的版本是不存在Cinemachine菜单的
故应为选择顶部的gameobject菜单里选择Cinemachine选择的Create 2d Camera (或者Hierarchy窗口 右键)
创建的也不是两个对象 而是一个名为Virtual Camera的对象(包含了Cinemachine Virtual Camera 组件)
和一个CinemachineBrain组件 在Main Camera中
p76页第二段
原文:从Project视图中选择
改为从Hierarchy窗口
倒数第二段
原文你将在下一步看到Game Window Guides
要去点开虚拟相机对象的Cinemachine Virtual Camera 组件中Body才看的到
4.9稳定性
Cinemachine 似乎被优化过了 game模式下并没有抖动现象
6.1.14
p135 当时我在这里遇见了Bug, 只留下了如下的笔记
存在问题,不同脚本的Start方法运行顺序不确定,不一定player先运行。
我healthyBar.cs如下 给一个参考
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class HealthBar : MonoBehaviour
{
public HitPoints hitPoints;
[HideInInspector]
public Player character;
public Image meterImage;
public Text hpText;
float maxHitPoints;
void Awake()
{
// 等待 Player 设置 character 引用
}
// Start is called before the first frame update
void Start()
{
if (character != null)
{
maxHitPoints = character.maxHitPoints;
}
}
void Update()
{
if (character != null)
{
//hitPoints是scriptable类型
meterImage.fillAmount=hitPoints.value/maxHitPoints;
hpText.text = "HP:"+(meterImage.fillAmount*100);
}
}
// Update is called once per frame
}
6.2.2
p144页 存在笔记
最后一段
并且 预制件 里的Rect Trans 参考书中图6-26的属性 位置就是正确的
因为删除Slot后,不能去选择修改gameobject里参数的位置 故大胆的修改prefeb吧。
P146
第二段
现在没有这个限制了。
6.2.3
p156
代码2 不需要
switch (hitObject.itemType) {
case Item.ItemType.COIN:
shouldDisappear = inventory.AddItem(hitObject);
//shouldDisappear = true;
7.2
好理解的讲法
单例可以看作 一个类的全局指针
7.4.1
如果拖动预制件rpgCaeraManager,而不是实例会报错,单例需要实例化。(个人笔记)
7.7.1
缺少了一步 把ResetCharacter放入 OnEnable()
8.2.2
关于图8-7中 interruption Source中 CurrentState指代上一个过度起点 或者说正在进行的过度
a-b-c a-f
如果a-b 是CurrentState then Next State 那么如果触发了 a-f ,那么会往a-f走
如果是Next State then CurrentState 则会往a-b走(简单说明,实际更复杂)
8.8.9
翻译问题,在Walking Blend Tree和Idle State节点 状态之间
8.9.9
对国人理解方式可能有偏差,如果补充一点的话
从中国人的理学思维来理解。先求屏幕对角线的斜率 由普通斜率公式
Y=mX+b
Y=mX+b
Y=mX+b
代入屏幕坐标在世界坐标系下的点,可求m,
这个斜率m会被角色以及子弹用到,可以理解为一个m被利用了两次
即无论人在世界坐标系怎么移动,其m依旧是屏幕一开始算出来的,子弹同理
之后对于人及子弹 自然就是
b=Yplayer−mX
b=Y_{player}-mX
b=Yplayer−mX
b就是截距,另外的都是已知的坐标点。所以求出来是没问题的
在截距比大小上,可以简单的在图8-36左下角建立原点的坐标系。左边为y 下边为x,去理解。
如图子弹为例子,其一条切线交(或者说负斜率切线)与y轴的交点比人的负斜率切线与y轴的交点要低,
子弹的正斜率切线在x轴的切点比人的高,故在人的西边。
8.11
本人的版本不存在图8-38的界面。新的版本希望自己去做屏幕适配的工作。
8.15
要想在游戏编程取得更好的成绩,只有通过不断地制作游戏才能成功!(强调)
2020

被折叠的 条评论
为什么被折叠?



