《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>(&#34;Cube&#34;);
Instantiate(obj);
}
}尚未完结,持续更新中......
页:
[1]