一、阐释学习编程的重要性
如今的游戏行业中出现来越来越多的"中间岗位",类似技术美术,技术策划,战斗策划。他们本来都是非程序岗,通过掌握了一定的编程能力,起到了一个连接两个工作岗位的作用。但是这些岗位的人员大多都不是计算机科班出身,学习编程有着不小的障碍。本文推荐一个学习方式,或许可以让0基础人员找到一点编程的感觉。
二、阐述美术人员应该如何开始学习
要想编写代码首先要准备一个编写代码的环境。编程语言众多,如流行的诸如C++,Java,C#,Javascript等。大多数编程语言的编程环境的准备也足以称得上复杂了,可能需要安装IDE和各种包,或者是配置环境变量之类的。有些东西即使是程序员也不一定保证能够记住。
这些繁琐的东西会极大消耗0基础的人的学习热情。要学习编程的一些基本概念,本文推荐学习javascript,它语法简单,而且使用任意的浏览器就可以开始编程,不需要再安装任何东西。
三、Javascript浏览器编程环境准备
用浏览器打开任意的网站,按F12会出现下图的一个界面,选择Sources选项栏
点击New snippet会创建出蓝色框框选的界面,这个界面就是我们编写代码的地方。只需要两步,编写代码的环境就准备就绪了。
编写好代码之后,右键箭头处点击Run就可以执行编写好的脚本了。
四、Javascript语言的基本概念
以下是Javascript中的一些基础的概念,他们在其他所有语言中也是通用的。
1 变量
变量就像是用来存储数据的容器,变量有很多种容器,每种不同的容器专门用来存储不同的数据。每个变量还要有个名字,这样想要取出某个容器里的数据时,用这个变量的名字就行了。
(1) number
用来保存数字的变量。比如常用的Smoothness就算是个number变量
let Smoothness = 1;
(2) string
这个变量存储的是字符串,编程语言中用“”符号包裹起来的就是字符串。
let name = "Admin" //name容器里保存了"Admin"这个名字
Shader文件中这一行的"Smoothness"也可以算是一个字符串
_StpSmooth ("Smoothness", Range(0,1)) = 0
(3) boolean
这边变量成为布尔,保存的数据只有true,和false两种。通常结合流程控制用去做一些条件判断javascript
let isWorking = false;
(4) function
函数是一个相当重要的概念,所有编程语言中都有,unity中shader文件中的vert(),frag()之类的都是函数。
其实函数的概念我们在初高中阶段数学就已经学习了。比如一元一次函数f(x) = x + 1,这就是我们数学表达中的函数。向函数传入一个数字,输出这个数字+1的一个值。
那在Javascript中是如何来描述一个这样的函数呢?
function f(x){
return x + 1
}
let age = f(10) //f(10)计算得到结果11,所以现在age中保存的数字是11
以上的代码完成了对数学函数f(x) = x + 1的程序化表达。
function是语言规定必须带上表明这是一个函数。
f是函数的名字,可以自己任意取名。
return 则是将x+1的结算结果返回。
2 流程控制
流程控制也是初中数学开始学习的,如下图是一个经典的流程控制图。其中就包含了if条件判断
(1) if else条件判断
上图中的菱形就是一个条件分支判断,如果菱形里的条件为真,就走左边的流程,否则就走右边的流程。
如果将上面的流程图编程为函数的话就是这样。
function f(x){
if(x < 2){
return 2 - x;
} else {
return x - 2;
}
}
(2)循环
循环就是当满足某些条件就一直执行,直到条件不满足。比如下面这个流程图,输入一个n,当n小于2000时,就把n增加3,然后再判断n是否小于2000,循环往复的执行这个流程,直到n大于2000,整个流程图就结束了。
要编程表达这样一个带循环的流程图,有两种办法可以做到。
2.1 for循环
for循环的结构比较特殊,一条for循环代码包含了多条语句。
for(初始化语句;条件判断语句;迭代语句;);
-
初始化语句定义循环的起点
-
条件判断语句判断循环是否还能够继续,如果判断为假,则循环就结束了。
-
迭代语句控制了循环前进的步长
for(let n = 1; n < 2000; n = n + 3){
//TODO
}
2.2 while
while循环就比较简单,只要n < 2000就会一直执行循环,但是如果没有执行n = n + 3就会变成死循环卡死程序了。
let n = 1;
while(n < 2000) {
n = n + 3;
}