- 博客(33)
- 收藏
- 关注
原创 向量(unity3d)
向量Vector3namespace 向量{ struct Vector3 { public float x { get; set; } public float y { get; set; } public float z{ get; set; } public Vector3(float x, float y, float z) { this.x = x;
2021-11-15 12:41:37
3074
原创 摄像机的安全检测
摄像机安全检测安全监测的方式有很多种2.当摄像机发射线可以碰到玩家时,且摄像机当前不在初始位置如果上一个位置能看到家,则后退一步如果看不到玩家,不动public class cameraSafe : MonoBehaviour{ //在相机下定义一个空节点作为初始位置 public Transform StartPos; //在相机下定义一个空节点作为结束位置 public Transform EndPos; //插值的第三个参数 publi
2021-11-15 12:40:27
5252
原创 人物的移动和镜头(unity)
人物的移动 //移动的速度public float speed;//旋转的速度public float xInstensity;1.人物前后左右的移动//人物移动 void Move() { float horizontal = Input.GetAxis("Horizontal"); float vertical = Input.GetAxis("Vertical"); if (horizontal != 0 || verti
2021-11-15 12:35:34
3066
原创 接口(c#)
接口接口的定义与实现隐式实现,显示实现的区别哪些东西可以被继承接口中有哪些成员namespace 接口{ class Program { static void Main(string[] args) { } } class Bird { } class Transport { } class Mahjong : Bird { }
2021-11-13 09:55:53
127
原创 属性和字段的区别
属性和字段的区别属性可以保证安全,在类外使用时,只能使用属性名,避免使用字段名属性的get和set可以限制字段的一些功能属性没有存储数据的功能字段又称为成员变量,一般在类内进行交互,保存具有的数据...
2021-11-13 09:53:36
604
原创 数组、流程控制语句
数组一维数组和二维数组的定义的三种方式迭代器的遍历 foreach //数组 //将相同的数据类型的数据形成一个有序的集合称为数组 //1、数组是一段连续的内存空间 //2、数组的长度在声明时就必须给定,且长度不可变 //第一种定义 int[] arr1 = { 1, 2, 3, 4, 5, 6 }; //第二种定义,没有给定数组中元素值,会默认值
2021-11-13 09:52:32
244
原创 枚举(c#)
枚举 class Program { //枚举类型:用来列出一种类型可能出现的所有选项 //枚举类型的名字就是一个数据类型 //枚举类型具有自解释性 //枚举类型具有一定的限制性 //枚举类型默认的类型是int. //枚举类型可以设定数据类型,并且设定的类型只能是整数类型,枚举类型的字节数跟设定的类型的字节数保持一致 //枚举类型具有自增性 //枚举类型默认值为0,
2021-11-13 09:23:40
199
原创 泛型(c#)
泛型泛型的写法泛型的作用泛型的约束new关键字约束的书写顺序约束的冲突namespace 数据结构{ class Program { static void Main(string[] args) { int num1 = 10; int num2 = 20; Swap<int>(num1, num2); // Console.Wri
2021-11-11 09:48:33
67
原创 面向对象的三大特性
面向对象的三大特性1.封装性将具有相同特征的一类事物高度概括扩出来使用不同的访问权限修饰符,将类中的成员进行分配,达到更安全的效果访问权限修饰符:如果没有在变量或者函数定义时写明是什么时候访问,那么默认是private权限public 公有的,修饰的成员变量可以在任意其他地方进行访问,不受任何访问限制private 私有的,修饰的成员只能在自己类内部访问,无法在外部调用protected 受保护类型internal 程序集公有类型2.继承 (:)将父类所有成员给到子类,提高代码的
2021-11-10 21:12:09
71
原创 static和const
static1.staticstatic:在类中,使用static修饰的成员称为静态成员,静态成员属于类本身不属于某个对象1、修饰成员,成员属于类而不属于对象2、修饰构造函数,声明静态构造函数,用于给静态成员赋值3、修饰类,将类变成静态类,静态类中允许存在静态成员static关键字修饰的成员,具有唯一性静态方法中只能够使用静态成 静态类无法被实例化创建对象2.const和static的区别const本质上来说也是一个静态的成员,但const修饰的变量在初始化后不能再发生变化
2021-11-10 19:08:19
390
原创 索引器(c#)
索引器索引器的定义属性与索引器的区别索引器是否存在下标越界问题?索引器的参数个数是否有要求?索引器的参数类型是否有要求?namespace 索引器{ class Program { static void Main(string[] args) { //索引器:让一个类的对象,能够像数组一样进行访问的做法称为索引器 Map map = new Map(); //map.
2021-11-10 17:48:32
155
原创 单例模式(c#)
单例模式保证一个类只有一个实例对象,(可以不满足)且无法在后续继续生成实例对象。懒汉模式饿汉模式 class Singleton { #region 懒汉模式 //单例类唯一的对象 //static静态,保障单例类对象的唯一性 private static Singleton _instance = null; //确保这个类的对象不能在其他类中实例出对象 private Singlet
2021-11-10 16:57:35
838
原创 抽象函数和虚函数的区别
抽象函数和虚函数的区别1.抽象方法是只有方法名称,没有方法体,即没有方法的具体实现,子类必须重写父类抽象方法才能实现具体功能;虚函数有方法名称也有方法体,但是子类可以覆盖,也可不覆盖。2.抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化。3.抽象方法只能在抽象类中声明,虚方法不是。4.派生类必须重写抽象类中的抽象方法,虚方法则不必要。...
2021-11-10 16:52:45
1751
原创 大数相加(c#)
大数相加stringBuild :String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
2021-11-10 16:22:47
406
原创 抽象类(c#)
抽象类是什么?用abstract关键字修饰的类,称为抽象抽象类中可以有抽象的行为(抽象函数)干什么?代码的侵入性特点1、抽象类用来强制要求派生类中必须实现抽象类中的抽象成员2、抽象类最合适用来当基类3、抽象类没有具体实例4、子类如果实现父类的抽象方法,则需要使用override关键字修饰抽象类和接口的区别:1、可以包含的成员不同,接口只能包含:函数的声明,属性声明,索引器声明,事件声明但是抽象类,除了可以包含接口中所有成员外,可以包含正常类的可以有的所有东西2、接口
2021-11-10 15:28:35
347
原创 get和set属性访问器(c#)
get和set访问器get和set访问器实际上是在编译的过程中将自己转化为一个函数set访问器中的value是set访问器在编译过程中变成的函数的参数如果只有get访问器,称这个属性是只读属性,相反如果只有set访问器成这个属性为只写属性数据只会存储在变量中属性是不存任何数据类型的(alt + shift) public int Age { //get访问器: 获取变量 get {
2021-11-10 15:24:32
1941
原创 单向链表(c#)
链表IMyLink先定义一个接口,主要包含规定相关的增删改查的方法、索引器,count属性访问器namespace 链表{ interface IMyLink<T> { //接口的作用 //1、为后面要写的内容提供一个强制的模板,规范代码 //2、作为一个提纲的作用,为后面要写的内容提供思路 //3、提高写代码的效率 //增 void Add(T t);
2021-11-10 14:58:37
595
原创 c#List容器的封装(数组封装)
list容器list容器和数组的区别数组1、数组的长度固定,存满后不能再添加新的元素2、数组无法得知当前已经存了几个元素,还剩多少空间3、数组是一段连续的存储空间,确定后无法修改地址list容器1、长度不固定,可以无限制添加新的元素2、list容器可以得知当前已经存了多少个元素3、list可以是不连续的存储空间IMListnamespace List容器{ interface IMyList<T> { //接口的作用 /
2021-11-10 11:19:15
1729
原创 数据类型及转换(c#)
数据类型8个整型 + 3浮点型 11个值类型bool类型只能是true 或 false判断条件只能用true或false条件判断sizeof()` 获取数据类型长度 //根据byte类型,在内存中开辟一段1个字节的内存空间,将这段空间命名为byteValue,并 将2转换为2进制数据,对这段内存空间进行填充 //byte:一个字节, 无符号(取值从零开始,不能是负数) 0-255 byte byteValue = 2;
2021-11-08 22:25:28
831
原创 DoTween插件的使用(unity3d)
DoTween插件的使用:用于做物体的缓动动画:(脚本控制)要用dotween插件,首先要引用DG.Tweening引用空间using System.Collections;using System.Collections.Generic;using UnityEngine;using DG.Tweening;public class DoTweenTest : MonoBehaviour{ // Start is called before the first frame upd
2021-11-06 17:03:26
3231
原创 简单镜头跟随(unity3d)
镜头跟随第一种:简单的跟随固定位置,跟参考对象保持一个固定的位置,跟随参考的对象移动using UnityEngine;using System.Collections;public class CameraFlow : MonoBehaviour{ public Transform target; private Vector3 offset; void Start() { //设置相对偏移 offset = target.pos
2021-11-06 16:58:12
380
原创 计时器(unity3d)
计时器using System.Collections;using System.Collections.Generic;using UnityEngine;public class Schedule : MonoBehaviour{ public float time; float deltaTime; float targetTime; // Start is called before the first frame update voi
2021-11-06 16:56:32
1048
原创 关于屏幕分辨率的适配
分辨率的适配1.首先是根据调解锚点和中心点确定ui的位置Anchors:锚点的位置,原点的位置在父节点快捷键:alt 设置锚点的位置shift 设置中心点的位置alt + shift 同时设置锚点和中心点的位置2.设置canvas主要设置的是Canvas Scaler中的UI Scale Mode包含三个:Constant Pixel Size 不变的像素大小,ui的像素大小不变Constant PhySical Size 不变的物理大小,例如长宽高Scale Width
2021-11-06 16:54:35
326
原创 动态资源加载工具类
动态资源加载工具类using System.Collections;using System.Collections.Generic;using UnityEngine;public class ResoucesManager { private static Dictionary<string, GameObject> resDic = new Dictionary<string, GameObject>(); /// <summary>
2021-11-06 16:41:42
97
原创 场景的加载(异步加载)
场景的加载(异步加载)关于AsyncOperation: AsyncOperation的progress(0-1)属性在isDone为false时,最大加载到0.9就会暂停,直到isDone为true时才会继续加载0.9-1.0的这10%,而isDone为true或fasle的标志为是: 当allowSceneActivation = false,isDone为false ,allowSceneActivation = false 的作用是让场景不会在加载完成后自动跳转到下一个场景, 当all
2021-11-06 16:39:09
402
原创 动态链接库Dll
动态链接库 DLL(c#)首先了解下dll是什么?(来自百度百科).dll,动态链接库英文为DLL,是**Dynamic Link Library**的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。作用:封装,通用,共享 。模块化,只需提供接口,不用关心内部实现,可以实现代码复用 。如果是通用的函数库,做成DLL是最好的了。这样维护也方便。可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分 。优点: 使用较少的资源,当多个程序使用同一个函数库时,DLL 可
2021-11-06 16:35:07
1242
原创 自动寻路(unity3d)
自动寻路自动寻路的地图的渲染,根据的是物体的Mesh Renderer组件,根据物体的大小第一步:勾选Navigation Static第二步:打开自动控制面板第三步:移动的物体添加Nav Mesh Agent组件第四步:编写移动脚本public class NavMove : MonoBehaviour{ NavMeshAgent agent; // Start is called before the first frame update void St
2021-11-06 16:26:31
1259
原创 视频播放(unity)
视频播放在3d物体上,添加void Player组件在2D上,添加一个row Image,在资源中创建一个Render Texture,然后拖入组件中视频的传入的方式,有两种,一种是直接拖拽一个视频Video Clip上去,另外就是通过URL地址...
2021-11-06 16:14:08
76
原创 射线(unity3d)
射线射线分为几种:1.从屏幕发出2.从起点发射到终点public class RayTest : MonoBehaviour{ //public Camera camera; // Start is called before the first frame updat void Start() { } // Update is called once per frame void Update() {
2021-11-05 14:59:59
225
原创 窗口的拖移的实现(unity3d)
窗口的拖移的实现代码:要使用事件,需要先引用UnityEngine.EventSystems 命名空间,并实现对应的接口(关于对应的接口会单独发文介绍),这里用到的是拖拽(IDragHandler),开始拖拽(IBeginDragHandler),结束拖拽(IEndDragHandler)using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using
2021-10-28 09:43:36
1095
原创 unity3D数据的本地存储(xml的方式)
数据本地的存储第一种方式:unity自带的存储方式PlayerPrefs.SetInt("num",num); //setFloat setStringPlayerPrefs.GetInt("num",0); //getFloat getString缺点:存储的数据过多时,不方便第二种方式:常见的配置文件:``jsonxmlcsv`unity一般使用的xml下面是xml方式如何实现1.首先如果需要使用xml文件,必须要引用 System.Xml命名空间2.主要的功能就是实现对xml文件
2021-10-12 20:18:12
3607
原创 unity学习笔记(持续更新)
unity学习笔记(持续更新)1.点哪指向哪 if (Input.GetMouseButtonDown(0)) { //相机向指定的物体发出射线,并返回 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //射线可以跟collider组件的物体发生碰撞 RaycastHit hit;//碰撞的信息
2021-10-12 09:49:51
571
原创 路点寻路(unity3D)
路点寻路第一步:现在场景上确认几个定点,并用Gizmos画出路线首先在场景中确定几个空节点,放在一个父节点下面将脚本绑在该父节点上画出来的效果:public class WayPoint : MonoBehaviour{ //用一个数组对点进行存储 Transform[] points; public Transform[] Points { get { if(points == null)
2021-10-07 09:49:52
2212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人