注意Inspector的HP值和代码里的值,如果更改的话将不统一
实际的值为Inspector为准
GameObject可以直接托个物体
注意Inspector的HP值和代码里的值,如果更改的话将不统一
实际的值为Inspector为准
GameObject可以直接托个物体
Public 的字段才可以通过对象来访问。
利用类声明的变量,可以叫做对象。
一个方法内部定义的变量无法在另一个方法中使用,因此需要返回值。
int Add(int a,int b)
{
int res=a+b
returnres;
}
枚举在class外面,用逗号分行隔开。
int[] hps;数字不存在,无法使用.可以跟一个NULL,为空
int[] hps2={}数组存在,数组长度为0
if后面跟true or false
比较运算符返回的结果是布尔类型。
start方法里的变量只能在START里面使用
无法在UPDATE方法里使用
Debug.Log在任意地方都可以用
Print必须在MonoBehaviour类使用。
Debug.LogWarning,输出警告
Debug.LogError;错误,更严重。
可以选择来查看哪类日志。
控制台输出:
print();
start():初始化,只执行一次
update():每帧执行一次
获取游戏物体的四种方式
访问相机,游戏物体:
public GameObject cameraMain;
访问某个特定的组件:
piblic Camera mainCamera; //访问mainCamera组件
查找游戏物体:
transform.Find("访问的游戏物体路径")
查找游戏子物体:
transform.Find("游戏物体路径/物体下子物体路径")
通过标签查找
GameObject player=GameObject.FindWithTag("player");
print(palyer); // palyer是标签
组件的禁用和激活
进入组件:
Rigidbody rgd=player.GetComponent<Rigidbody>();
禁用组件:
BoxCollider collider=GetComponent<BoxCollider>();
collider.enabled=false; //禁用盒子碰撞器访问
组件里面的属性
Rigidbody rgd=player.GetComponent<Rigidbody>();
rgd.mass=100; //以Rigidbody为例
组件的获取
一个游戏物体可以挂载多个相同的组件
在Strat中输入:
Transform t=GetComponent<Transform>();
print(t); 访问自身的Transform组件
Collider[] colliders=GetComponents<Collider>();
foreach(Collider c in colliders){
print(c);
} 获取自身的所有的碰撞器 //定义数组接收 Collider[]
print(GetComponent<BoxCollider>()); 只得到盒子碰撞器
foreach遍历
遍历数组
删除游戏物体
foreach(Transform t in children){
if(t!=transform) //如果当前t不是游戏物体
Destory(t.gameObject);
} // t 代表每一个children
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);
if语句和switch语句的关系
switch case
例如:
switch (geroType){
case1:
break;
case2:
break;
}
switch只能执行单个的值判断是否相等
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{
}
运算符(逻辑与)
数学运算符 + - * / %
赋值运算符 = += -= *= /= %=
比较运算符 > >= < <= == !=
逻辑运算符
&&
||
! 取反 例如:print(!ture); 输出的布尔值会变成相反值 flash
脚本中变量的定义
需要在unity面板上修改属性 public
私有属性不会在unity上显示 private
如果不输入pubic,private
unity脚本的基本结构
namespace 命名空间的名字{
} //定义了一个命名空间
class 类的名字{
} //定义了一个类
如果想要在工程中使用,需要在引入命名空间
using 命名空间的名字;