| name | unity-project-init |
| description | Initialize Unity project and configure URP/Post Processing. Use when starting a new project, setting up URP pipeline, configuring post processing, or creating folder structure. |
| disable-model-invocation | true |
Unity Project Initialization
URP Pipeline Setup
ใใญใธใงใฏใ้ๅงๆใซ URP ใใคใใฉใคใณใ GraphicsSettings ใซใปใใใใใฆใใใ็ขบ่ชใใใใใฆใใชใใใฐ่จญๅฎใใใ
internal class CommandScript : IRunCommand
{
public void Execute(ExecutionResult result)
{
var guids = AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset");
if (guids.Length == 0)
{
result.LogError("URP Pipeline Asset not found. URP package is installed?");
return;
}
var path = AssetDatabase.GUIDToAssetPath(guids[0]);
var pipelineAsset = AssetDatabase.LoadAssetAtPath<UniversalRenderPipelineAsset>(path);
GraphicsSettings.defaultRenderPipeline = pipelineAsset;
QualitySettings.renderPipeline = pipelineAsset;
result.Log("URP Pipeline set: " + pipelineAsset.name + " from " + path);
}
}
ๅฟ
่ฆใช using: UnityEngine, UnityEditor, UnityEngine.Rendering, UnityEngine.Rendering.Universal
้่ฆ: UniversalRenderPipelineAsset.Create() ใงๆฐ่ฆไฝๆใใชใใใฌใณใใฉใผใฎใชใณใฏใๅฃใใใใใๆขๅญใขใปใใใๆค็ดขใใฆไฝฟใใ
URP Post Processing Setup
Bloom, Vignette ็ญใๆๅนใซใใใซใฏ Volume + Profile ใไฝๆใใใซใกใฉใง Post Processing ใๆๅนใซใใใ
var volumeGO = new GameObject("PostProcessVolume");
var volume = volumeGO.AddComponent<Volume>();
volume.isGlobal = true;
var profile = ScriptableObject.CreateInstance<VolumeProfile>();
AssetDatabase.CreateAsset(profile, "Assets/Settings/PostProcessProfile.asset");
volume.profile = profile;
var bloom = profile.Add<Bloom>();
bloom.threshold.overrideState = true; bloom.threshold.value = 1.0f;
bloom.intensity.overrideState = true; bloom.intensity.value = 0.8f;
var vignette = profile.Add<Vignette>();
vignette.intensity.overrideState = true; vignette.intensity.value = 0.25f;
var cam = Camera.main;
var camData = cam.GetComponent<UniversalAdditionalCameraData>();
if (camData == null) camData = cam.gameObject.AddComponent<UniversalAdditionalCameraData>();
camData.renderPostProcessing = true;
ๅฟ
่ฆใช using: UnityEngine.Rendering, UnityEngine.Rendering.Universal
Folder Structure
Assets/
โโโ Scripts/
โ โโโ Runtime/
โ โ โโโ Core/ # GameManager, ServiceLocator
โ โ โโโ Gameplay/ # Game mechanics
โ โ โโโ UI/ # UI controllers
โ โ โโโ Data/ # ScriptableObjects
โ โโโ Editor/
โ โโโ Tools/ # Custom editor tools
โโโ Prefabs/
โโโ Scenes/
โโโ Materials/
โโโ Art/
โ โโโ Textures/
โ โโโ Sprites/
โ โโโ Models/
โโโ Audio/
โโโ Settings/ # URP Asset, Post Process Profile
โโโ Resources/ # Only for dynamically loaded assets
Examples
Example 1: ๆฐ่ฆ3Dใใญใธใงใฏใใฎๅๆๅ
- ใใฉใซใๆง้ ใ
Unity_RunCommand ใงไฝๆ
- URP ใใคใใฉใคใณใขใปใใใๆค็ดขใใฆ GraphicsSettings ใซใปใใ
- Post Processing Volume ใไฝๆใใฆ Bloom, Vignette ใ่จญๅฎ
Unity_Camera_Capture ใง Bloom ใๅนใใฆใใใใจใ็ขบ่ช
Example 2: ๆขๅญใใญใธใงใฏใใฎ URP ๆๅนๅ็ขบ่ช
AssetDatabase.FindAssets("t:UniversalRenderPipelineAsset") ใงใขใปใใๆค็ดข
GraphicsSettings.defaultRenderPipeline ใ null ใชใ่จญๅฎ
- Camera ใซ
UniversalAdditionalCameraData ใใใใ็ขบ่ช
Troubleshooting
- Bloom ใๅนใใชใ: Camera ใฎ
renderPostProcessing ใ true ใ็ขบ่ชใVolume ใฎ isGlobal ใ true ใ็ขบ่ช
- ็ป้ขใ็ใฃ้ป/ใใณใฏ: URP Pipeline Asset ใ GraphicsSettings ใซใปใใใใใฆใใชใใไธ่จใฎๆค็ดขใณใผใใง่จญๅฎใใ
- URP Asset ใ่ฆใคใใใชใ: URP ใใใฑใผใธใใคใณในใใผใซใใใฆใใชใๅฏ่ฝๆงใ
Unity_PackageManager_GetData ใง็ขบ่ช
$ARGUMENTS