40063人加入学习
(83人评价)
Unity中的C#编程 - 零基础(Unity 2017)

完成于2017-11-06

价格 免费

for 循环语句

循环执行一段代码

for (int i= 0; i<=10; i++; );

{

print ("创建一个人")

}

[展开全文]
蒲庙 · 2018-11-25 · 该任务已被删除 0

int[] pg={1,2,3,4,5};

pg[3] = 60;修改数组的值

print(pg[3])=60;

数组声明第二种方式

int [] hp = new int[20];

数组长度为20

访问后输出的值是默认值

null 空值

 

 

 

[展开全文]
蒲庙 · 2018-11-29 · 该任务已被删除 0

数组:类型【】 数组名 = {数组值}

int 【】ps = {1 , 2 ,3 ,5 , 8} 数组长度为5

print(ps[1]);

输出结果为2

最大索引长度为5-1=4

索引从0开始

通过索引来访问数据

数组名【索引】

 

 

[展开全文]
蒲庙 · 2018-11-28 · 该任务已被删除 0

if语句:if(逻辑表达式:必须返回一个true或者false)如果是true的话执行大括号里面的代码,false的话不会执行。

else语句:如果不满足if语句就执行

int gta =  666;

if(gat<123);

{

   print("显示死亡画面")

}

else

{

   print("显示行动画面")

}

 

[展开全文]
蒲庙 · 2018-11-25 · 该任务已被删除 0

比较运算符

操作数1 运算符 操作数2

int hp = 100;

bool qwe = hp>0;

print(qwe);

结果输出 true

操作数1大于操作数2输出true

小于的话false

等于也是false

int hp = 100;

hp = hp + 20 可以等于 hp += 20;

hp = hp - 20 可以等于 hp -= 20;

自增运算符 ++ --

hp++ = hp + 1;

hp-- = hp - 1;

 

[展开全文]
蒲庙 · 2018-11-28 · 该任务已被删除 0

算数运算符

+ 加

- 减

* 乘

/ 除

%  求余

int a=9; int b=3.1;

int ok =a/b;

print (ok);

//整数相除,小数会被舍去

float ok1 =1+1.9 //多个数据类型运算,返回的结果类型是数据类型大的

string gtr1 = "my name is";

string gtr2 = "huo che wang"

nissangtr = gtr1+gtr2;

print (nissangtr);

 

 

 

[展开全文]
蒲庙 · 2018-11-28 · 该任务已被删除 0

bool(布尔类型) 他的取值范围只有true或false

bool isDie = false 未死亡

'C'=字符

"asdfgsd"=字符串

 

 

[展开全文]
蒲庙 · 2018-11-25 · 该任务已被删除 0

不同类型存储单位不一样

常量无法变化

变量可以变化

声明变量时要考虑使用过程中变化范围 然后选择合适的整数去存储这个变量 不同变量类型所占内存的大小不一样

float hp2= 3.4 // double

float hp2= 3.4f //float

 

 

 

 

[展开全文]
蒲庙 · 2018-11-28 · 该任务已被删除 0

int up; 声明变量

hp=100;赋值

 

 

[展开全文]
蒲庙 · 2018-11-24 · 该任务已被删除 0

注释快捷键 Ctrl+k Ctrl+c

int hp =100;声明变量

int 数据类型 hp 变量名 100 值

变量用来存储数据

变量名必须以字母或下划线开头

赋值:右边的值给左边变量

 

 

 

 

[展开全文]
蒲庙 · 2018-11-28 · 该任务已被删除 0

Debug.Log 输出

Debug.LogWarning 输出警告

Debug.LogError 错误输出

 

 

 

[展开全文]
蒲庙 · 2018-11-28 · 该任务已被删除 0

// 注释

/*  */ 多行注释

 

[展开全文]
蒲庙 · 2018-11-25 · 该任务已被删除 0

1.禁用组件

刚体组件没办法禁用,因为刚体组件身上没有勾;

可以禁用碰撞器组件;

BoxCollider collider = GetComponent<BoxCollider>();

collider.enabled = false;   //禁用了组件;

组件被禁用后,组件中的方法依然可以被调用,

比如把前面说所的脚本player给禁用了。

先禁用player脚本,在调用里面的方法Start,

注意在其他组件中调用这个函数,必须在它本身的脚本把start这个方法公开;

Player.Start();    //调用player脚本中的方法 ,可以调用脚本中内置的方法,也可以调自定义的方法。注意的是调用的脚本中其他组件被经验了,而那个方法中涉及这个组件,在执行方法时,这个组件是无效的,比如说,在游戏物体的另一个物体中写了一个碰撞的方法,但碰撞器是禁用的,当执行这个碰撞的方法时,不会触发碰撞事件;

2.访问组件里面的属性

修改刚体的质量:

Rigidbody rgd = player .GetComponent<Rigidbody>();

rgd.mass = 100;

 

 

[展开全文]
瞴眳 · 2018-11-24 · 该任务已被删除 0

1.Transfrom t = GetComponent<Transform>();

2.Collider [ ] = GetComponts(Collider)(); //得到所用的碰撞器;

3.GetComponent<BoxCollider>();

4.拖拽赋值

public  player player_script ;    //在inspector面板中可以拖拽赋值;

可以通过代码获取前面的禁用的脚本;

GetComponent<Player>();

注意:不管游戏物体里的所有组件都能获取,不管是否被禁用;

5.获取子物体身上的组件:

GetCompoentsInChildren<>();

GetCompoentInChildren<>();

6.获取另外一个物体身上的组件

先通过拖拽获得,或其他方法获取其他游戏物体;

首先获取一个游戏物体:

public GameObject player;  //player是一个命名,不是其他物体的名字;其实这里的GameObject相当于ue4中的actor;

play.GetComponent<Rigidbody>()  //获得其他物体身上的组件;

[展开全文]
瞴眳 · 2018-11-24 · 该任务已被删除 0

1.遍历

foreach (Transform t in children){

   print(t);

if(t!=transform)

         Destory(t.gameobject);

}   //其中t 代表数组元素序号  在里面输出一下

 

[展开全文]
瞴眳 · 2018-11-24 · 该任务已被删除 0

1.销毁子物体

Transform【】children =transform.GetComponentsInChildren<>();

for(int i = 0; i < children.Length; i++){

GameObject.Destroy(childeren[i].gameobject);

}

发现父对象也消失,

添加以条件

if(children【i】!=transform){

   GameObject.Destroy(childeren[i].gameobject);

}

2.while

int i=0;

while(i<children.Length){

     if(children.Length!=transform)

{GameObject.Destroy(children[i].gameobject);                   }

      i++;

}

 

do{

 

}while();

while 和dowhile 的区别在与while满足条件时,才会执行,dowhile 时先执行,如果满足条件,将会继续执行。

注意:Transform是一个类,用来描述物体的位置,大小,旋转等等信息。
transform是Transform类的对象,依附于每一个物体。
Translate是Transform类的一个方法,用来改变物体的位置。

 

 

 

 

[展开全文]
瞴眳 · 2018-11-23 · 该任务已被删除 0

1.if用于某个范围的,比较有规律性的条件

Switch方法:

int i =3;

switch(i){

case 1:

       print("i=1");

       break;

case 2:

         print("i=2");

         break;

case3;

         print("i=3");

         break;

default:

         print("default");

         break;

}  //注意当case中的条件不满足的时候,会执行default,这个相当于else;

改为枚举类型变量

switch (heroType){

case HeroType.Soldier;

       print("int =1");

       break;

记住break一定要写上,break是用来跳出的;

3.有一种情况只能使用if,加血,条件是一个范围,

比如血量是小于20的时候,能够使用医疗箱,血量在20和40之间使用绷带,等等只能使用if判断,能使用switch的地方,可以使用if,当if用作范围判断时,switch不能判断。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[展开全文]
瞴眳 · 2018-11-23 · 该任务已被删除 0

1.if方法

int heroType=0;  //1solder  2master 3 assassin 4tank  5shooter;

if(heroType==1){

}else if (heroType==2){

}else if(heroType==3){

}elseif(heroType==4){

}else{

}

但if语句没有更大括号的时候,默认后面的跟着的一条语句,只能是一条。

比如:if(heroType==1)

          print("Hello");

等价于

          if(heroType==2){

          print("Hello");

}

2.枚举类型

先定义枚举类型: enum HeroType{

                                          Solider,

                                          Master,

                                          Assassin,

                                           Tank,

                                           Shooter

}

HeroType  heroType =HeroType.Soldier;

if(heroType==HeroType.Soldier){

}else if (heroType==HeroType.Master){

}else if(heroType==HeroType.Assassin){

}elseif(heroType==HeroType.Tank){

}else{

}

 

 

[展开全文]
瞴眳 · 2018-11-23 · 该任务已被删除 0

1.数学运算符

+ - * /  % 等

2.赋值运算符

3.逻辑运算符(bool)

&&  ——逻辑与    ||——逻辑或     !取反;

 

 

[展开全文]
瞴眳 · 2018-11-23 · 该任务已被删除 0

1.声明变量

在脚本中声明一个变量,并公开且初始化处理;

比如public int a = 10;

保存,点击脚本附加的游戏物体,在Inspector面板中的Script组件一栏,会多一个元素,a 并显示10,后面在脚本中更改a的参数,但在外面inspector中没有改变。保持第一次初始化的值;

如果第一次a没有赋值,那么在inspector面板中默认是0的值。

在第二次修改a的值,在inspector中不会更改,当脚本中的a的值与inspector中的值不同时,在

void start(){

print(a);  //

}

运行游戏,发现在console的日志输出中显示的值与inspector中a的值是一样的,所以在后续中要更改a的值,可以不在脚本中更改。在脚本中更改没有什么效果,可以直接在inspector张进行更改。

Private int a =10;

Private 是私有的,能在inspector面板中显示,也不能在其中修改;

2.什么时候使用private ,什么时候使用Public;

如果你想通过inspector面板方便的修改参数的值的时候,可以设定为public,

你可以在别的地方去引用这个变量时设置为public;

public GameObject Object;//Game Object类型可以直接赋值一个游戏物体过来,比如摄像机、灯光、网格等;

通过拖拽赋值缺点:可能出现数据丢失,比如低版本在高版本中打开,拖拽赋值的数据可能会发生丢失现象,要重新拖拽赋值。

3.定义变量时,没有定义public和private,默认为private;

4.字段名不能跟关键字相同;

关键字:int float  class,与程序语法相关的;

 

[展开全文]
瞴眳 · 2018-11-23 · 该任务已被删除 0

授课教师

问问题加入A计划,有专门负责答疑的老师哦!!!

课程特色

下载资料(2)
视频(37)

学员动态