Unity里面的C#基础

目录

命名空间

创建一个命名空间

关于输出

关于数据类型

整型:

浮点类型:

布尔类型:

字符类型:

字符串类型:

"+,-,*,/"运算符:

比较运算符:https://wenku.baidu.com/view/93c32317a76e58fafab00341.html

数组

用for循环遍历数组:

method 方法

枚举类型:

class类

类的定义:

声明变量:

类中的方法:

MORE

波浪线

快捷键:


命名空间

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class/*(类)*/ Learn /*(类名)*/: MonoBehaviour   //类名要和文件名(脚本名)保持一致;
{
	// Start is called before the first frame update
	void Start()                     //Start方法
	{
		//只执行一次,常用于初始化
	}

	// Update is called once per frame
	void Update()               //Update方法
	{
		//每一帧都会进行调用
	}
}

创建一个命名空间

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Money;               //引入我们创建的命名空间,如果没有引入,后面是不可能调用里面的东西的。

public class Learn : MonoBehaviour      //这里其实是声明了一个类,它属于UnityEngine这个命名空间,
										//并且继承了UnityEngine里面的类MonoBehaviour 
{
	void Start()
	{
		MyMoney data1 = new MyMoney();          //用我们创建的新命名空间里的类声明一个类的变量
		BossEnemy enemy1 = new BossEnemy();
		enemy1.name = "机动战士高达";
		enemy1.Move();
	}
}

class BossEnemy
{
	public string name;
	public int hp;
	public void Move()
	{
		Debug.Log(name + "正在移动");
	}
}

namespace Money                 //声明一个命名空间,名字叫Money
{
	class MyMoney               //在命名空间里创建一个类
	{

	}
}

关于输出

1.print( );   //只有在MonoBehaviour 里面才能使用

2.Debug.Log( );  //可在任意类型里面,任意类里面输出使用

  Debug.LogWaring( ); //输出警告

  Debug.LogErro( );      //输出错误

关于数据类型

详细的可以访问网址:C#基础--之数据类型 - tonney - 博客园

整型:

int hp = 100;//这里100默认为int类型,所以这里没有错误

浮点类型:

float hp =3.4;//这是错误的,这里3.4默认的是double类型,把它赋值给float就错了。正确的写法为:float hp = 3.4f;

布尔类型:

bool isFirst;//默认为false,等价于bool isFirst=false;

字符类型:

char c ='c';//单引号

字符串类型:

string name = "机动战士高达";//双引号

"+,-,*,/"运算符:

int a = 92;int b = 10;

int res = a+b;

int res =a / b;//两个整数相除,小数部分会被自动舍去

int res =3+3.2f;//这个是错误的

float res =3+3.2f;//多个数据类型运算,返回的结果类型是数据类型大的

hp = hp +10;     hp += 10;

hp++,hp--;//自增自减

string str1 = "my name is ";

string str2 = "机动战士高达";

string str3 = str1 +str2;//"+"可以连接字符串。

比较运算符:https://wenku.baidu.com/view/93c32317a76e58fafab00341.html

int hp =100;

bool res = hp>0;//此时bool就是true,可以用来判断角色的血量还剩多少。

数组

方法一:

int[] hps ={100,20,80,90,30};

print(hps[0]);

int[] hps2 ={ };//这里默认是声明了一个长度为0,初始值为0的数组。

print(hsp2);  ——>System.Int32[]   //输出的是这个数组的类型。

int[] hps;//这个是不正确的,这个数组是不存在的,我们只是构造了一个名字。

方法二:

int[] hps = new int[10];//new就是构造,构造出一个新的数组,10为其长度,这

里初始值为0。

方法三:

int[] hps = new int[5] { 3, 2, 5, 6, 4 };//数据长度必须和前面声明的个数相同。

用for循环遍历数组:

void Start()
	{
		int[] hps = new int[5] { 3, 2, 5, 6, 4 };
		for (int i = 0; i < 5; i++)
		{
			print(hps[i]);
		}
		//或者
		int[] hps2 = new int[5] { 3, 2, 5, 6, 4 };
		for (int i = 0; i < hps2.Length; i++)
		{
			print(hps[i]);
		}
	}

