SAIMA/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader
GrassTE 626f792f11 Squashed commit of the following:
commit 9559cc8882161192a43be22670a8ff69db1ea13a
Author: Roman <1325980292@qq.com>
Date:   Sat Aug 27 19:22:38 2022 +0800

    短学期Log

    任务:替换和实装美术素材
    1.在教程场景布置图标和文字提示内容
    DONE
    2.制作GamePlay中背景元素的动画并实装
    DONE
    3.替换拆迁障碍物美术素材
    DONE

    任务:实装音乐和音效
    1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。
    DONE
    2.实装人摔地音效
    DONE
    3.实装人跑动音效
    效果不好
    DONE
    4.实装人马分离音效
    DONE
    *.补充实装人降落到马上的音效
    DONE
    5.实装创烂障碍物音效
    DONE
    6.实装圣火点燃音效
    DONE
    7.实装马磕磕碰碰音效
    DONE
    8.实装马似音效
    DONE
    9.实装马着地音效
    DONE
    10.实装马起跳音效
    DONE
    11.实装马蹄点地音效
    效果不好
    DONE

    任务:实装特效
    1.实装后处理
    DONE
    2.实装日夜更替
    DONE
    3.实装树叶飘落
    DONE
    4.实装圣火粒子
    效果不好
    DONE
    5.实装破碎灰尘
    效果不好
    DONE
    6.实装马蹄灰尘
    DONE
    7.实装红黑闪特效
    DONE

    任务:完善没写的零散逻辑
    1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马
    **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修
    已修复
    DONE

    2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑
    DONE

    3.开发GamePlay距离记录和重开系统
    DONE

    4.策划要在点燃圣火时镜头放大,体现标题感
    URP相机不太好做
    ABANDON

    5.人的死亡动画逻辑之前没做
    DONE

    任务:测试并修复Bug
    DONE

    修复Bug
    1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。
    已修复
    DONE
    2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。
    DONE
    3.跑步动画和跑步音效完全对不上
    加快跑步动画
    DONE
    4.原爆破给力范围太大,会导致旧的碎片也被波及
    已修复
    DONE

commit cab00851df5e4da70b981c564888c53d86de1f95
Author: Roman <1325980292@qq.com>
Date:   Sat Aug 27 02:51:21 2022 +0800

    短学期Log

    任务:替换和实装美术素材
    1.在教程场景布置图标和文字提示内容
    DONE
    2.制作GamePlay中背景元素的动画并实装
    DONE
    3.替换拆迁障碍物美术素材
    DONE

    任务:实装音乐和音效
    1.为两个场景添加音乐,并且在GamePlay场景不重开音乐。
    DONE
    2.实装人摔地音效
    DONE
    3.实装人跑动音效
    DONE
    4.实装人马分离音效
    DONE
    5.实装创烂障碍物音效
    DOING
    6.实装圣火点燃音效
    7.实装马磕磕碰碰音效
    8.实装马似音效
    9.实装马着地音效
    10.实装马起跳音效

    任务:实装特效
    ……

    任务:完善没写的零散逻辑
    1.在教程场景,若人马分离障碍处没接到人,过一个转场然后复位人和马
    **:仍然存在问题,当如此,人的动画失效。这个问题现在不好修,等待人的死亡动画实装后再修
    WAIT
    2.在教程场景,点燃圣火仅有进入触发器后加载转场然后转移场景的功能,没有点燃圣火的过程,现补充其逻辑
    DONE
    3.开发GamePlay距离记录和重开系统
    ……

    修复Bug
    1.在教程场景,可破坏障碍物的碎片的层级不对,创烂瞬间会有层级突变的问题。在GamePlay层级,也出现了这个问题。
    2.现在的高障碍实在太高了,基本有80%以上的概率导致马翻,应该调低障碍物、或者调大马的跳跃力度。

commit 3f0c9dd791c66e7222d6dbb72d8b762b73f06aed
Merge: e6888a7 bc74426
Author: Roman <1325980292@qq.com>
Date:   Fri Aug 26 18:13:00 2022 +0800

    Merge branch 'Saipo' of https://e.coding.net/gensokyogroup/saima/SAIMA into Roman

    # Conflicts:
    #	UserSettings/EditorUserSettings.asset
    #	UserSettings/Layouts/CurrentMaximizeLayout.dwlt
    #	UserSettings/Layouts/default-2021.dwlt

