实习培训博客

9.4

1.VS2019的安装:下载vs2019→双击打开→下载安装之后继续→弹出窗口,选择windows选项和unity开发游戏选项→等待下载安装→成功之后重启。

2.GitHub的安装:下载GitHub→双击打开→勾选对应选项(additional icons,windows,explorer integration和两个associate)→next→finish

3.xmind的使用:下载xmind→安装→新建文件→开始制作思维导图。

4.unity的使用:打开unity hub→登录账号→下载unity版本安装。

5.一个组件或多个组件组成一个游戏对象,一个游戏对象或多个游戏对象组成一个场景,一个场景或多个场景组成一个项目。
游戏对象相当于组件的容器,组件赋予游戏对象不同的特效。

6.Assets:储存了所有的资源文件如图片、脚本、音乐、模型等等。
Project Setting:储存了整个工程的相关设置。
Library:用来储存那些记录文件之间链接和资源设置文件的文件夹。
Temp:用来存储一些中间文件,如历史记录等。

7.Plugins:存放基于C#语言编写的插件,存放unity导入的插件。
Resources:存放在此文件夹中的资源,可调用ResourcesLoad()加载资源,用来加载房子啊Resources文件夹中的资源,不多于2G。
Editor:存放有关编辑器脚本,unity一旦启动,将运行编辑器脚本代码。

9.5

1.unity中的摄像机:深度,控制摄像机渲染的顺序,较大的摄像机将会被渲染在较小值得摄像机之上。

2.unity中的快捷键:Q平移场景试图,W移动,E旋转,R缩放,Z以轴点/中心旋转,X全局坐标/局部坐标

9..6

1.注释://:单行注释
/**/多行注释
///文本注释

2.标识符:定义:用来命名字符串
要求:不能与关键字重名;不能以数字开头;@只能放在开头;wrox.com不合法,不能有.字符

3.语句和块:
语句
定义:语句是描述一个类型或告诉程序去执行某个动作的一条源代码指令
注意:语句是以分号结束;一行未必是一条语句;

定义:块是由大括号包围起来的0条或多条语句序列,它在语法上相当于一条语句
注意:某些特定的程序结构只能使用块;语句可以以分号结束,但块后面不能跟分号

4.格式化输出
{
class Program
{
     static void Main(string[] args)
     {
          #region 输出语句
          //Console.Write("输出不换行=====")
          //Console.WriteLine("输出换换行====")
          //Console.Write("输出不换行====")
          #endregion
          #region 格式化输出
           Console.WriteLine("输出换换行===={0}{1}","张三","李四");
       }
}
}

5.数据类型
数值类型:整型int;浮点型float,double
非数值类型:字符类型:char;字符串类型:string;布尔类型:bool,ture,false
字面值+后缀知类型:1.5表示double类型;1.5f或者1.5F表示float类型

6.Console.WriteLine("\"),双引号
Console.WriteLine("\\"),反斜杠
Console.WriteLine("\n"),换行

7.局部变量作用域在方法中,在方法里方法执行时才创建;
全局变量作用域在类中,在类里边,方法的外面

8.常量使用Const关键字,定义的时候必须赋值

9.Debug.Log("控制台输出 信息")
Debug.LogWarning("控制台输出 警告 信息")
Debug.LogError("控制台输出 错误 信息")

9.7

1.位置
Position:在世界坐标中,transform的位置;子物体世界坐标系中的位置=子物体位置+父物体位置
localPosition:相当于父级的变换位置,检视图中默认现实的数值
eulerAngles:旋转作为欧拉角度
localEulerAngles:相对于父级的变换的旋转欧拉角度
rotation:在世界坐标系中物体变换的旋转角度作为Quaternion储存
移动:沿着物体本身坐标轴;沿着世界坐标轴;Translate,根据translation的方向和距离移动变换
parent:返回物体变换的父级
root:返回最高层次的

2.object类是所有类的基类
GameObject类是所有游戏物体的基类

9.8

1.

int a3=10;
int b3=20;
int c3=(a3>b3)?a3:b3;
Console.WriteLine(c3);

2.

梯形体积
Console.WriteLine("输入上底:");
float a=float.Parse(Console.ReadLIne());
Console.WriteLine("输入下底:");
float b=float.Parse(Console.ReadLine());
Console.WriteLine("输入高:");
float h=float.Parse(Console.ReadLine());
float c=(a+b)*h/2;
Console.WriteLine("梯形的面积:"+c);

3.

1-100相加的和
int i=1;
int sum=0;
while(i>=1&&i<=100)
{
sum+=i;
i++;
}
Console,WriteLine("1-100之间所有数的和是{0}",sum);
Console.ReadKey();
}

