public GameObject 名;// 可以拖拽任何物体
public Camera 名; // 只可以拖拽Camera物体
transform.Find("子物体路径");查找子物体或子子物体的transform组件,以此类推。
GameObject.Find("物体名")查找对应的物体,返回第一个。
Find("")根据名字在场景遍历查找,耗费性能,不推荐使用。
GameObject.FindWithTage("标签名");根据标签查找物体,推荐使用。
public GameObject 名;// 可以拖拽任何物体
public Camera 名; // 只可以拖拽Camera物体
transform.Find("子物体路径");查找子物体或子子物体的transform组件,以此类推。
GameObject.Find("物体名")查找对应的物体,返回第一个。
Find("")根据名字在场景遍历查找,耗费性能,不推荐使用。
GameObject.FindWithTage("标签名");根据标签查找物体,推荐使用。
名.enablled = true/false用来开启/禁用该组件
当脚本/组件被禁用后,unity调用的方法(Start,Update)将被禁用,自定义的方法可以执行。
修改组件的属性:
1.声明一个组件为A
2.A.属性名 = ****
GetComponentsInChildren<Transform>(true);//游戏对象下的子物体激活的没激活的都会被拿到,包括游戏对象本身 GetComponentsInChildren<Transform>(false);//游戏对象下的子物体激活的会被拿到,包括游戏对象本身;没激活的不会被拿到
另外,()不写的活默认为false.
transform代表被脚本附加的当前物体
Start方法只会执行一次,一般用来初始化
Update方法每一帧会执行一次。
注意第一个字母大写。
public定义的变量可以在inspector面板中显示和修改,private修饰的变量不显示。最终值由面板修改的值为准。
变量也可以是引用类型。
GameObject类型可以拖拽物体进行赋值。
引入命名空间后,可以直接(不需要 )使用命名空间下的类。
Start和Update方法是unity调用的,我们不用管它是怎么调用的,方法名称要写对。
Enemy中属性设为public才能中通过对象来访问。
=是赋值
==是等于
两个整数相除,小数部分会被自动舍去。
多个数据类型运算,返回的结果类型是数据类型大的。
float比int数据类型大。
不同的整数类型占的内存大小不同。
选择合适的类型去存储整数可以节约内存。
如果在代码中没有对某个非整数值(如12.3)硬编码,则编译器一般假定该变量是double。
如果想指定该值为float,可以在其后加上字符F(或f),如:
float f = 12.3F;
unity脚本:
using System,Collections;
using System.Collections.Generic;
using UnityEngine;
脚本继承于
1.类名首字母大写(脚本名首字母大写,因为脚本名和类名要一致)。
2.提示“项目在该环境外部已被修改”时,建议点击“重载解决方案”
点击console控制台的collapse取消折叠
1. hps.Lengh;可以访问数组长度
数组中的每一个变量都是可以改变的
2. int[ ] hps=new int[10];
用这种方式初始化,默认值为0
// int[ ] hps;
// 和
// int[ ] hps={ };不一样
3. int[ ] hps=new int[3] {20,30,50};
数组的声明和使用
几种方式
1.int[ ] hps ={100,90,80,70,60};
比较运算符
包括 > < >= <= !=
1. int hp=100; //假设血量为100
bool res=hp>0; //判断剩余血量是否大于0,小于0表示死亡
print(res);
2.
c#运算符
https://wenku.baidu.com/view/93c32317a76e58fafab00341.html
加减乘除数据运算
+ - */
1.多个数据类型运算,返回的结果类型是数据类型大的
2.string str1="may nasme is";
string str2="siki";
string strRes=str1+str2;
print(strRes);
运行结果是:my name is siki
bool isDie=false;
char c= 'a';
string name ="拉帕加";