release v0.6.0

pull/55/head
mob-sakai 2019-02-07 08:51:59 +09:00
commit d3db3627f8
10 changed files with 74 additions and 148 deletions

View File

@ -1,5 +1,22 @@
# Changelog
## [v0.6.0](https://github.com/mob-sakai/SoftMaskForUGUI/tree/v0.6.0) (2019-02-07)
[Full Changelog](https://github.com/mob-sakai/SoftMaskForUGUI/compare/v0.5.0...v0.6.0)
![](https://user-images.githubusercontent.com/12690315/52258046-e2ca0380-2960-11e9-8cdb-46ee4a5f880f.png)
Scene view bugs have been fixed.
**Fixed bugs:**
- Shaders for TMPro have compile errors [\#33](https://github.com/mob-sakai/SoftMaskForUGUI/issues/33)
- SoftMask does not display properly at the edge of the canvas [\#32](https://github.com/mob-sakai/SoftMaskForUGUI/issues/32)
**Closed issues:**
- Shaders for TMPro are no longer support d3d9 & d3d11\_9x [\#34](https://github.com/mob-sakai/SoftMaskForUGUI/issues/34)
## [v0.5.0](https://github.com/mob-sakai/SoftMaskForUGUI/tree/v0.5.0) (2019-02-01)
[Full Changelog](https://github.com/mob-sakai/SoftMaskForUGUI/compare/v0.4.0...v0.5.0)
@ -16,7 +33,7 @@
## [v0.4.0](https://github.com/mob-sakai/SoftMaskForUGUI/tree/v0.4.0) (2019-01-13)
[Full Changelog](https://github.com/mob-sakai/SoftMaskForUGUI/compare/v0.3.0...v0.4.0)
[Full Changelog](https://github.com/mob-sakai/SoftMaskForUGUI/compare/0.4.0...v0.4.0)
**Implemented enhancements:**

View File

@ -110,6 +110,7 @@ SubShader {
Pass {
CGPROGRAM
#pragma exclude_renderers d3d9
#pragma target 3.0
#pragma vertex VertShader
#pragma fragment PixShader
@ -151,6 +152,7 @@ SubShader {
fixed4 underlayColor : COLOR1;
#endif
float4 textures : TEXCOORD5;
SOFTMASK_EDITOR_ONLY(float4 worldPosition : TEXCOORD6;)
};
// Used by Unity internally to handle Texture Tiling and Offset.
@ -220,6 +222,7 @@ SubShader {
underlayColor,
#endif
float4(faceUV, outlineUV),
SOFTMASK_EDITOR_ONLY(input.position)
};
return output;
@ -292,7 +295,7 @@ SubShader {
faceColor *= m.x * m.y;
#endif
faceColor *= SoftMask(input.position);
faceColor *= SoftMask(input.position, input.worldPosition);
#if UNITY_UI_ALPHACLIP
clip(faceColor.a - 0.001);

View File

@ -79,6 +79,10 @@ SubShader {
Pass {
CGPROGRAM
#pragma exclude_renderers d3d9
#if !defined(SHADER_API_D3D11_9X)
#pragma target 3.0
#endif
#pragma vertex VertShader
#pragma fragment PixShader
#pragma shader_feature __ OUTLINE_ON
@ -113,6 +117,7 @@ SubShader {
float4 texcoord1 : TEXCOORD3; // Texture UV, alpha, reserved
half2 underlayParam : TEXCOORD4; // Scale(x), Bias(y)
#endif
SOFTMASK_EDITOR_ONLY(float4 worldPosition : TEXCOORD5;)
};
@ -180,6 +185,7 @@ SubShader {
float4(input.texcoord0 + layerOffset, input.color.a, 0),
half2(layerScale, layerBias),
#endif
SOFTMASK_EDITOR_ONLY(input.vertex)
};
return output;
@ -218,7 +224,7 @@ SubShader {
c *= input.texcoord1.z;
#endif
c *= SoftMask(input.vertex);
c *= SoftMask(input.vertex, input.worldPosition);
#if UNITY_UI_ALPHACLIP
clip(c.a - 0.001);

View File

@ -104,7 +104,7 @@ Shader "TextMeshPro/Sprite (SoftMaskable)"
color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
#endif
color.a *= SoftMask(IN.vertex);
color.a *= SoftMask(IN.vertex, IN.worldPosition);
#ifdef UNITY_UI_ALPHACLIP
clip (color.a - 0.001);

View File

@ -19,14 +19,18 @@ fixed Approximately(float4x4 a, float4x4 b)
1);
}
fixed GetMaskAlpha(fixed alpha, fixed stencilId, fixed interaction)
float GetMaskAlpha(float alpha, int stencilId, float interaction)
{
fixed onStencil = step(stencilId, _Stencil);
alpha = lerp(1, alpha, onStencil * step(1, interaction));
return lerp(alpha, 1 - alpha, onStencil * step(2, interaction));
}
half SoftMask(float4 clipPos, float4 wpos)
#if SOFTMASK_EDITOR
float SoftMaskInternal(float4 clipPos, float4 wpos)
#else
float SoftMaskInternal(float4 clipPos)
#endif
{
half2 view = clipPos.xy/_ScreenParams.xy;
#if SOFTMASK_EDITOR
@ -43,9 +47,21 @@ half SoftMask(float4 clipPos, float4 wpos)
half alpha = GetMaskAlpha(mask.x, 1, _MaskInteraction.x)
* GetMaskAlpha(mask.y, 3, _MaskInteraction.y)
* GetMaskAlpha(mask.z, 7, _MaskInteraction.z)
* GetMaskAlpha(mask.w, 15, _MaskInteraction.w);
* GetMaskAlpha(mask.w, 15, _MaskInteraction.w)
#if SOFTMASK_EDITOR
* step(0, view.x) * step(view.x, 1) * step(0, view.y) * step(view.y, 1)
#endif
;
return alpha;
}
#if SOFTMASK_EDITOR
#define SOFTMASK_EDITOR_ONLY(x) x
#define SoftMask(clipPos, worldPosition) SoftMaskInternal(clipPos, worldPosition)
#else
#define SOFTMASK_EDITOR_ONLY(x)
#define SoftMask(clipPos, worldPosition) SoftMaskInternal(clipPos)
#endif
#endif // UI_SOFTMASK_INCLUDED

View File

@ -2,7 +2,7 @@
"name": "com.coffee.softmask-for-ugui",
"displayName": "Soft Mask For uGUI",
"description": "SoftMask is a smooth masking component for uGUI elements in Unity.\nBy using SoftMask instead of default Mask, rounded edges of UI elements can be expressed beautifully.",
"version": "0.5.0",
"version": "0.6.0",
"unity": "2017.1",
"license": "MIT",
"repository": {

View File

@ -1,5 +1,22 @@
# Changelog
## [v0.6.0](https://github.com/mob-sakai/SoftMaskForUGUI/tree/v0.6.0) (2019-02-07)
[Full Changelog](https://github.com/mob-sakai/SoftMaskForUGUI/compare/v0.5.0...v0.6.0)
![](https://user-images.githubusercontent.com/12690315/52258046-e2ca0380-2960-11e9-8cdb-46ee4a5f880f.png)
Scene view bugs have been fixed.
**Fixed bugs:**
- Shaders for TMPro have compile errors [\#33](https://github.com/mob-sakai/SoftMaskForUGUI/issues/33)
- SoftMask does not display properly at the edge of the canvas [\#32](https://github.com/mob-sakai/SoftMaskForUGUI/issues/32)
**Closed issues:**
- Shaders for TMPro are no longer support d3d9 & d3d11\_9x [\#34](https://github.com/mob-sakai/SoftMaskForUGUI/issues/34)
## [v0.5.0](https://github.com/mob-sakai/SoftMaskForUGUI/tree/v0.5.0) (2019-02-01)
[Full Changelog](https://github.com/mob-sakai/SoftMaskForUGUI/compare/v0.4.0...v0.5.0)
@ -16,7 +33,7 @@
## [v0.4.0](https://github.com/mob-sakai/SoftMaskForUGUI/tree/v0.4.0) (2019-01-13)
[Full Changelog](https://github.com/mob-sakai/SoftMaskForUGUI/compare/v0.3.0...v0.4.0)
[Full Changelog](https://github.com/mob-sakai/SoftMaskForUGUI/compare/0.4.0...v0.4.0)
**Implemented enhancements:**

View File

@ -2,7 +2,7 @@
"name": "com.coffee.softmask-for-ugui",
"displayName": "Soft Mask For uGUI",
"description": "SoftMask is a smooth masking component for uGUI elements in Unity.\nBy using SoftMask instead of default Mask, rounded edges of UI elements can be expressed beautifully.",
"version": "0.5.0",
"version": "0.6.0",
"unity": "2017.1",
"license": "MIT",
"repository": {

5
release.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash -e
# NOTE: Set an environment variable `CHANGELOG_GITHUB_TOKEN` by running the following command at the prompt, or by adding it to your shell profile (e.g., ~/.bash_profile or ~/.zshrc):
# export CHANGELOG_GITHUB_TOKEN="«your-40-digit-github-token»"
bash <(curl -sL 'https://gist.github.com/mob-sakai/e281baa04e1a47148b62387f9c7967df/raw/unity_release.sh')

View File

@ -1,138 +0,0 @@
#!/bin/bash -e
# NOTE: Run the following command at the prompt
# bash <(curl -sL 'https://gist.github.com/mob-sakai/e281baa04e1a47148b62387f9c7967df/raw/unity_release.sh')
# NOTE: Set an environment variable `CHANGELOG_GITHUB_TOKEN` by running the following command at the prompt, or by adding it to your shell profile (e.g., ~/.bash_profile or ~/.zshrc):
# export CHANGELOG_GITHUB_TOKEN="«your-40-digit-github-token»"
# 1. << Input release version >>
echo -e ">> Start Github Release:"
PACKAGE_NAME=`node -pe 'require("./package.json").name'`
echo -e ">> Package name: ${PACKAGE_NAME}"
CURRENT_VERSION=`grep -o -e "\"version\".*$" package.json | sed -e "s/\"version\": \"\(.*\)\".*$/\1/"`
EDITOR_ONLY=`grep -o -e "\"editorOnly\".*$" package.json | sed -e "s/\"editorOnly\": \(.*\),$/\1/"`
UNITY_PACKAGE_MANAGER=`grep -o -e "\"upmSupport\".*$" package.json | sed -e "s/\"upmSupport\": \(.*\),$/\1/"`
read -p "[? (1/8) Input release version (for current: ${CURRENT_VERSION}): " RELEASE_VERSION
[ -z "${RELEASE_VERSION}" ] && exit
read -p "[? Are the issues on this release closed all? (y/N):" yn
case "$yn" in [yY]*) ;; *) exit ;; esac
[ -z $EDITOR_ONLY ] && read -p "[? Is package editor only? (y/N):" ynEditorOnly
case "$ynEditorOnly" in [yY]*) EDITOR_ONLY=true;; *) ;; esac
[ -z $UNITY_PACKAGE_MANAGER ] && read -p "[? Is package for UnityPackageManager? (y/N):" ynUPM
case "$ynUPM" in [yY]*) UNITY_PACKAGE_MANAGER=true;; *) ;; esac
[ "$UNITY_PACKAGE_MANAGER" == "true" ] && RELEASE_VERSION_TAG="${RELEASE_VERSION}" || RELEASE_VERSION_TAG="v${RELEASE_VERSION}"
echo -e ">> OK"
# 2. << Update version in package.json >>
echo -e "\n>> (2/8) Update version... package.json"
git checkout -B release develop
sed -i '' -e "s/\"version\": \(.*\)/\"version\": \"${RELEASE_VERSION}\",/g" package.json
echo -e ">> OK"
# 3. << Check unity editor is exist and no compile error >>
UNITY_VER=`sed -e "s/m_EditorVersion: \(.*\)/\1/g" ProjectSettings/ProjectVersion.txt`
UNITY_EDITOR="/Applications/Unity/Hub/Editor/${UNITY_VER}/Unity.app/Contents/MacOS/Unity"
UNITY_LOG="unity.log"
UNITY_ARGS="-quit -batchmode -projectPath `pwd` -logFile $UNITY_LOG"
UNITY_PACKAGE_SRC=`node -pe 'require("./package.json").src'`
UNITY_PACKAGE_NAME="${PACKAGE_NAME}_v${RELEASE_VERSION_TAG}.unitypackage"
echo -e "\n>> (3/8) Check exporting package is available..."
echo -e "Version: $UNITY_VER ($UNITY_EDITOR)"
echo -e "Package Source: $UNITY_PACKAGE_SRC"
# 3-1. Is src directory exist?
[ ! -d "$UNITY_PACKAGE_SRC" ] && echo -e "\n>> Error : $UNITY_PACKAGE_SRC is not exist." && exit
# 3-2. Is runtime compile successfully?
set +e
if [ "$EDITOR_ONLY" != "true" ]; then
echo -e "\n>> compile for runtime..."
"$UNITY_EDITOR" $UNITY_ARGS -buildOSX64Player `pwd`/build.app
[ $? != 0 ] && echo -e "\n>> Error : \n`cat $UNITY_LOG | grep -E ': error CS|Fatal Error'`" && exit
echo -e ">> OK"
fi
# 3-3. Is exporting package successfully?
echo -e "\n>> Pre export package..."
"$UNITY_EDITOR" $UNITY_ARGS -exportpackage $UNITY_PACKAGE_SRC $UNITY_PACKAGE_NAME
[ $? != 0 ] && echo -e "\n>> Error : \n`cat $UNITY_LOG | grep -E ': error CS|Fatal Error'`" && exit
echo -e ">> OK"
set -e
# 4. << Generate change log >>
CHANGELOG_GENERATOR_ARG=`grep -o -e ".*git\"$" package.json | sed -e "s/^.*\/\([^\/]*\)\/\([^\/]*\).git.*$/--user \1 --project \2/"`
CHANGELOG_GENERATOR_ARG="--future-release v${RELEASE_VERSION_TAG} ${CHANGELOG_GENERATOR_ARG}"
echo -e "\n>> (4/8) Generate change log... ${CHANGELOG_GENERATOR_ARG}"
github_changelog_generator ${CHANGELOG_GENERATOR_ARG}
git diff -- CHANGELOG.md
read -p "[? Is the change log correct? (y/N):" yn
case "$yn" in [yY]*) ;; *) exit ;; esac
echo -e ">> OK"
# 5. << Export unitypackage >>
echo -e "\n>> (5/8) Export unitypackage..."
set +e
cp -f package.json CHANGELOG.md README.md $UNITY_PACKAGE_SRC
"$UNITY_EDITOR" $UNITY_ARGS -exportpackage $UNITY_PACKAGE_SRC $UNITY_PACKAGE_NAME
[ $? != 0 ] && echo -e "\n>> Error : \n`cat $UNITY_LOG | grep -E ': error CS|Fatal Error'`" && exit
set -e
echo -e ">> OK"
# 6. << Commit release files >>
echo -e "\n>> (6/8) Commit release files..."
git add -u
git commit -m "update documents for v$RELEASE_VERSION_TAG"
echo -e ">> OK"
# 7. << Merge and push master and develop branch >>
echo -e "\n>> (7/8) Merge and push..."
git checkout master
git merge --no-ff release -m "release v$RELEASE_VERSION_TAG"
git branch -D release
git push origin master
git checkout develop
git merge --ff master
git push origin develop
echo -e ">> OK"
# 8. << Upload unitypackage and release on Github >>
echo -e "\n>> (8/8) Releasing..."
gh-release --assets $UNITY_PACKAGE_NAME
echo -e ">> OK"
# 9. << Split for upm >>
if [ "$UNITY_PACKAGE_MANAGER" == "true" ]; then
echo -e "\n>> Split for upm..."
git subtree split --prefix="$UNITY_PACKAGE_SRC" --branch upm
git push origin upm
fi
echo -e "\n\n>> $PACKAGE_NAME v$RELEASE_VERSION_TAG has been successfully released!\n"