我已经编写了用于批处理地图集的CMD脚本,并且工作正常。
set OutputDir=%1
set MaxSize=%2
set Scale=%3
set TpCmd=--format unity-texture2d --smart-update --max-size %MaxSize% --scale %Scale%
TexturePacker %TpCmd% --data "%OutputDir%.tpsheet" --sheet "%OutputDir%.png" "D:\xxx"
。
。
最近,我正在学习PowerShell,并尝试编写一个可以像上面一样工作的脚本。
$AtlasMaxSize = 4096
$AtlasScale = 0.5
function Pack-Atlas($FileName) {
$AtlasOptions = --format unity-texture2d --smart-update --max-size $AtlasMaxSize --scale $AtlasScale
TexturePacker $AtlasOptions --data "$FileName.tpsheet" --sheet "$FileName.png" "D:\xxx"
}
。
。
但这似乎不是声明$ AtlasOptions变量的正确方法。
我认为可能需要某种方式来存储选项,有人可以帮助我还是提供一些关键字?
。
。
。
。
。
感谢@gvee和@TobyU
我已经编辑了脚本。
。
function Pack-Atlas($FileName, $AtlasMaxSize, $AtlasScale) {
$AtlasOptions = "--format unity-texture2d --smart-update --max-size $AtlasMaxSize --scale $AtlasScale"
TexturePacker $AtlasOptions --data "$FileName.tpsheet" --sheet "$FileName.png" $TargetPath
}
但似乎不起作用。 那是我收到的错误消息:
TexturePacker ::错误:未知参数
--format unity-texture2d-智能更新--max-size 4096 --scale 0.5-请检查参数或访问http://www.codeandweb.com/texturepacker
以获取较新版本
答案 0 :(得分:0)
您需要将变量的值放在如下所示的引号中,以正确进行声明:
$AtlasMaxSize = 4096
$AtlasScale = 0.5
function Pack-Atlas($FileName) {
$AtlasOptions = "--format unity-texture2d --smart-update --max-size $global:AtlasMaxSize --scale $global:AtlasScale"
TexturePacker "$AtlasOptions --data '$($FileName).tpsheet' --sheet '$($FileName).png' 'D:\xxx'"
}
如果您的值不是数字,则应始终这样做。
答案 1 :(得分:0)
您需要扩展功能以具有其他可以传入的参数:
function Pack-Atlas ($FileName, $AtlasMaxSize, $AtlasScale) {
$AtlasOptions = "--format unity-texture2d --smart-update --max-size $AtlasMaxSize --scale $AtlasScale"
TexturePacker $AtlasOptions --data "$FileName.tpsheet" --sheet "$FileName.png" "D:\xxx"
}
然后您可以传递其他参数:
Pack-Atlas -FileName "/temp/foo.bar" -AtlasMaxSize 4096 -AtlasScale 0.5