3D宿題 (2)

3D宿題 (2)




ゲームオブジェクトとリソースの違いとつながり

ゲームオブジェクト

GameOjects は、さまざまなゲーム コントロールをホストするボックスである Unity の組み込みクラスです。ゲームのさまざまな要素 レーシング ゲームの車、マリオの動くキャラクター、ライトはすべてゲーム オブジェクトのサブクラスであり、ゲームの機能を実現するために特定の機能を継承および追加します。

ここに画像の説明を挿入


リソース(資産)

ゲームオブジェクトの特性を実現するために必要なさまざまなコードと色。

ここに画像の説明を挿入


違い

ゲーム オブジェクトはシーン内に単独で存在できますが、ゲーム オブジェクトが機能するにはリソースを適用する必要があります


接続

リソースは、プロパティ (移動軌跡、色など) などとして 1 つまたは複数のゲーム オブジェクトに適用できます。

ここに画像の説明を挿入

また、テンプレート (デザインされたテーブルと椅子の組み合わせなど) として使用して、ゲーム シーンでインスタンス化することもできます。

ここに画像の説明を挿入





ゲームケースにおけるリソースとオブジェクト編成の構造

ケース:ユニティ・ロワイヤル

リソース

ここに画像の説明を挿入

リソースには通常、エフェクトやスクリプトなどのいくつかのプリセット ファイルが含まれていることがわかります。


オブジェクト編成

オブジェクト編成には、通常、ゲーム キャラクター (ターゲット) やライトなどのゲーム オブジェクトが含まれます。





MonoBehaviour の基本動作やイベントトリガーの条件を確認する

コードを書く:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MonoBehaviorTest : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Debug.Log("Start!");
    }

    // Update is called once per frame
    void Update()
    {
        Debug.Log("Update!");
    }

    void Awake(){
        Debug.Log("Awake!");
    }

    void FixedUpdate(){
        Debug.Log("FixedUpdate!");
    }

    void LateUpdate() {
        Debug.Log("LateUpdate!");
    }

    void OnGUI(){
        Debug.Log("OnGUI!");
    }

    void OnDisabled() {
        Debug.Log("OnDisabled!");
    }

    void OnEnabled() {
        Debug.Log("OnEnabled!");
    }
}
関数 基本動作またはトリガー条件
Start すべての更新呼び出しの前に呼び出されます
Update フレームごとに呼び出される
Awake インスタンスがロードされたときに呼び出されます
FixedUpdate 一定の時間間隔で呼び出される
LateUpdate 各フレームがレンダリングされるときに、すべての Update が処理された後に呼び出されます
OnGUI GUI をレンダリングし、GUI メッセージを処理するときに呼び出されます
OnDisabled オブジェクトが無効化または非アクティブ化されたときに呼び出されます
OnEnabled オブジェクトが有効化またはアクティブ化されたときに呼び出されます




GameObject、Transform、Component オブジェクトについて学習するには、スクリプト マニュアルを参照してください。

  1. 3 つのオブジェクトの公式説明を個別に翻訳する

    ゲームオブジェクト

    Unity’s GameObject class is used to represent anything which can exist in a Scene.
    

    GameObjectシーンに存在する可能性があるものを表すために使用されます

    変身

    Position, rotation and scale of an object.
    

    Transformオブジェクトの位置、回転、スケールです。


    成分

    Base class for everything attached to GameObjects.
    

    Componentゲームオブジェクトにアタッチされたすべての基本クラスです。


  1. 下図のテーブルオブジェクト(エンティティ)のプロパティ、テーブルのトランスフォームのプロパティ、テーブルの構成要素を記述
画像

テーブル属性

ここに画像の説明を挿入

テーブルの Transform のプロパティ

ここに画像の説明を挿入

テーブルコンポーネント

Transform、Cube、Box Collider、Mesh Renderer


  1. UML 図を使用して 3 つの関係を記述します (図の描画には UMLet14.1.1 スタンドアロン バージョンを使用してください)。

ここに画像の説明を挿入





リソース プリセット (プレハブ) とオブジェクトの複製 (クローン)

  1. プレハブの利点は何ですか?

    プレハブはコンポーネントのコレクションであり、ゲームオブジェクトにインスタンス化できるプレハブです。プリセットは、ユーザーがバッチでゲーム インスタンスをセットアップするのに便利な、既に設計されたテンプレートと同等です。

  2. プリセットとオブジェクト クローン (Unity オブジェクトのクローンまたはコピーまたはインスタンス化) の関係は何ですか?

    プリセットとクローンの両方を複数のゲーム オブジェクトに適用して、同じプロパティを持たせることができます。

    プリセットが変更され、それに応じてエフェクトのすべてのインスタンスが変更されますが、複製されたオブジェクトは互いに影響しません。

  3. テーブル プレハブを作成し、テーブル プレハブ リソースをゲーム オブジェクトにインスタンス化するためのコードを記述します。

    完全なテーブルプレハブ

    ここに画像の説明を挿入


シーンにドラッグ

ここに画像の説明を挿入


新しい C# スクリプトを作成し、次のようにコードを記述します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PrefabsTest : MonoBehaviour
{
    public Transform table;
    // Start is called before the first frame update
    void Start()
    {
        GameObject new_table = Instantiate<Transform> (table, this.transform).gameObject;
        new_table.transform.position = new Vector3(1, 3, 0);
    }

    // Update is called once per frame
    void Update()
    {
        
    }
}


実行結果
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_51930942/article/details/127173449