• Unity 中的 C# Instantiate() 方法解析


    官方文档(https://docs.unity3d.com/ScriptReference/Object.Instantiate.html)本身已经讲得比较详细了。

    用于描述 rotation 的四元数,这个也阅读过了有关四元数的资料。

    目前主要只有一点比较迷惑,先来一段简单的代码,然后再描述疑惑点。

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.SceneManagement;
    
    public class Game : MonoBehaviour
    {
        public GameObject chesspiece;
    
        void Start()
        {
            Instantiate(chesspiece, new Vector3(0, 0, -1), Quaternion.identity);
        }
    }
    

    关于我的疑惑点,就是为什么 chesspiece 这个不经初始化就可以直接被克隆?然后结合我看的视频教程,发现,我们在给某一个 GameObject 添加脚本 Component 时,有一步操作,是将我们预制的 Prefab 资源给拖到相关脚本代码的相关属性下,我们之前将 chesspiece 的访问权限设置为 public 正是为了可以在 Unity 的 Inspector 窗口看到它,如下图所示:

    20210217210745

    就是属性名有了有了一些变化,但是这里的 Chesspiece 和脚本中的 chesspiece 是一致的。

    然后我们在脚本中执行 Instantiate() 方法,其实克隆的就是 ChessPiece 这个预制资源,我的这个预制资源在资源管理器中就是这样:

    20210217211055

    按:GameObject 指的就是在 Unity 的 Hierachy 窗口中显示的资源,如下所示。

    20210217210328

  • 相关阅读:
    面向对象
    PIL库学习及运用
    Jieba库使用和好玩的词云
    Python汉诺塔问题
    用python计算圆周率PI
    使用python画一只佩奇
    面向对象与正则表达式的学习
    美白,磨皮,搞笑图片处理
    tuetle制作汉诺塔
    python圆周率的计算及进度条提示
  • 原文地址:https://www.cnblogs.com/fanlumaster/p/14409791.html
Copyright © 2020-2023  润新知