commit e6888a748dc7188bd3c2f7ce4bceade7402f8cec
Author: Roman <1325980292@qq.com>
Date:   Fri Aug 26 18:11:05 2022 +0800

    任务:编写教程和开始场景
    分析:分为五个阶段,每个阶段一屏宽。前四个阶段是教程阶段,分别仅放一种障碍(第一个无障碍)和提示,提示参照茶杯头教程关。
    每个阶段间有明显间断、镜头固定,但当马通过该阶段的障碍后,镜头右移一个阶段。马不能倒退,相机左侧有空气墙。
    到达最终阶段后,按流程点燃圣火进入游戏

    设计:
    1.搭建核心场景,放置障碍物。
    DONE
    2.设计教程及开始场景管理器
    (1.控制相机,使马每通过一个阶段,相机运动到记录的位置
    DONE
    (2.给相机左侧添加空气墙
    DONE
    (3.管理器要明确记录此时玩家处于哪个阶段
    DONE
    (4.当玩家进入点燃圣火触发器,切断操控,等待动画结束或者一些信号,触发从右向左的渐变黑幕遮挡全屏,随后转场到新场景。
    DONE

    至此,基本逻辑完成,需要补充大量细节、替换大量美术素材。

    修复问题:
    1.人马分离障碍连续出现可能导致致命问题,修复使其不能连续出现
    DONE
    2.GamePlay中,远处的山需要补充运动逻辑
    DONE

commit 5d922db6142634cdd20aa7801c0b3c1c4994360c
Author: Roman <1325980292@qq.com>
Date:   Wed Aug 24 17:59:05 2022 +0800

    任务:制作人物动画逻辑
    1.当人物处于Normal时,重复播放骑在马上的动画
    2.当人物被射出,播放一次跳上动画,之后停在最后一帧,等待落到平台上。
    3.当人物进入Walk态,开始重复播放跑步动画。
    4.当人物开始降落,触发一次跳下动画,停在最后一帧
    5.当Recover结束,状态恢复为Normal,重回到骑在马上动画
    DONE

commit d1fe07492af5ce6ea736ef738eb3e38170a08066
Merge: 436eaf0 5e10767
Author: Roman <1325980292@qq.com>
Date:   Wed Aug 24 10:42:58 2022 +0800

    Merge branch 'Saipo' of https://e.coding.net/gensokyogroup/saima/SAIMA into Roman

    # Conflicts:
    #	UserSettings/Layouts/default-2021.dwlt

commit 436eaf01046248372e887eb8276f38e021915790
Author: Roman <1325980292@qq.com>
Date:   Wed Aug 24 10:40:51 2022 +0800

    为了拉取的提交,少量修改
2022-08-27 21:30:16 +08:00

117 lines
2.6 KiB
Plaintext

Shader "TextMeshPro/Sprite"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
_Color ("Tint", Color) = (1,1,1,1)
_StencilComp ("Stencil Comparison", Float) = 8
_Stencil ("Stencil ID", Float) = 0
_StencilOp ("Stencil Operation", Float) = 0
_StencilWriteMask ("Stencil Write Mask", Float) = 255
_StencilReadMask ("Stencil Read Mask", Float) = 255
_CullMode ("Cull Mode", Float) = 0
_ColorMask ("Color Mask", Float) = 15
_ClipRect ("Clip Rect", vector) = (-32767, -32767, 32767, 32767)
[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
}
SubShader
{
Tags
{
"Queue"="Transparent"
"IgnoreProjector"="True"
"RenderType"="Transparent"
"PreviewType"="Plane"
"CanUseSpriteAtlas"="True"
}
Stencil
{
Ref [_Stencil]
Comp [_StencilComp]
Pass [_StencilOp]
ReadMask [_StencilReadMask]
WriteMask [_StencilWriteMask]
}
Cull [_CullMode]
Lighting Off
ZWrite Off
ZTest [unity_GUIZTestMode]
Blend SrcAlpha OneMinusSrcAlpha
ColorMask [_ColorMask]
Pass
{
Name "Default"
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma target 2.0
#include "UnityCG.cginc"
#include "UnityUI.cginc"
#pragma multi_compile __ UNITY_UI_CLIP_RECT
#pragma multi_compile __ UNITY_UI_ALPHACLIP
struct appdata_t
{
float4 vertex : POSITION;
float4 color : COLOR;
float2 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
fixed4 color : COLOR;
float2 texcoord : TEXCOORD0;
float4 worldPosition : TEXCOORD1;
UNITY_VERTEX_OUTPUT_STEREO
};
sampler2D _MainTex;
fixed4 _Color;
fixed4 _TextureSampleAdd;
float4 _ClipRect;
float4 _MainTex_ST;
v2f vert(appdata_t v)
{
v2f OUT;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
OUT.worldPosition = v.vertex;
OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
OUT.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
OUT.color = v.color * _Color;
return OUT;
}
fixed4 frag(v2f IN) : SV_Target
{
half4 color = (tex2D(_MainTex, IN.texcoord) + _TextureSampleAdd) * IN.color;
#ifdef UNITY_UI_CLIP_RECT
color.a *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
#endif
#ifdef UNITY_UI_ALPHACLIP
clip (color.a - 0.001);
#endif
return color;
}
ENDCG
}
}
}