簡體   English   中英

從游戲對象獲取腳本名稱

[英]Get the script name from game object

我有一個gameobject,其中附有兩個腳本。 我想從第一個腳本中獲取第二個腳本的名稱。 請記住

  1. 我不想直接分配(我非常了解)。
  2. 無法對第一個腳本名稱進行硬編碼,因為它會更改。

因此 ,我想獲取腳本名稱並設置該腳本屬性?

我不確定“我想從第一個腳本中獲取第二個腳本的名稱”是什么意思,請看一下:

在此處輸入圖片說明

我必須將腳本附加到Main Camera gameObject。

這是Test.cs的代碼:

using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour 
{

    void Start()
    {
        MonoBehaviour[] scripts = this.GetComponents<MonoBehaviour> ();

        foreach (MonoBehaviour mb in scripts)
        {
            Debug.Log (mb.GetType ().Name);
        }
    }
}

在啟動時,它將在其上打印所有MonoBehaviour的名稱:

在此處輸入圖片說明

這雖然不是很簡單的,但是卻是執行所需操作的相當簡單的方法。

由於AddComponent不再接受字符串(文檔中另有說明,但我認為這是因為Unity尚未更新它),您可以做的是

  1. 使用Type.GetType獲取類型
  2. 使用AddComponent(System.Type)

下面的代碼

var type = Type.GetType("SomeClassName");
gameObject.AddComponent(type);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM