[편집기 확장] 설정을 변경한 Prefab 복사
7824 단어 Unity
한 명씩 복사하면서 손으로 설정하기 어려우니까 스크립트 쓰면서 단숨에 끝내자
샘플에서 템플릿 Prefab에 추가된 스크립트
Hoge
에 정의된 변수 값이 팝업되고 많은 Prefab가 복사됩니다.견본
HP가 설정할 수 있는 웹 페이지 미리 정의
Hoge.csusing System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Hoge : MonoBehaviour
{
public int hp;
}
추가Hoge
된 PrefabTemplate
라는 이름으로 Assets 바로 아래
hp
다양한 Prefab를 무작위로 설정하면서 만들 수 있는 편집기 확장
HogeGenerator.csusing System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEditor;
public class HogeGenerator
{
//Assets直下にTemplateがあるという想定
static string TEMPLATE_PATH = "Assets/Template.prefab";
[MenuItem("Hoge/ホゲを生成")]
public static void Generate()
{
var template = AssetDatabase.LoadAssetAtPath(TEMPLATE_PATH, typeof(GameObject)) as GameObject;
for(int i = 1; i <= 5; i++) { //とりあえず5回回してみる
var prefabPath = $"Assets/Hoge{i}.prefab"; //.net4.6の書き方です
var prefab = PrefabUtility.CreatePrefab(prefabPath, template); //複製
//以下に"prefab"に対して行いたい変更を記述して下さい
prefab.GetComponent<Hoge>().hp = Random.Range(10, 100);
EditorUtility.SetDirty(prefab);
}
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
}
Hoge > ホゲを生成
를 실행하면 각각 Hp를 무작위로 설정하는 Hge 1~5가 생성됩니다.
평이한 해설 var template = AssetDatabase.LoadAssetAtPath(TEMPLATE_PATH, typeof(GameObject)) as GameObject;
AssetDatabase.LoadAssetAtPath
함수 명칭과 같이 자산을 읽는 함수이다
샘플은PrefabGameObject
의 형식으로 읽거나 Texture2D
로 무늬를 읽을 수 있습니다var prefabPath = $"Assets/Hoge{i}.prefab"; //.net4.6の書き方です
var prefab = PrefabUtility.CreatePrefab(prefabPath, template); //複製
복사된 Prefab의 이름을 포함하여 prefabPath
에 경로를 설명합니다.PrefabUtility.CreatePrefab
방금 읽은 Prefabtemplate
생성//以下に"prefab"に対して行いたい変更を記述して下さい
prefab.GetComponent<Hoge>().hp = Random.Range(10, 100);
prefab
에서는 복사된 Prefab이 GameObject型
에 저장되므로 원하는 대로 설정할 수 있습니다. EditorUtility.SetDirty(prefab);
}
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
자세한 내용은 할애, 무술
이상의 사용방법 이외에 자원을 교체하거나 소재를 복제하여 색을 변경한 후 응용할 수 있다.많은 일을 할 수 있으니 우리 함께 효율을 높이자!
사용자 친화적 표시 가능 ProgressBar
Reference
이 문제에 관하여([편집기 확장] 설정을 변경한 Prefab 복사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Ryopon/items/f8fd02390c580a744c71
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Hoge : MonoBehaviour
{
public int hp;
}
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
using UnityEditor;
public class HogeGenerator
{
//Assets直下にTemplateがあるという想定
static string TEMPLATE_PATH = "Assets/Template.prefab";
[MenuItem("Hoge/ホゲを生成")]
public static void Generate()
{
var template = AssetDatabase.LoadAssetAtPath(TEMPLATE_PATH, typeof(GameObject)) as GameObject;
for(int i = 1; i <= 5; i++) { //とりあえず5回回してみる
var prefabPath = $"Assets/Hoge{i}.prefab"; //.net4.6の書き方です
var prefab = PrefabUtility.CreatePrefab(prefabPath, template); //複製
//以下に"prefab"に対して行いたい変更を記述して下さい
prefab.GetComponent<Hoge>().hp = Random.Range(10, 100);
EditorUtility.SetDirty(prefab);
}
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
}
}
var template = AssetDatabase.LoadAssetAtPath(TEMPLATE_PATH, typeof(GameObject)) as GameObject;
AssetDatabase.LoadAssetAtPath
함수 명칭과 같이 자산을 읽는 함수이다샘플은Prefab
GameObject
의 형식으로 읽거나 Texture2D
로 무늬를 읽을 수 있습니다var prefabPath = $"Assets/Hoge{i}.prefab"; //.net4.6の書き方です
var prefab = PrefabUtility.CreatePrefab(prefabPath, template); //複製
복사된 Prefab의 이름을 포함하여 prefabPath
에 경로를 설명합니다.PrefabUtility.CreatePrefab
방금 읽은 Prefabtemplate
생성//以下に"prefab"に対して行いたい変更を記述して下さい
prefab.GetComponent<Hoge>().hp = Random.Range(10, 100);
prefab
에서는 복사된 Prefab이 GameObject型
에 저장되므로 원하는 대로 설정할 수 있습니다. EditorUtility.SetDirty(prefab);
}
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
자세한 내용은 할애, 무술이상의 사용방법 이외에 자원을 교체하거나 소재를 복제하여 색을 변경한 후 응용할 수 있다.많은 일을 할 수 있으니 우리 함께 효율을 높이자!
사용자 친화적 표시 가능 ProgressBar
Reference
이 문제에 관하여([편집기 확장] 설정을 변경한 Prefab 복사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Ryopon/items/f8fd02390c580a744c71텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)