资源大湿 发表于 2022-11-28 06:41

《Unity 3D脚本编程与游戏开发--马遥、沈琰》关于此书勘误 ...

简介

Unity的更新换代很快,基本每年都会迭代许多个小版本,大版本也更新了不少,但是书籍教程,包括视频教程很难实时更新,这就造成有部分老旧的技术在教程内,在初学者学习的时候,会造成困惑,部分技术无法复现。
本文章针对《Unity 3D脚本编程与游戏开发》这本书,进行一下内容的更新。在看书前,可以对所述内容进行标记,避免在学习的时候遇到无法复现的内容。
另外,读者水平各不相同,对于部分内容可能需要预备知识,或者书籍未标写,导致读者有些无法理解,本文章会进一步补充书籍内容。
注意!!!
本文章非官方且非作者撰写更新内容,本文章仅供参考。
更新时间:2022/11/27
本文章针对的Unity版本:Unity2021.3.5f1c1第三章

3.3.3 游戏机制

【段落定位】第2段;
这里对新建一个2D精灵,进行更详细的讲解。
首先准备一张精灵图素材,任何图片均可,拖拽到Project窗口中,选中刚刚导入的图片,在Inspector窗口进行导入设置。将图片的Texture Type设置为Sprite(2D and UI)。(如图3.1)。然后点击下面的Apply按钮。
第一种方法:接着直接将图片,从Project窗口拖拽到Scene窗口或Hierarchy窗口即可完成创建。



3.1

    第二种方法:右键单击Hierarchy窗口空白处,选择2D Object→Sprites→Square(这里不一定要选Square,任何图形均可,如Capsule)(如图3.2)。



3.2

选中刚刚创建的物体,在Inspector窗口查看其Sprite Renderer组件,将刚刚导入的图片,拖拽到该组件的Sprite字段上。(如图3.3)



3.3

主要就是这个Sprite Renderer组件,两种方法效果都是一样的,书中介绍的是第二种方法。
第九章

9.2.4从网络加载资源

在该小结,第二段示例代码中,用到了UnityWebRequest.GetAssetBundle()类和方法。但是这已经过时了,在编写代码的时候,需要把UnityWebRequest替换为UnityWebRequestAssetBundle类。
但要注意,前面声明变量的类,不需要替换,只需要替换方法前面的类即可。
示例:
UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(path);
另外,在书中没有写,这两个类,都是名称空间UnityEngine.Networking中的类,所以在使用时,需要引用这个名称空间。
using UnityEngine.Networking;最后,展示一下完整代码:
using System.Collections;
using UnityEngine;
using UnityEngine.Networking;

public class TestLoadAB : MonoBehaviour
{
    void Start()
    {
      //注意,这里的路径需要替换成自己的资产包所在路径
      StartCoroutine(UseUnityWebRequest("file:///D:/Unity/project/Asset Bundles Learn/AssetBundles/ab"));
    }
    IEnumerator UseUnityWebRequest(string path)
    {
      //使用UnityWebRequest.GetAssetBundle(路径)加载资源。这个路径是资源地址URL,同样也支持本地文件
      UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(path);
      yield return request.SendWebRequest();
      //运行到这里代表加载完成,从request对象中获得资产包
      AssetBundle ab = DownloadHandlerAssetBundle.GetContent(request);
      //之后的使用方法与本地加载没有区别
      GameObject obj = ab.LoadAsset<GameObject>("Cube");
      Instantiate(obj);
    }
}尚未完结,持续更新中......
页: [1]
查看完整版本: 《Unity 3D脚本编程与游戏开发--马遥、沈琰》关于此书勘误 ...