- 博客(36)
- 资源 (4)
- 收藏
- 关注
原创 Unity服务器开发03:部署PhotonServer服务器
Unity客户端与服务器开发03:PhotonServer服务器前篇文章:Unity客户端与服务器开发02:搭建NHibernate框架
2021-04-07 16:39:58 885 2
原创 Unity服务器开发02:搭建NHibernate框架
Unity客户端与服务器开发02:Nhibernate配置(一)Nhibernate简介与原理(二)在VS中配置Nhibernate(三)
2021-01-06 14:47:51 1305
原创 C#:逆序输出和计算圆的周长面积
C#:逆序输出和计算圆的周长面积今天上课的时候听老师讲这些编写基础发现自己有点生疏了(写数据库写傻了),于是有感而发将老师布置的两道作业整合在一起,上传记录(顺便复习一下)。(一)代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace FunTest{ class FunTest01
2021-01-05 20:47:32 437
原创 Unity服务器开发01:C#连接MySQL数据库
Unity客户端与服务器开发01:搭建开发环境前言:在补足了一些基础知识和数据库知识后,今天起正式开始学习unity的客户端与服务端,目标是做出一个联网的游戏demo!工欲善其事必先利其器,在开发之前第一件事就是搭建开发环境,做好设计。(一)联网游戏的原理图(二)安装MySQL数据库数据库的使用是服务端的基础,我选择了MySQL,轻量而且性能好。MySQL版本:5.7.17.0MySQL官网下载链接(三)在MySQL中创建数据库并设计存储数据的表(四)使用C#连接MySQL数据库,并找到
2021-01-03 21:41:11 1310
原创 Unity实现物体移动到鼠标点击的位置-射线碰撞
Unity射线碰撞-实现物体移动到鼠标点击的位置(一)射线碰撞简介(二)射线碰撞的应用(三)案例:实现物体移动到鼠标点击的位置using System.Collections;using System.Collections.Generic;using UnityEngine;public class Ray : MonoBehaviour{ public Transform myTarget; void Start() { }
2020-12-26 17:51:49 1561 3
原创 Unity获取鼠标键盘输入:Input类常用方法总结
Unity获取鼠标键盘输入:Input类常用方法总结(一)Input类简介Input类是输入系统的接口,使用这个类能够读取输入管理器设置的按键,以及访问移动设备的多点触控或加速感应数据,可以通过该类来实现外部设备控制游戏场景里面的物体。(二)键盘输入常用方法(三)Input类—鼠标属性和方法...
2020-12-26 16:35:46 3681
原创 Unity游戏积分/计分UI系统制作方法
Unity游戏积分/计分制作方法前言:本篇博客是我学习unity基础的最后一篇学习笔记,如果以后有实用的开发方法还是会分享出来。之后我准备制作一个具有完整客户端和服务端的游戏项目,并写一个客户端和服务端入门学习的博客系列。有想过整理一些基础开发的常见问题和常用知识分享出来,不过论坛里已经有不少这种总结帖了,前人栽树后人乘凉嘛(白嫖是真的舒服) 。言归正传,本篇博客将讲解游戏开发中常见的积分/计分系统的制作,看过论坛有很多这种帖子,但基本都是从一个大型系统里进行讲解,今天我把这个方法独立挖出来做个小案
2020-12-23 00:44:40 22007 10
原创 Unity控制UI的显示与隐藏
Unity控制多组UI的显示与隐藏本篇将使用c#中类的属性来对游戏中的多组UI组件进行控制,相较于零散无规则的UI代码,使用属性可以很好的方便开发者封装自己的控制方法以及管理复杂的UI。下面展示一个通过点击事件来控制UI的示例来演示如何使用属性。(一)为了方便演示,先选取2D视角,然后创建根节点Canvas,命名为Menu,在Menu下创建需要显示的子UI,这里我创建三个不同颜色的image来作为不同的UI界面,分别命名RedUI,BlueUI,GreenUI,最后创建对应控制的button,01按钮
2020-12-20 22:16:20 20224 16
原创 Unity小游戏-飞翔的小鸟项目分享
Unity小游戏-飞翔的小鸟项目分享分享一个自己用来练习unity基础做的unity小游戏,为了做好后能放在手机里无聊的时候玩,项目开发环境是安卓端,想要打包成PC端的朋友们记得改一下打包环境。由于做这个游戏的时候比较忙,UI方面做的比较粗糙,但项目总体功能都已经完成,没有明显bug,代码都写上了详细的注释,适合unity新手参考学习。这里分享出项目工程包和apk文件。看见本帖的朋友不妨点个赞,你的支持就是我学习的最大动力!(一)项目分享:1.github地址:https://github.co
2020-12-18 14:50:44 2179 3
原创 Unity:Quaternion类(四元数)
Unity:Quaternion(四元数)(一)四元数理解四元数左乘向量,表示将该向量按照四元数表示的角度旋转。例如:Vector3 point = new Vector3(0,0,10);Vector3 newPoint = Quaternion.Euler(0,30,0)*point;(二)避免万向节死锁this.transform.rotation *= Quaternion.Euler(0,1,0);—可使物体沿自身坐标Y轴旋转this.transform.Rotate(Vecto
2020-11-04 16:43:13 395
原创 Unity:Vector3类--点乘与叉乘
Unity:Vector3类_点乘与叉乘(一)点乘又称“点积”或“内积”。公式:各分量乘积和 [x1,y1,z1]*[x2,y2,z2] = x1x2+y1y2+z1z2几何意义:a·b = |a|·|b|cos<a,b> 两个向量的单位向量相乘后 再乘以二者夹角的余弦值。API:float dot = Vector3.Dot(Va,Vb);点乘应用对于标准化过的向量,点乘结果等于两向量夹角的余弦值。 应用 :计算两向量夹角float dot = Vector3.Dot(a.no
2020-11-04 16:34:53 4399
原创 Unity定时重复调用方法--Invoke方法
Unity定时销毁物体_Invoke方法本篇讲述如何在unity中定时销毁一个物体,重点是定时调用其他方法的Invoke方法,通过这个方法也可以实现更多其他的定时功能。Destory方法:该方法继承自Object类,需要传入的参数为一个【引用对象】。作用是直接销毁传递进来的对象。补充:SetActive方法也能实现消失效果,但并不是严格意义上的销毁,但示例会在注释中给出这种相似方法的使用,因为有时候也不是真的需要销毁,只是需要其暂时消失。Invoke方法:该方法继承自MonoBehavio
2020-11-01 20:47:37 6029
原创 Unity:GameObject类常用属性和方法
Unity:GameObject类常用属性和方法GameObject类常用属性展示:GameObject类常用属性和方法:示例: //通过tag得到游戏物体 //static GameObject FindWithTag(string tag) GameObject.FindWithTag("Player"); //通过name得到游戏物体 //static GameObject Find(string name)
2020-10-29 22:30:29 1251
原创 Unity添加断点和打印消息
Unity常用调试方法:(一)添加断点:在可能出错的行添加断点:单击或双击当前行数前方的位置即可添加断点–如下图第16行的红圈处查看编辑器上方工具栏,点击【附加到Unity】或者点击【调试】选择开始调试,同时检查断点是否添加成功。举个栗子:第一步:创建脚本,将脚本挂载到物体,脚本程序如下,此时想要知道TestTemp在执行"TestTemp+=999;"语句时的具体值。using System.Collections;using System.Collections.Generic;u
2020-10-28 16:06:26 1062
原创 Unity脚本生命周期和MonoBehaviour类常用方法
Unity脚本生命周期MonoBehaviour类常用方法(1)初始阶段:Awake()-唤醒:当物体载入时立即调用1次,常用于在游戏开始前进 行初始化,可以判断当满足某种条件执行此脚本this.enable=true。OnEnable()-当可用:每当脚本对象启用时调用。Start()-开始:物体载入且脚本对象启用时被调用1次。常用于数据 或游戏逻辑初始化,执行时机晚于Awake。(2)物理阶段:FixedUpdate()-固定更新:脚本启用后,固定时间被调用,适用于 对游戏对象做物理操作
2020-10-28 15:03:40 487
原创 C#委托与事件_附实例
C#委托和事件事件的由来委托也是—种类型,根据面向对象编程的特性,通常会把—个类型的变量封装到类的内部,并把其设置成private的,然后通过属性来访问该变量。所以在实际编程时委托类型也会定义 在类里面使用event关键字来修饰委托变量。其本质上是委托变量的属性.理解事件1.事件提供了更好的封装性,还能起到限制作用。2.事件的订阅和退阅,是通过“+=”和“-=”操作来实现的。事件实例1:public delegate void Greeting(string name);public
2020-10-12 23:52:51 2082 1
原创 C#设计模式_观察者模式_热水器
C#设计模式_观察者模式_热水器观察者模式由事件的特性引发出了—种设计模式-观察者设计模式,该设计 模式是为了定义对象间的—种—对多的依赖关系,以便于当—个 对象的状态改变时,其他依赖它的对象会被自动告知并更新,该设 计模式包含以下两个类:被监视对象:它往往包含其他对象所感兴趣的内容; 监视者:用来监视被监视对象,当被监视对象触发事件时,监视者 能自动接收事件.以热水器烧水为列,当温度达到95度以上时,液晶显示器来显 示当前的温度,报警器会报警:被监视对象:热水器的温度,当烧水的
2020-10-12 23:39:13 381
原创 C#委托_Func与Action
C#委托_Func与ActionFunc委托格式: Func<int,int,int> test = delegate(int,int) { return int; }; 使用Func泛型,前面两个是参数类型,最后—个是返回值类型, 其变量可以绑定匿名委托,lambda表达式和相同类型的方法,此种委托—定会有返回值;示例 class Tool//Tool类:得到a和b两个数之间最大的那个值 { public Func<int, int, i
2020-10-12 23:30:05 145
原创 C#委托_lambda表达式
C#委托_lambda表达式lambda表达式 格式:(参数)=>{要执行的代码}; 参数:相当于绑定方法的参数 {};里面相当于绑定方法的方法体 由于是赋值,是—个语句,后面的;不要省示例class Program//使用委托判断a是否大于b { public delegate bool MyDelegate(int a,int b); static void Main(string[] args) {
2020-10-12 23:21:34 126
原创 C#委托_匿名委托
C#委托_匿名委托委托变量在绑定方法时,是把方法名赋值给了委托变量名,这样就需要在类里面定义方法,而有些方法只用到了—次,这样的 方法在类里面过多时,程序的可读性就不是太好,针对这种情 况,可以使用匿名委托,即不用在类里面额外定义方法.delegate定义的匿名委托格式:delegate(参数){要执行的代码}; 参数:相当于绑定方法的参数{};里面相当于绑定方法的方法体 由于是赋值,是—个语句,后面的;不要省示例 class Program { de
2020-10-12 23:16:48 321
原创 C#委托_判断字符串相等
C#委托_判断字符串相等委托使用练习:判断字符串相等 class Program { public delegate bool JudgeDelegate(string s1, string s2);//委托类型声明 public static JudgeDelegate MyJudge;//定义委托变量 static void Main(string[] args) { string a = "chengx
2020-10-12 23:13:33 376
原创 C#委托_打印数组
C#委托_打印数组委托使用练习:打印数组class Program { public delegate void ArrayDelegate(int[] temp);//委托类型声明 public static ArrayDelegate MyPrint;//定义委托变量 static void Main(string[] args) { int[] MyArray = { 1, 2, 3 };
2020-10-12 23:10:02 724
原创 C#委托_基本语法
C#委托_基本语法委托的概念不管是值类型还是引用类型,其变量都可以进行赋值,或者作为方法的参数进行传递,而如何引用 方 法或者把方法作为参数进行传递呢?这就需要用到委托- delegate.委托也是—种类型,它与类—样,需要我们自己来定义。—种类型的方法public void Greeting(string name){}委托的定义如下:delegate 返回值类型 委托类型名 (参数)列如: delegate void GreetDelegate(string name);
2020-10-12 23:06:08 366
原创 C#泛型
C#泛型C#中的泛型能够将类型作为参数来传递,即在创建类型时用一个特定 的符号如“T”来作为一个占位符,代替实际的类型,等待在实例化时 再用一个实际的类型来代替。泛型的优点使用泛型可以的重用代码,保护类型的安全以及提高性能降低强制转换或装箱操作的成本和风险可以对泛型参数进行限定以访问特定数据类型的方法基本语法//使用静态方法交换a和b的值,运用泛型 class Program { static void Main(string[] args)
2020-10-07 14:58:12 316
原创 C#设计模式_单例设计模式
C#:单例_实现设计模式设计模式什么叫设计模式:设计模式是一套被反复使用,多数人知晓,经 过分类,代码设计经验的总结,简单理解就是前人代码设计的经 验,简称“前任攻略”。 常用的设计模式有单例模式,工厂模式,代理模式。单例模式对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可能 存在多个打印任务,但是只能有一个正在工作的任务。针对这种情况如果 某个类只能有一个实例那么则满足我们的需求,我们将满足某个类只有一 个实例的代码设计方式称为单例模式。单例模式的三要点:(1)某个类只能有一个实
2020-09-30 13:43:14 136
原创 C#属性_赋值私有字段
C#:属性_定义私有字段为类中字段手写Get方法和Set方法很麻烦,所以程序帮我们自动的封装出这个两个方法:属性属性是这样的成员:它提供灵活的机制来读取、编写或计算某个私有字段的值。 可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法。 这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。可将属性标记为 public、private、protected、internal 或 protected internal。 同一属性的 get 和 set 访问器可能具有
2020-09-13 17:41:36 5028
原创 C#类与对象_创建玩家类
C#:类与对象_创建玩家类,实现字段和方法以及引用//创建CF当中的玩家类Player,该类含有字段:名字,性别, 血量,武器。//武器背包当中匕首,步枪,机枪,狙击枪。 玩家类具有以下方法://(1)自我介绍Introduce方法//(2)换武器装备//(3)受到攻击掉血,当血量小于等于0的时候玩家死亡//(4)攻击其他玩家的方法在写玩家属性字段时,利用了枚举来方便性别和武器这种多种类别属性的封装。玩家类using System;using System.Collections.Gen
2020-09-13 13:16:35 1399
原创 Unity按钮控制动画播放
Unity按钮控制动画播放在unity中控制动画的主要思路是:如何运用Animaton控制器和如何在脚本中获取Animator组件。本篇将讲解一个通过Button来触发动画控制器的Trigger实现模型动画播放的实例,并不涉及其他动画播放的控制方法,但其他动画控制的解决思路都是类似的。1.导入一个模型,创建一个动画控制器,并命名。2.将动画文件导入动画控制器,进行逻辑设置这里我将Idl...
2020-04-15 15:45:43 23268 18
原创 C#接口
Unity Study Notes–C#接口接口:接口是一组包含了类或结构可以实现的功能的定义。由于C#只支持单继承,所以接口支持多实现的特性可以在一定程序上弥补该不足。我们可以通过interface关键字定义接口:interface Leg{ void Run();}接口的特性:接口是一个引用类型,只包含了功能的定义,不包含功能的实现C#接口成员的访问级别是默认的...
2020-04-02 17:10:50 272
Unity小游戏-飞翔的小鸟项目分享(含apk安装包)
2020-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人