IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity里面的C#基础 -> 正文阅读

[游戏开发]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;
	}

}

枚举类型:

枚举是放在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?

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 16:03:21  更:2021-12-11 16:03:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 21:39:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码