4.

Scripts     脚本文件夹
Prefabs     预设文件夹
Materials     材质文件夹
Scenes     场景文件夹
Textures     贴图文件夹
Models     模型文件夹
Animations     动画文件夹
Audio/Musics     音乐(音效)文件夹
Resources     资源文件夹
SkyBox     天空盒
Editor     自定义文件夹

5.

float f1=10;
double d1=200;
d1=f1;
f1=(float)d1;
string str="123";
int b=456;
string c=str+b;
Console.WriteLine(c);
int d=int32.Parse(str)+b;
Console.WriteLine(d);
double a1=10.0f;
float a2=(float)a1;
Console.WriteLine(a2);

9.12

1.数组是一个存储相同类型元素的固定大小的顺序集合

2.引用类型
定义:存的是引用;存在堆中;
类型:类:基类,object;字符串,string;自定义类,Class;
接口:Interface;
数组:Int[],String[];
dynamic;
object
特征:必须在托管堆中引用类型变量分配内存;
必须使用new关键字来创建引用类型变量;
在托管堆中分配的每个对象都有与之相关联的附加成员,这些成员必须被初始化;
引用类型变量是由垃圾回收机制来管理的;
多个引用类型变量可以引用同一个对象,这种情况下,对一个变量的操作会影响另一个变量所引用的同一对象;
引用类型被赋值前的值都是null。

9.13

1.

字符串:字符串属性,*.Length获取字符串长度
string str01="asdfasdf";
string str02="你好你好";
Console.WriteLine("asdfasdf字符串长度:"+str01.Length);
Console.WriteLine("你好你好:"+str02.Length);
Console.WriteLine(str01);
Console.WriteLine(str02);

2.

字符串常用方法
IsNullQrEmpty:判断一个字符串是否为Null或者空
string str141="";
string str151=null;
Console.WriteLine(string.IsNull110rEmpty(str141));
Console.WriteLine(string.IsNull110Empty(str151));

ToUpper:转大写字母
string str1="asd";
Console.WriteLine(str1.ToUpper());

ToLower:转小写字母
string strl2="ASD";
Console.WriteLine(str2.ToLower());

3.

比较字符串是否相等
string str331=“12312”;
string str332=“12313”;
if (str331==str332)
{
Console.WriteLine("两个相等");
}
else
{
Console.WriteLine("两个不相等");
}

4.

Split():分割字符串,返回字符串类型的数组
string str51="账号-kubll-密码-123456";
string[] strArr=str51.Split("-");
foreach (string item in strArr)
{
Console.WriteLine(item);
}

5.

Substring(index,number):截取字符串,返回截取后的子串
string str61="你好呀,我是张三,你是谁?";
Console.WriteLine(str61.Substring(0,1));
Console.WriteLine(str61.Substring(2,1));
Console.WriteLine(str61.Substring(2,2));

6.

四舍五入保留两位小数输出
double point=3.147;
Console.WriteLine("\n四舍五入保留两位小数输出:"+point.ToString("0.00"));

7.对象:对象一定是一个具体的个体

8.

继承
定义:将一堆类中的一些共有的成员单独取出来,作为一个父类,然后这一堆类继承这个父类,共享父类的资源,这就叫做继承;
注意:子类继承父类私有部分,但是子类无法访问;C#不支持多继承;C#可以继承多个接口,接口之间用,隔开;
UML视图:类名,字段,方法。

