输入和输出:
print(1);
print("23456");//只能在继承MonoBehaviour环境中使用
Debug.Log(1);//在任意环境中可以输出
Debug.LogWarning("")//警告
Debug.LogError(“”);//在日志里面显示 错误
数据类型:
bool 类型常用于判断是否正确。//bool res= 100>78;会返回ture
float 浮点型 float hp2=3,4f;//注意f
char 字符型;
string name ="绝地武士";字符串型
字符串相加:
string str1="aaa";
string str2="bbb";
string strRes=str1+str2;
print(strRes);
循环语句:
if(){}else{}语句;
for()循环,
// 遍历数组
for(int i=0;i<hps.Length;i++)
{
print(hps[1]);
}
switch() case;语句
switch(heroType)
{
case 0:print();break;
case 1:print();break;
defalt;break;
}
while()
数组:
声明数组 法1:类型 [] 数组名={数组值} // int [] hps={10,20,10};
法二:int[] hps=new int [20];//数组长度为20;使用这种方式会使用默认值0初始化。
int [] hps=null;
int [] hps={};
法三:int [] hps= new int [5]{1 ,2,3,4,5} // 必须相对应
函数:
Length可以访问到数组长度
方法的定义和调用:
返回值 方法名(参数)
{
方法体;
}
//void CreateEnemy(Vector3 pos) 比如在start下调用 : CreateEnemy(new Vector3(1,1,1))
{
print ("创建敌人");
print ("设置敌人位置"+pos);
}
枚举类型:
enum RoleType
{
Mag,
Solider,
Wizard
}
//调用
RoleType rt =RoleType.Mag;
rt = RoleType.Solider;
枚举类型的使用:
便于我们运用代码
类的创建,声明和构造:
class是关键字,加类名
如class Enemy{
string name;
int hp;
}//类的定义
在start 里面:
int hp=100;
//利用类声明的变量,可以叫做对象
Enemy enemy1=new Enemy();//类的声明=类的创建构造对象
Enemy enemy1=new Enemy();
Enemy enemy1=null;
print(enemy1.name);
enemy1.name=" ";//赋值
class Enemy{
public string name;//public 的字段才可以通过对象访问。
public int hp;
public void move ()
{
Debug.Log(”正在移动”);
}
}
补充:
脚本的基本结构
//
命名空间
定义的类
namespace +名字//定义命名空间
脚本中变量的定义:
访问修饰符:public private
运算符:
数学运算符 + - * /
赋值运算符:= += -= *= /= %=
比较运算符:> >= < <= == !=
逻辑运算符:
&& // 逻辑“与”
|| // 逻辑“或”
! // 取反
unity 中应用:得到子物体。
Transform[] children =transform.getComponentsInChildren<Transform>();//得到所有组件
for(int i=0;i<children.Length;i++)
{
GameObject.Destroy(children[i].gameObject);
}
Transform[] children =transform.getCompontentsInChildren<Transform>();
int i=0;
while(i<children.length)
{
if(children[i]!=transform)
{
GameObject.Destroy(children[i].gameObject);
}
i++;
}
int i=0;
do{
if(children[i]!=transform)
{
GameObject.Destroy(children[i].gameObject);
}
}
while(I<children.Length)
foreach(Transform t in children)//专门做遍历
{
if(t!=transform)
{
Destory(t.gameObject);
}
}
组件的获取:
Transform t= getComponent<Transform>; //返回值是transform类型的
又例如加了几个碰撞器,则
Collider [] colliders=GetCompontent<Collider>();
foreach(Collier c in colliders){
print(c);
}
print(GetComponment<Player>());
就算被禁用,通过拖拽也可以得到
组件的禁用和激活:
只有带勾的才能禁用。
BoxCollider collider =GetComponent<BoxCollider>();
collider.enable=false;//把enabled设置为false 表示禁用
获取游戏物体的四种方式:
1,直接通过拖拽的方式
public GameObject Camera;
public Camera mainCamera;
2,通过给指定路径:
print(transform.Find("GameObject(1)/GameObject"))
print(transform.Find("GameObject(2)"));
3,直接进行搜索//挨个查找
GameObject mainCameraGo=GameObject.Find(“Main Camera”);
print(maincameraGo);
4,通过标签来查找
给其指定一个标签
GameObject player =GameObject.FindWithTag("标签名称");
print(player);
END