数组:存储一组同类型的数据。
用法:类型[] 数组名 = {数组值}
数组引用:数组名[索引] 索引从0开始
数组:存储一组同类型的数据。
用法:类型[] 数组名 = {数组值}
数组引用:数组名[索引] 索引从0开始
transform.Find 查找子物体
GameObject.find 根据名字查找
FindWithTag
返回值
return res;
int res =Add(10,67);
print()
使用Vector3 pos创建一个位置参数
通过参数控制方法里变得东西 创建不同位置的敌人
CreateEnemy(new Vector3(1,1,1));
CreateEnemy(new Vector3(3,3,4));
枚举类型
int roleType=0;//0代表魔法师 1战士 2 坦克....
enum RoleType{
Mag,
Solidier,
Wizard,
}
RoleType rt = RoleType.Mag;
rt =RoleType.Solidier;
返回值 方法名 (参数){方法体}
创建方法然后调用方法
数组的的三种表达方式
运算符
数学运算符:+-*/%
赋值运算符:= += -= *= /= %=
a+=b ——> a=a+b;运算+赋值
比较运算符(bool)
> >= < <= == =!
&&逻辑与操作
|| 逻辑或操作
! 去反赋值
bool isDead=false;
print(!true);
print(!false);
print(!isDead);
if(isDead){
}
print(true&&true);
print(false&&true);
print(true&&false);
print(false&&false);
int player1hp=0
int player2hp=0
if (player1hp<=0&&player2hp<=0){
print("gameover")}
脚本中变量的定义
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player2 : MonoBehaviour {
//类里面生命的public变量都可以在控制面板上反映出来 变量值以第一次价值的脚本值为准,当脚本中的变量值与控制面板值不一致时,脚本输出以控制面板值为准
public int hp;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
`
Unity中脚本的基本结构
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
命名空间,灰色表示没有使用
使用的类必须在相应的命名空间,使用类之前必须要启用相应的命名空间。
//继承自MonoBehaviour类 void Start 和Void Update 是方法
public class C#Project : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
命名空间控制着类的使用,没有命名空间无法使用类
命名空间 类 方法 变量 对象 运算和调用
创建脚本和附加脚本
1.创建脚本的方法
Project窗口空白处创建
Add Componetny中创建
2.添加脚本的方法
类中不仅可以包含字段,还可以包含方法,
……
class Enemy{
public string name;
public int hp;
//添加移动的方法
public void Move(){
//Enemy 没有继承
print(name+“正在移动”)
}
}
方法也需要设置为public,方便外面调用
public class LearnCsharp2 : MonoBehaviour
{
}
void Start() {
int hp = 100;
//“enemy”利用类的声明变量,可以叫做对象,
Enemy enemy1=new Enemy();//构造对象
print
}
class Enemy {
string name;
int hp;
}
public(声明) class(关键字) LearnCsharp2(类名) : MonoBehaviour(继承的类) {//类的内容
//:+类名表示继承自某个类
}
void Start() {
int hp = 100;
Enemy enemy1(类的声明)=new Enemy();类的创建
}
//
class Enemy (类的定义){
string name;
int hp;
//字段和方法
}
void Add (int a,int b){
int res=a+b;
return res;
//同一方法内不能定义同一变量
方法参数
void Start(){
CreateEnemy(new Vector3(1,1,1));
//定义位置
}
void CreateEnemy(Vector3 pos)
//定义方法(类型 名称)
{
print("创建敌人");
print("创建敌人位置");
print("设置敌人的初始属性");
)
//
4.枚举类型
int rolwType=0;//0代表魔法师 1 战士2 巫师3坦克…… 数字与角色对应关系不容易记忆和理解
class外进行枚举类型定义
enum RoleType{
Mag,
Soldier,
Wizard
}
enumEnemyType{
Type1,
Type2,
Type3
}
public class LearnCsharp:MonoBehaviour
//enum是定义枚举类型的关键字 RoleType是名字 {}中的内容是取值,值与值之间通过逗号分割
void Start(){
RoleType rt=RoleType.Mag;
rt=RoleType.Soldier;
}
//命令调用语句里面没有生命过的角色类型,是不是编辑器版本的问题?
类命名首字母大写 驼峰命名 LearnCshape
//方法method
void Start(){} start方法
void Update(){} update方法
//返回值 方法名(参数){
方法体}
void Start(){
Test()
}//方法的调用
void Test(){
print("Test方法被调用了");
}//方法的定义
3.创建敌人的方法 通过调用,避免代码的重复书写
void Start(){
CreatEnemy();
}//调用敌人的方法
void CreatEnemy(){
print("创建敌人");
print("设置敌人位置");
print("设置敌人的初识属性");
}//敌人生成的方法
int[]hps=new int[8]{10102,2,2,32,3,2,312,3};//
for(int i =0;i<8;i++){
print(hps[i])
//通过Length可以访问数组的长度,hps调用数组信息
for(int i=0;i<hps.Length;i++){
print(hps[i])
先定义一个类型
然后用 switch(l类型){
case 类型.数据
break;
case 类型.数据
break;
case 类型.数据
break;
case 类型.数据
break;
}
switch(heroType){
case HeroType.Soldier:
break;
case HeroType.Master:
break;
case HeroType.shooter:
break;
}