Jared Halpern《Unity 2D 游戏开发 使用C#进行独立游戏编程》阅读问题及实践

本篇内容主要围绕

关于 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=YplayermX
b就是截距,另外的都是已知的坐标点。所以求出来是没问题的

在截距比大小上,可以简单的在图8-36左下角建立原点的坐标系。左边为y 下边为x,去理解。

如图子弹为例子,其一条切线交(或者说负斜率切线)与y轴的交点人的负斜率切线与y轴的交点要低,

子弹的正斜率切线在x轴的切点比人的高,故在人的西边。

8.11

本人的版本不存在图8-38的界面。新的版本希望自己去做屏幕适配的工作。

8.15

要想在游戏编程取得更好的成绩,只有通过不断地制作游戏才能成功!(强调)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值