Unity 中输出语句的区别
Print ();
只有继承了 MonoBehaviour 才能使用
Debug.Log();
可以在任意类和方法中调用
Unity 中输出语句的区别
Print ();
只有继承了 MonoBehaviour 才能使用
Debug.Log();
可以在任意类和方法中调用
设置用VS2017打开,edit-preferences-external tools-external script editor-选择,如果没有显示,点击brose
unity支持的语言
c#
foreach (Transform t in children) {
if (t != transform)
Destory(t.gameObject);
}
1.第一种方式
定义一个变量,然后拖拽的方式赋值;
public GameObject CameraMain; // 获取相机物体;相机也是一个游戏物体,可以定义为GameObject 类型;直接把世界大纲中的游戏物体拖入变量中,
public Camera mainCamera ; //访问某个组件,访问MainCamera中的Camera组件,
可以把Game Object物体拖到 组件Main Camera上,这时它回去检测出MainCamera身上的组件,如果拖入其他物体的话,没有效果,因为他们身上没有Camera组件;
注意:如果变量是游戏物体,拖拽的对象必须是游戏物体,拖拽的对象是组件,那么拖拽的游戏物体身上必须要有这个组件;
2.第二种方式
transform.Find("GameObject1/GameObject1_1") //双引号内是子物体的路径,这个函数只能获取子物体对象,查找子物体,需要给一个子物体的路径。路径错误返回的Null; 查找时节约性能;
3.第三种方式
GameObject。Find(MainCamera);//方法内给一个名字,这个函数就会在世界大纲中查找叫这个名字的游戏物体,但注意,如果世界中有很多同名的物体,那么GameObject.find返回的时第一个物体,
缺点:它通过名字去查找,去在场景中搜索叫这个名字的物体,如果场景中游戏物体很多的话,查找起来很耗费性能,不推荐;
4.根据标签来查找
GameObject>FindWithTag("Player");
首先添加标签——标签有内置标签和自定义标签两种;点击大纲中的游戏物体,在inspector面板中,有一个Tag,可以下拉按钮,选择unity的内置标签,也可以通过Add Tag,添加自定义标签;
利用类声明的变量 ,可以称为对象
如果想访问类里的变量,可以通过public 利用对象描述写法调用
利用对象写法时可以参照java里的数组声明方式
默认的类为主类
类也算是可以说是类型(自我理解)
可以利用常用的数据类型组合成新的类型比如:
string name;(敌人名字)
得到子物体
Transform[ ] children = transform.GetComp
void Start () {
}
void:返回值 start:方法名 (参数){
方法体
}
int [] hpa = new int[5] {1,8,3,4,6};
for(int i =0; i<5; i++ );
{
print(hpa [i]);
}
i索引的范围是 0-4
i=0 时输出1
i=1 时输出8
int [] hpb = new int [6] {456,564,798789,3212,456,1};
for (int i=0; i<hpb.length ; i++);
{
print (hpb[i])
}
length
for 循环语句
循环执行一段代码
for (int i= 0; i<=10; i++; );
{
print ("创建一个人")
}
int[] pg={1,2,3,4,5};
pg[3] = 60;修改数组的值
print(pg[3])=60;
数组声明第二种方式
int [] hp = new int[20];
数组长度为20
访问后输出的值是默认值
null 空值
数组:类型【】 数组名 = {数组值}
int 【】ps = {1 , 2 ,3 ,5 , 8} 数组长度为5
print(ps[1]);
输出结果为2
最大索引长度为5-1=4
索引从0开始
通过索引来访问数据
数组名【索引】
if语句:if(逻辑表达式:必须返回一个true或者false)如果是true的话执行大括号里面的代码,false的话不会执行。
else语句:如果不满足if语句就执行
int gta = 666;
if(gat<123);
{
print("显示死亡画面")
}
else
{
print("显示行动画面")
}
比较运算符
操作数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;
算数运算符
+ 加
- 减
* 乘
/ 除
% 求余
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);
bool(布尔类型) 他的取值范围只有true或false
bool isDie = false 未死亡
'C'=字符
"asdfgsd"=字符串
不同类型存储单位不一样
常量无法变化
变量可以变化
声明变量时要考虑使用过程中变化范围 然后选择合适的整数去存储这个变量 不同变量类型所占内存的大小不一样
float hp2= 3.4 // double
float hp2= 3.4f //float
int up; 声明变量
hp=100;赋值
注释快捷键 Ctrl+k Ctrl+c
int hp =100;声明变量
int 数据类型 hp 变量名 100 值
变量用来存储数据
变量名必须以字母或下划线开头
赋值:右边的值给左边变量