Shader "Custom/World/Cut"
{
Properties
{
_MainTex ("Albedo (RGB)", 2D) = "white" {}
_pov("pov", int) = 0
_pos("Vector",vector) = (0,0,0,0)
}
SubShader
{
CGPROGRAM
//surface
#pragma surface surf Lambert
//model
#pragma target 3.0
//vars
sampler2D _MainTex;
int _pov;
fixed4 _pos;
struct Input
{
float2 uv_MainTex;
float3 worldPos;
};
void surf(Input IN, inout SurfaceOutput o)
{
switch (_pov)
{
case 0:
clip(IN.worldPos.z > _pos.z ? 1 : -1);
break;
case 1:
clip(IN.worldPos.x < _pos.x ? 1 : -1);
break;
case 2:
clip(IN.worldPos.z > _pos.z ? 1 : -1);
break;
case 3:
clip(IN.worldPos.x < _pos.x ? 1 : -1);
break;
}
o.Albedo = tex2D(_MainTex, IN.uv_MainTex).rgb;
}
ENDCG
}
FallBack "Diffuse"
}
Рубрика: Unity «GameObject»
универсальный Игровой Объект на Сцене
Shader "Name"
{
[Properties]
CGINCLUDE
Код на языке CG
ENDCG
SubShader
{
CGPROGRAM
Код на языке CG
ENDCG
}
[Fallback]
}
//загрузка ui префабаvar go = PrefabUtility.LoadPrefabContents(ФайлПрефаба);
//после переноса объекта в родитель изменятся Scale
go.transform.SetParent(gameObject.transform);
//получение компонента Трансформация у элемента ui
var rt = go.GetComponent<RectTransform>();
//настройка центра элемента ui
rt.pivot = Vector2.zero;
//масштаб элемента ui
rt.localScale = Vector3.one;
//размеры ui элемента width,height,depth
rt.sizeDelta = new Vector3(60, 30, 0);
//изменить Top координаты элемента относительно родителяrt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0.5f*(gameObject.transform.childCount-2)* (rt.rect.height+10), rt.rect.height);
//изменитьRight
координаты элемента относительно родителяrt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Right, rt.sizeDelta.x, rt.rect.height);
//изменение центра элемента ui по оси xrt.pivot = new Vector2(2,0);
//Растянуть ui элемент относительно родителя по оси xrt.localPosition = new Vector3(0, rt.localPosition.y, 0); rt.anchorMin = new Vector2(0, 0.5f);
rt.anchorMax = new Vector2(1, 0.5f);
//После можно прилепить ui вверх относительно родителяrt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Top, 0.5f * (gameObject.transform.childCount - 2) * (rt.rect.height + 10), rt.rect.height);
//прилепить ui элемент вверх-слева относительно родителя
rt.SetInsetAndSizeFromParentEdge(RectTransform.Edge.Left, 0, rt.rect.height);
//изменить LEFT
rt.offsetMin = new Vector2(left, rt.offsetMin.y);
//изменить RIGHT
rt.offsetMax = new Vector2(right, rt.offsetMax.y);
//изменить TOP
rt.offsetMax = new Vector2(rt.offsetMax.x, top); //изменить BOTTOM
rt.offsetMin = new Vector2(rt.offsetMin.x, bottom);
Shader
struct appdata
{
float4 texcoord: TEXCOORD0;
};
void vert(inout appdata v,out Input o)
{
UNITY_INITIALIZE_OUTPUT(Input, o);
o.tex = v.texcoord;
}
struct Input
{
float2 UV;
};
void surf(Input IN, inout SurfaceOutput o) { float X = IN.UV.x } | int x=(int)(X+0.001) | int x=(int)(X) | float x |
clip(x ==7 ? 1 : -1) | + | — | — |
clip(x >5.9 && x < 7.1 ? 1 : -1) | + | + | + |
clip(x > 6.99f && x < 7.01 ? 1 : -1) | + | — | + |
- Установить координаты поворота GameObject
//пример установки координатов поворота GameObject go по оси y на 90 градусов,x=0 и y=0 go.transform.eulerAngles = new Vector3(0, 90.0f, 0);