- Операторы
- swith
- условные операции, операции ветвления
- switch(x) {
- case ‘value1’: // if (x === ‘value1’) … break;
- case ‘value2’: // if (x === ‘value2’) … break;
- default: … break;
- }
- swith
- String
Работа с текстом
символ начинается с 0!- вложенный текст
- весь текст после 2 символа
- text=text.substr(2);
- заменить вложенный текст в другой вложенный текст
- let new_text=text.replace(subtext1,subtext2);
- поиск вложенного текста
- поиск первого вложенного текста
- let index=text.indexOf(text);
- поиск последнего вложенного текста
- let index=text.lastIndexOf(text);
- поиск первого вложенного текста
- весь текст после 2 символа
- вырезать текст
- l длинна вырезаемого текста
- s старт вырезаемого текста
- str.slice(s,l)
- удалить последний элемент текста
- text=text.slice(0, -1);
- проверка текста на пустоту и удаление невидимых символов
- (переход на следующую строку)
- text.trim() == »
- выполнить текст-код
- let arr=eval(data);
- вложенный текст
- События
- ev событие
управление
- элемент DOM на котором выполняется событие
- let e=ev.currentTarget();
- ev событие
- Массивы
- базовые свойства
- ассоциативный массив Array(0) нет индексов
- arr.length==0
- перебор массива или выборки
- пройтись по массиву или объекту
- arr.forEach(function(item, i, data) {code});
- Array.from(arr, (item,index)=>{code});
- for(var i=0;i<arr.length;i++){arr[i]};
- пройтись по массиву или объекту
- преобразование
- строка в массив через
\n
- let arr=text.split(
\n
);
- let arr=text.split(
- массив в строку через
\n
- let text=arr.join(
\n
);
- let text=arr.join(
- проверка на массив
- Array.isArray(obj);
- строка в массив через
- ассоциативный массив Array(0) нет индексов
- базовые свойства
- Объекты
- перебор свойств
- for (let key in obj){ obj[key] }
- перебор свойств
- Синтаксис T функций
- открытие тега-корня модуля
- return{…html:[
- закрытие тега-корня модуля
- ]};
- открытие вложенности тега
- {…html:[
- закрытие вложенности тега
- ]},
- открытие тега-корня модуля
- ERRORS
- дублируется контент при повторном выполнении
- привязан одинаковый класс к тегам
- которые содержат контент
- привязан одинаковый класс к тегам
- дублируется контент при повторном выполнении
Рубрика: Стек Технологий
Геометрический шейдер [maxvertexcount(3)] void geo(triangle float4 IN[3]:SV_POSITION, inout TriangleStream<geometryOutput> triStream) { код }
Путь к папке с хранением модулей
1 вариант. C:\Program
2 вариант. путь, где расположен шейдер
Файл
Name.cginc
Имя файла не должно совпадать с именем функции внутри модуля
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"
}
Shader "Name"
{
[Properties]
CGINCLUDE
Код на языке CG
ENDCG
SubShader
{
CGPROGRAM
Код на языке CG
ENDCG
}
[Fallback]
}