method 方法

 void Start()                  //Start方法,方法名首字母大写

 {        

 }

返回值  方法名(参数)  {

方法体

}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Learn2 : MonoBehaviour
{
    public GameObject player;
    public Learn1 script;
	//组件的禁用和激活
	void Start()
	{
		int res = Add(10, 67);
		print(res);
	}

	int Add(int a, int b)           //有返回值,只能返回一个值。
	{
		int res = a + b;
		return res;
	}

}

我们经常用到的方法还有:GetComponent<Rigidbody>();

枚举类型:

枚举是放在public前面的

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
enum RoleType  //enum为关键字,RoleType为枚举类型的名字
{
    Mag,
    Soldier,
    Wizard
}
//格式为
enum Name
{
    Type1,
    Type2,
    Type3,
    Type4
}


public class Learn2 : MonoBehaviour
{
    void Start()
    {
        RoleType rt = RoleType.Mag;
        rt = RoleType.Soldier;
        if(rt==RoleType.Mag)
        {
            print(100);
        }else if(rt==RoleType.Soldier)
        {
            print(200);
        }
    }
}

class类

MonoBehaviour 是Unity创建的类,类和类之间是可以继承的

public class Learn2 : MonoBehaviour    // : MonoBehaviour 表示继承自 MonoBehaviour 这个类

{                                                                       这里是Learn2继承了MonoBehaviour

}

类的定义:

class BossEnemy    //这个类相当于利用我们学过的类型组建了一个新的类型
{
	public string name;  //public的字段才能通过对象访问
    public int hp;   //这里利用名字和hp就组装了一个敌人的类型。
}

声明变量:

public class Learn2 : MonoBehaviour
{
    void Start()
    {
        Enemy enemy1 = new Enemy();      //Enemy enemy1为声明类的变量,利用类声明的变量,可以叫做对象, new Enemy()是赋值,类的创建,构造对象,必须要赋值。          
        enemy1.name = "机动战士高达";      //如果不是public string的话,这里是访问不了的。                
    }
}

类中的方法:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Learn2 : MonoBehaviour
{
	void Start()
	{

		BossEnemy enemy1 = new BossEnemy();
		enemy1.name = "机动战士高达";
		enemy1.Move();   //调用类里面的方法。
	}
}

class BossEnemy
{
	public string name;
	public int hp;
	public void Move()  //对于方法,我们也必须要设置为public才可以在外面调用
	{
		Debug.Log(name + "正在移动");  //这里使用不了print()。
	}
}


在Unity里面,它写了很多类,我们也会经常使用,例如:Input.GetAxis("Horizontal");    //Input为类,GetAxis()为方法。

Debug.Log(name + "正在移动");

更多类和方法请见:

Scripting API(API手册):Unity - Scripting API: (unity3d.com)

操作手册:Unity - Manual: Unity User Manual 2021.2 (unity3d.com)

MORE

波浪线

1)、如果你的代码中出现了红色的波浪线,意味着你的代码中出现了语法错误。

2)、如果你的代码中出现了绿色的波浪线,说明你的代码语法并没有错误,只不过提示你有可能会出现错误,但是不一定会出现错误。警告线。

快捷键:

快速注释:Ctrl + k + c

        1)单行注释 //

        2)多行注释 /*要注释的内容*/

        3)文档注释 /// 多用来解释类或者方法

取消注释:Ctrl + k + u

撤销:Ctrl + z

保存:Ctrl + s

快速对齐代码:Ctrl + k + d

快速弹出智能提示:Ctrl + j 

选中单行内容:Shift + End、Shift + Home、Shift + 上下左右 

添加命名空间:Alt + Shift +F10

转到帮助:F1

查看类型定义:F12

折叠代码:#region ...#endregion 

猜你喜欢

转载自blog.csdn.net/m0_56640613/article/details/121852918