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

完成于2017-11-06

价格 免费

获取游戏物体的四种方式

访问相机,游戏物体:

public GameObject cameraMain;

访问某个特定的组件:

piblic Camera mainCamera;  //访问mainCamera组件

查找游戏物体:

transform.Find("访问的游戏物体路径")

查找游戏子物体:

transform.Find("游戏物体路径/物体下子物体路径")

通过标签查找

GameObject player=GameObject.FindWithTag("player");

print(palyer);  // palyer是标签 

[展开全文]
柏衍 · 2020-08-21 · 该任务已被删除 0

组件的禁用和激活

进入组件:

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

禁用组件:

BoxCollider collider=GetComponent<BoxCollider>();

collider.enabled=false;  //禁用盒子碰撞器访问

组件里面的属性

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

rgd.mass=100;  //以Rigidbody为例

[展开全文]
柏衍 · 2020-08-21 · 该任务已被删除 0

组件的获取

一个游戏物体可以挂载多个相同的组件

在Strat中输入:

Transform t=GetComponent<Transform>();

print(t);   访问自身的Transform组件

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

foreach(Collider c in colliders){

    print(c);

}  获取自身的所有的碰撞器  //定义数组接收 Collider[]

print(GetComponent<BoxCollider>()); 只得到盒子碰撞器

  

[展开全文]
柏衍 · 2021-06-26 · 该任务已被删除 0

foreach遍历

遍历数组

删除游戏物体

foreach(Transform t in children){

      if(t!=transform) //如果当前t不是游戏物体

      Destory(t.gameObject);

}  // t 代表每一个children

 

[展开全文]
柏衍 · 2020-08-21 · 该任务已被删除 0

for、while和dowhile循环

得到子物体的方法:

在strat中 输入

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

用for循环销毁游戏物体

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

if(children[i]!=transform){ 

GameObject.Destroy(children[i].gameObject);

    }

}

用while循环销毁游戏物体

int i=0;

while(i<children.Length){

if(children[i]!=transform){ 

GameObject.Destroy(children[i].gameObject);

    }

   i++;

}

用dowhile循环销毁游戏物体

int i=0;

do{

if(children[i]!=transform){ 

GameObject.Destroy(children[i].gameObject);

}while((i<children.Length);

[展开全文]
柏衍 · 2020-08-21 · 该任务已被删除 0

if语句和switch语句的关系

switch case

例如:

switch (geroType){

       case1:

                break;

       case2:

                break;

}

switch只能执行单个的值判断是否相等

 

[展开全文]
柏衍 · 2020-08-21 · 该任务已被删除 0

if变形和枚举类型的使用

例如:

int heroType=0;  //1=solaier 战士 2=master 巫师 3=assassin 刺客

if(heroType==1){

}else if(heroType==2){

}else if(heroType==3){

}else if(heroType==4){

}else{

[展开全文]
柏衍 · 2020-08-21 · 该任务已被删除 0

运算符(逻辑与)

数学运算符     +  -  *  /  %

赋值运算符     =  +=  -=  *=  /=  %=

比较运算符     >  >=  <  <=  ==  !=

逻辑运算符    

&& 

|| 

!  取反 例如:print(!ture); 输出的布尔值会变成相反值  flash

 

[展开全文]
柏衍 · 2020-08-21 · 该任务已被删除 0

脚本中变量的定义

需要在unity面板上修改属性       public

私有属性不会在unity上显示       private

如果不输入pubic,private 

 

[展开全文]
柏衍 · 2020-08-21 · 该任务已被删除 0

unity脚本的基本结构

 namespace 命名空间的名字{   

}   //定义了一个命名空间

class 类的名字{

}   //定义了一个类

 

如果想要在工程中使用,需要在引入命名空间

using 命名空间的名字;   

[展开全文]
柏衍 · 2020-08-21 · 该任务已被删除 0

void Update(){

     Input.GetAxis("Horizontal")

}   //获取用户的方向键

 

unity中 help——unity——reference   

[展开全文]
柏衍 · 2020-08-19 · 该任务已被删除 1

类中的方法

在Enemy中输出

public void Move(){

     Debug.Log(name+"正在移动");

}

public void Attack(){

     Debug.Log(name+"正在攻击");

}

在Start中调用(Start S必须是大写)

enemy1.Move();

 

 

[展开全文]
柏衍 · 2020-08-19 · 该任务已被删除 1

类中的字段的

利用类声明的变量,可以叫做对象

Enemy enemy1=new Enemy(); 构造对象

Enemy enemy1=初始值;

print(enemy1);

[展开全文]
柏衍 · 2020-08-19 · 该任务已被删除 1

类的创建,声明和构造

class 类名{

    字段

}

例如:

class Enemy{

       string name;

       int hp;

} //创建一个敌人的基础信息  类的定义

调用方法

int hp=100;

Enemy enemy1=new Enemy();

类的声明=

 

[展开全文]
柏衍 · 2021-06-26 · 该任务已被删除 0

方法中的返回值

返回值 方法名(参数){

     

}

例如:

void Add(int a,int b){

      int res=a+b;

      return res;

}

调用方法 

int res=Add(10,20);

在一个方法内不能同时定义两个相同的两个变量名字的

 

[展开全文]
柏衍 · 2021-06-26 · 该任务已被删除 0

void 方法名(参数类型 参数名字){

        方法体

}

例如:

void CreateEnemy(Vector3 pos){

       print("创建敌人");

       print("设置敌人位置"+pos);

       print("设置敌人的初始属性");

}

传递参数 在class外面

CreateEnemy(new Vector3(1,1,1));

//在1,1,1

[展开全文]
柏衍 · 2021-06-26 · 该任务已被删除 0

枚举类型

enum 枚举类型名字{

        取值,    //取值之间用逗号隔开  

}  在class外面定义

 

例如:

enum RoleType{

     Mag,    //魔法师

     Soldier,   //战士

      Wzard   //巫师

}在class外面定义

 

调用枚举类型

枚举类型名字 定义名字=枚举类型.

例如:

RoleType rt=RoleType.Mag;

rt=RoleType.Soldier;

 

[展开全文]
柏衍 · 2021-06-26 · 该任务已被删除 0

method 方法

返回值 方法名(参数){

       方法体

}

 

void CreateEnemy(){

       print("创建敌人");

       print("设置敌人位置");

       print("设置敌人的初始属性");

}

在 void Start(){

     CreateEnemy();

}  调用方法

 

[展开全文]
柏衍 · 2021-06-26 · 该任务已被删除 0

int[] hps=new int[8]{10,20,30,40,50,60,70,80};

for(int i=0;i<8;i++){

     print(hps[i]);

}

 

for(int i=0;i<hps.length;i++){

     print(hps[i]);

}

[展开全文]
柏衍 · 2021-06-26 · 该任务已被删除 0

for循环

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

      循环体

       //print("创建一个敌人"+1);

}

 

[展开全文]
柏衍 · 2020-08-19 · 该任务已被删除 0

授课教师

SiKi学院老师

课程特色

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