9.

using System
using UnityEngine
namesapce Kubll
public class MyDebug
{
public static bool IsOn;
public static void Log(string str)
{
if(IsOn)
Debug.Log(str);
}
public static void LogError(string str)
{
if(IsOn)
Debug.LogError(str);
}
public static void LogWarning(string str)
{
if(IsOn)
Debug.LogWarning(str)
}
}

9.14

1.

static void Main(string[] args)
{
A1 a1=new A1();
A2 a2=new A2();
A3 a3=new A3();
a1.MyDebug();
a2.MyDebug();
a3.MyDebug();
}
class A1
{
public virtual void MyDebug()
{
Console.WriteLine("基类中的方法");
}
}
class A2:A1
{
public override void MyDebug()
{
Console.WriteLine("子类中的方法");
}
}
class A3:A1
{
}

2.子类对象可以直接赋值给父类对象

3.is和as

is和as两个关键字都可以进行类型转换
is:如果转换成功,返回true,失败返回false;
as:如果转换成功,返回对应的对象,失败返回null

3.抽象方法:
抽象方法的返回值类型前用关键字abstract修饰,且无方法体;
抽象方法必须在抽象类中

4.抽象类:
抽象类可以没有抽象方法,到那时抽象方法必须存在于抽象类中;
抽象类不能被实例化,因为抽象类中有抽象方法,如果真能实例化抽象类的话,调用这些无方法体的方法是没有任何意义的,所以无法实例化。

5.访问修饰符:
public:公开的访问权限,当前类、子类、实例对象都可以访问
private:私有的访问权限,只能在当前类内部进行访问,子类、实例对象都访问不到
 

9.15

1.

class LazySingleton
{
private static LazySingleton instance;
private LazySingleton(){}
public static LazySingleton getInstance()
{
if(instance==null)
{
instance=new LazySingleton();
}
return instance;
}

2.

public class Dates:MonoBehaviour
{
public static Dates instance;
private void Awake()
{
if(instance==null)
{
instance=this;
}
}

3

private void OnTriggerEnter(Collider other)
{
if (other.tag=Tags.player)
{
Dates.instance.enemyNumber++;
}
}

4.

事件
定义:事件是一种引用类型,实际上也是一种特殊的委托
产生原因:委托变量如果公开出去很不安全,外部可以随意调用;取消public,封闭它,可以自己书写两个方法,供外部注册与注销,委托调用在子方法里调用,这样封装委托变量可以使它更安全
注意:在类的内部声明事件;必须声明该事件的委托类型

9.18

1.

碰撞器
Box Collider   盒子碰撞器
Sphere Collider   球体碰撞器
Capsule Collider   胶囊碰撞器
Mesh Collider   网格碰撞器
Terrian Collider   地形碰撞器
Wheel Collider   车轮碰撞器

2.

物理材质
Dynamic Fricition   滑动摩擦力
Static Friction   静态摩擦力
Bounciness   表面弹性
Friction Combine   摩擦力的混合方式
Bounciness Combie   弹力的混合方式

9.19

1.

操控
鼠标:获取鼠标输入,获取鼠标位置
键盘:获取键盘输入,按键按住返回true,按键按下返回true
虚拟轴:获取虚拟轴
触屏:获取触屏

2.

刚体
作用:使物体受到重力;碰撞检测
Rigidbody类:AddForce,Addtorque,Sleep,WakeUp
注意:发生碰撞的必要条件,两个物体都要有碰撞器,其中一个物体具有刚体组件

3.

碰撞器
实验:碰撞器与碰撞器触发方式:碰撞器触发器
碰撞器与触发器触发方式:触发器触发
触发器与碰撞器触发方式:触发器
触发器与触发器触发方式:触发器

4.

触发器:dnter函数,OnTriggerStay函数,OnTriggerExit函数

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值