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

完成于2017-11-06

价格 免费

类 声明的变量 称之为对象;

类要使用,必须实例化,Null也可以

 

 如果想要访问其他类中的变量,首先变量要事Public 公共的变量,才可以被其他类访问

 

[展开全文]
陳耿耿 · 2021-11-05 · 该任务已被删除 0

类!!!!!!

C#中可以有多个类

类下面写方法
 

各个类中可以进行继承调用

类的定义

class Eneny{

 

}

类的声明

 

 

类的创建

Eneny eneny_file= new Eneny();

[展开全文]
陳耿耿 · 2021-11-05 · 该任务已被删除 0

方法内部的变量在其他方法内无法使用

return 返回的变量名称;

[展开全文]
陳耿耿 · 2021-11-05 · 该任务已被删除 0

方法中参数的作用
有可变参数,和不可变的参数
可变参数就是动态的
不可变参数就是静态的

使用带有参数的方法可以有效地提高代码复用性,

而且可以传入不同的参数,也就是不同的属性,就可以调用不同属性的方法,挺好使

 

[展开全文]
陳耿耿 · 2021-11-05 · 该任务已被删除 0

第一种:定义一个游戏物体、定义一个组件。若定义一个组件,则队形物体需要有该组件

第四种:根据标签

GO 变量名=GO.FindWithTag("标签名");

[展开全文]
CoffeeSpot · 2021-11-03 · 该任务已被删除 0

调用物体本身的组件:GetComponent<组件名>();

调用其他物体的组件:先定义一个GameObject类,再在监视器把其他物体拖拽过来,即可用其他物体.GC<>();方法调用

[展开全文]
CoffeeSpot · 2021-11-03 · 该任务已被删除 0

transform指当前游戏物体

[展开全文]
CoffeeSpot · 2021-11-03 · 该任务已被删除 0

取反:!,针对bool

!ture是false

[展开全文]
CoffeeSpot · 2021-11-02 · 该任务已被删除 0

监视器中可看到的变量的值若与脚本不同,以监视器定义的为准

GameObject是一个定义游戏物体的类,可以直接定义游戏物体

[展开全文]
CoffeeSpot · 2021-11-02 · 该任务已被删除 0

using是命名空间,命名空间下包含类

 

可通过namespace+命名,来定义一个命名空间

 

定义了命名空间后,就可以在其他类中调用这个命名空间下的类了。

区别之前在其他类中调用这个类下的方法,是用public+方法实现。

[展开全文]
CoffeeSpot · 2021-11-02 · 该任务已被删除 0

反复看

[展开全文]
CoffeeSpot · 2021-11-02 · 该任务已被删除 0

输出方式:

1、print

2、

[展开全文]
故人心易变 · 2021-10-28 · 该任务已被删除 0

获取GameObject的方式:

1,拖拽获取

先在字段中定义(定义成public),然后进行拖拽

字段中定义的是什么类型,那么在将GameObject拖拽之后,就会自动去查找该GameObject中的这个类型的组件进行获取

如果这个GameObject中没有这个类型的组件,那么自然在Unity中是无法拖拽过去的

2,通过transform.Find(该方法只能获取子物体)

transform.Find("GameObject (1)/GameObject")

Find函数的参数是字符串,在字符串中输入子物体的名字(路径)即可查找。如果路径不存在,会返回Null值

3,GameObject.Find("Main Camera")

会返回第一个以这个名字命名的游戏物体

但是这个方法不推荐使用,因为它需要在整个场景,在全局进行遍历、查找,因此而耗费性能

4,根据标签进行查找

GameObject.FindWithTag("Player")

通过函数参数的标签名即可查找到GameObject

[展开全文]
糖醋排骨红烧肉 · 2021-10-28 · 该任务已被删除 0

在代码中禁用组件(只有部分组件能够禁用,会在Inspector界面有带打勾的选项,例如Rigidbody组件就没有办法禁用):

同样的,先通过代码进行组件的获取;

然后通过以下代码可以禁用组件:

组件名.enabled = false

激活同理

当然,禁用了之后,这个组件里的方法仍然可以调用,无论是内置方法还是自定义的方法

 

调用组件的内部属性:

组件名.属性

[展开全文]
糖醋排骨红烧肉 · 2021-10-28 · 该任务已被删除 0

访问自身组件:

Transform t = GetComponent<Transform>();

实际上Transform组件是无需通过这种方式获取的,因为它是一个内置的自带的组件,这里只是举个例子

 

也可以通过这种方式获取多个组件

Collider[] colliders = GetComponents<Collider>();

再进行遍历:

foreach (Collider n in colliders){

    

}

如果只想得到多个组件中的某一个可以GetComponent<BoxCollider>()

 

GetComponent方法无论该组件有没有被禁用都是可以获得这个组件的

 

如果要获取子物体的组件,可以GetComponentInChildren<Transform>()只会返回第一个得到的组件

 

如果要获取别的GameObject的组件,需要先定义字段,然后通过拖拽赋值,再在代码中通过

类名.GetComponent<组件名>()

进行获取

[展开全文]
糖醋排骨红烧肉 · 2021-10-28 · 该任务已被删除 0

 用foreach语句遍历数组:

foreach(类型名 t in 数组名){

 

}

t就代表数组里的每一个元素

 

 

[展开全文]
糖醋排骨红烧肉 · 2021-10-27 · 该任务已被删除 0

 可以通过以下语句获取子物体:

Transform[] children = transform.GetComponentsInChildren<Transform>();

注意这里同样包含了当前游戏物体

如果要判断是不是当前游戏物体,可以通过以下语句实现:

(省略for循环)

children[i] == transform

 

可以通过以下语句进行GameObject的销毁(GameObject类的自带方法)

GameObject.Destroy()

 

dowhile循环:

do{

 

}

while();

这种循环类型是先do,所以至少会循环一次

[展开全文]
糖醋排骨红烧肉 · 2021-10-27 · 该任务已被删除 0

if适用于情况少一点时

switch语法:

switch (参数){

    case 条件1:

        

          break;

    case 条件2:

        

          break;

    default:

 

          break;

}

其中default语句可添可不添

且break是一定要的

如果n个case语句挨着,比如:

case 条件1:

case 条件2:

    

      break;

则意思是,如果满足条件1或者条件2(或者更多)时,会执行下面的语句

 

switch语句的局限:switch语句只能判断是不是,不能够像if语句一样灵活地判断范围

[展开全文]
糖醋排骨红烧肉 · 2021-10-27 · 该任务已被删除 0

枚举类型:

enum HeroType{

    Soldier,

    Master,

    Tank,

    Shooter

}

 

声明时:

HeroType heorType = HeroType.Soldier;

后续判断时:

if (heroType == HeroType.Soldier)

[展开全文]
糖醋排骨红烧肉 · 2021-10-27 · 该任务已被删除 0

运算符分类:

1,数学运算符

2,赋值运算符

3,比较运算符

4,逻辑运算符

&& || !

[展开全文]
糖醋排骨红烧肉 · 2021-10-27 · 该任务已被删除 0

授课教师

加我的QQ问问题:804632564

课程特色

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