- 博客(39)
- 收藏
- 关注
原创 U盘装系统及启动盘制作
制作启动盘这里用到的启动盘制作是Ventoy。注意需要提前备份U盘中的文件,安装过程中会将U盘格式化。官网:https://www.ventoy.net/cn/index.htmlGitHub:https://github.com/ventoy/Ventoy下载好后如在windows系统下安装则需要打开ventoy-1.0.50-windows文件,双击运行其中的Ventoy2Disk.exe点击安装即可如安装失败则尝试用以下方法,和普通使用 Ventoy2Disk 的方法一样,只是在最后点
2021-08-31 13:25:54
3903
原创 Unity3D中小地图的添加
我们在很多游戏中都能看到小地图这个功能,小地图可以全局地看到游戏的场景和其他玩家所在的位置,这个功能还是很实用并且常见的,下面给大家演示一下怎么做出小地图的效果。1.搭建场景首先在Unity中搭建出场景,也就是小地图所显示出的区域。这是我简单搭建的一个场景,仅供参考:2.新建一个摄像机,并取名为Camera_Top。改变摄像机的位置,改变摄像机的X周旋转为90度,使摄像机照射区域为场景的区域。3.新建Render Texture在Assets面板中新建一个Render Texture,并且取名
2020-11-20 14:55:42
1011
原创 U3D基础篇之人工智能—攻击与追踪
敌人攻击在上一节的基础上进行完善Enemy类。首先添加这些变量。 public float chaseSpeed = 6f;//追踪速度 public float chaseWaitTime = 5f;//追踪时间 private float chaseTimer = 0f;//已经追踪的时间 public float sqrPlayerDist = 4f;//与玩家的距离 private bool chase = false;//是否追踪 public
2020-10-08 17:31:16
519
原创 U3D基础篇之人工智能—敌人视野
首先在敌人上创建一个空的子物体,然后给这个子物体添加Box Collider组件,然后设置BoxCollider的范围。因为这个范围只是作为触发器进行使用,所以将is trigger进行勾选。然后在这个子物体上添加脚本 public float fieldOfView = 100f;//敌人发现玩家的视野 public bool playerInSight = false;//玩家是否被发现 public Vector3 playerLastSight; public Vector3
2020-10-05 16:29:21
493
原创 U3D基础之人工智能—敌人巡逻
敌人巡逻首先在场景中创建几个巡逻的点,将玩家和敌人的Tag设置为相应的Tag其中enemy的组件如下在Enemy脚本中代码如下public class Enemy : MonoBehaviour{ public float PatrolSpeed = 3f; public float PatrolWaitTime = 1f; public Transform PatrolWayPoints; private NavMeshAgent agent; priv
2020-10-05 16:18:43
690
原创 U3D基础之人工智能—自动寻路
首先将场景搭建好实现玩家自动朝着目标点运动添加一个玩家角色,想让玩家有自动寻路的功能需要在玩家的组件中添加一个Nav Mesh Agent组件。在场景中添加一个空物体作为目标点的位置。然后给玩家添加脚本,内容如下public class Actor : MonoBehaviour{ public Transform goal;//目标位置 private NavMeshAgent agent; private void Start() { agent
2020-10-05 13:23:02
380
原创 Unity3D打包设置成窗口模式(可调节像素)
U3D打包首先要在Scenes In Build中添加上游戏的场景,然后在player setting中进行设置注意这里选择的是enabled,其他按照图示勾选就可以了。然后点击运行就OK了
2020-09-20 15:47:19
12917
原创 C#基础篇第十三天
C#中的访问修饰符Public:公开的公共的Private:私有的,只能在当前类的内部访问Protected:受保护的,只能在当前类的内部以及该类的子类中访问Internal:只能在当前项目中访问,在同一个项目中,internal和public的权限一样Protected internal: Protected+ internal1)能够修饰类的访问修饰符有两个:public和internal。2)可访问性不一致:子类的访问权限不能高于父类的访问权限,会暴露父类的成员。密封类密封类不能被继
2020-09-14 15:38:02
138
原创 C#基础篇第十二天--下
多态实现多态的三个方法:1.虚方法 2.抽象类 3.接口虚方法首先将父类的函数标记为虚方法,在父类的方法返回之前加关键字virtual。在子类的方法返回前加override。class Program { static void Main(string[] args) { Chinese c1 =new Chinese( "张三"); Chinese c2 = new Chinese("李四");
2020-09-13 17:51:18
353
原创 C#使用多态(抽象类)求面积和周长
class Program { static void Main(string[] args) { //使用多态求矩形以及圆形的面积和周长 Shape shape = new Square(3,2); double area = shape.GetArea(); double perimter = shape.GetPerimter(); Conso
2020-09-13 17:26:05
1771
原创 C#基础篇第十二天--上
File类读写文件 //按照指定的编码格式按行读,返回的是个数组 string[] str= File.ReadAllLines(@"E:\C#\网盘课程\12Day\1\a.txt",Encoding.Default); //返回的是个字符串 string str = File.ReadAllText(@"E:\C#\网盘课程\12Day\1\a.txt", Encoding.Default);
2020-09-13 11:39:47
92
原创 在一个字符串中各个字母出现的次数
问题:统计welcome to china各个字母出现的次数,不考虑大小写 string str = "welcome to china"; //创建一个字典,在键中存放字母,值中存放出现的次数 Dictionary<char, int> dic = new Dictionary<char, int>(); for (int i = 0; i < str.Length; i++)
2020-09-12 18:03:56
633
原创 C#基础篇第十一天
里氏转换定义:1.子类可以赋值给父类。2.如果父类中装的是子类对象,那么可以将这个父类强转为子类对象。 //1.子类可以赋值给父类;如果有一个地方需要一个父类作为参数,我们可以给一个子类代替 Student S = new Student(); Person P = S; //2.如果父类中装的是子类对象,那么可以将这个父类强转为子类对象 Student SS = (Stud
2020-09-12 10:44:22
109
原创 C#基础篇第十天
命名空间类是属于命名空间的。快捷键:Alt+Shift+F10能够快速地显示所需的命名空间。同一个解决方案中一个项目中引用另一个项目中的类:右键点击引用–添加引用–项目(选择要引用的项目)确定,然后再写上引用类的命名空间。值类型和引用类型区别:值类型和引用类型再内存中存储的地方不一样。在传递值类型和引用类型的时候,传递的方式不一样。值类型存储在栈中,引用类型存储在堆中。常见的值类型:int,double,bool,char,decimal,struct,enum常见的引用类型:
2020-09-11 10:18:56
205
原创 Unity3D射击类游戏制作第五节--玩家角色-武器
ps:因为在上一节中子弹的射击是连续的,暂时还没有找到解决的办法,所以在RobotPlayer中加了如下代码: if (Input.GetKeyDown(KeyCode.Space)) { animator.SetBool("Shoot", false); }武器类WeaponBase的编程如下:using System.Collections;using System.Collections.Generic;using Un
2020-05-18 10:52:56
1218
1
原创 Unity3D射击类游戏制作第四节--玩家角色-交互
将之前制作好的角色模型变成预制体,并命名为Player。并将player的Tag设置为player.添加Rigidbody,Character Controller,Capsule Collider组件将Rigidbody组件设置为运动学这个角色是由RobotPlayer所控制。并且RobotPlayer是继承自BaseRobot。其中BaseRobot代码如下:using System.Collections;using System.Collections.Generic;using
2020-05-17 00:05:50
873
原创 Unity3D射击类游戏制作第二节--规划游戏数据
我们上一节已经搭建好了游戏的场景,我们这一节进行规划游戏中的数据。添加标签并取名为Enemy添加一个新的layer取名为Ignore Bullet打开并取消勾选Edit–Project Setting–Physics新建一些文件夹在Codes文件夹下新建脚本并在HUD脚本中写如下程序using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI
2020-05-10 00:04:23
434
原创 Unity3D射击类游戏制作第一节--场景搭建
导入资源在Asset Store中下载游戏所需的资源:FPS Icons Pack;RPG_FPS_game_assets_industrial;SciFiWarriorPBRHPPolyart并把Scenes中的SampleScene改名为BattleScene搭建场景创建一个plane,并将其放大,这里是将plane的X,Z轴都放大6倍。并将其命名为Ground。再给平面添加一个Layer,再把地面的layer设为新建的layer.因为地面不发生移动,所以把Ground的Static勾选上。
2020-05-09 17:52:56
2025
1
原创 Unity3D消耗CPU过高解决办法
今天打开Unity刚制作好一个场景然后就这样了是因为打开了实时渲染的缘故,只需把Window–Rendering–Lighting Setting打开将这个取消勾选即可然后就OK了
2020-05-09 17:24:53
8666
3
原创 Unity基础篇--Mathf类
常用的几个函数void Start() { Debug.Log(Mathf.PI);//PI值 Debug.Log(Mathf.NegativeInfinity);//负无穷 Debug.Log(Mathf.Infinity);//正无穷 Debug.Log(Mathf.CeilToInt(3.6f));//向上取整数 ...
2020-05-05 19:47:01
434
原创 Unity3D基础篇--Time类
Time.deltaTime 增量时间using System.Collections;using System.Collections.Generic;using UnityEngine;public class test01 : MonoBehaviour{ public GameObject cube; // Start is called before the ...
2020-05-05 16:47:09
197
原创 Unity中摄像机案例
镜子效果制作制作流程1、创建Cube,调整期位置,移到主摄像机之前2、创建Plane,重命名为“jingzi”,旋转角度,使其立起来3、在“jingzi”后面新建一个摄像机(camera),调整camera方向,使其正对Cube4、创建一个渲染纹理资源:jingzi.renderTexture5、在camera属性面板中,将jingzi.renderTexture拖到Target Te...
2020-04-24 09:33:25
324
原创 Unity3D基础篇-Transform类
Transform类的运用案例一Transform.childCount --子物体数将sphere设定为cube的子物体,然后运行以下代码public Transform cube; public Transform Sphere; // Start is called before the first frame update void Start() ...
2020-04-19 21:43:14
988
原创 Unity3D基础篇-Gameobject类
Gameobject类Gameobject.Find(name); 查找找到并返回一个名字为name的游戏物体,如果没有找到,则返回null。案例1: public GameObject cube; // Start is called before the first frame update void Start() { cube = Ga...
2020-04-12 20:46:25
341
原创 Unity3D基础篇第一天
C#脚本编写注意要点脚本命名首字母大写;脚本名字不能和已知方法名相同;脚本名与类名不一致,脚本添加不到对象上;C#脚本声明周期我们会发现,脚本里自带两个函数: void Start() { } void Update() { }start方法在update前进行调用,只调用一次(所以无论start方法无论是写在update前面还是后面,都先调用...
2020-04-11 16:00:59
142
原创 C#基础篇第九天
面向过程面向的就是完成这件事的过程,强调的是完成这件事的动作例:把大象塞进冰箱1)打开冰箱门2)把大象塞进去3)关上冰箱门当我们用面向过程的思维去解决这件事的时候,当执行这件事的人不用的时候,我们需要为每个不用的人量身定做解决这件事的不同的面向过程的方法。优点就是和人的思维是一样的,容易理解。面向对象例:把大象塞进冰箱我们把大象作为一个对象1)冰箱门被打开2)大象被塞进冰箱...
2019-12-17 19:57:23
131
原创 C#飞行棋源码
游戏规则如果玩家A踩到了玩家B,玩家B退6格踩到了1幸运轮盘,a交换位置,b轰炸对方使对方退6格踩到了2地雷,退6格踩到了3暂停,暂停一回合踩到了4时空隧道,进10格踩到了方块,什么都不干0表示普通关卡1表示幸运轮盘◎2表示地雷★3表示暂停▲4表示时空隧道卍关于飞行棋源码的解析,下一篇文章发出。源码using System;using System.Collectio...
2019-12-05 14:02:10
1117
1
原创 C#基础篇第七天
方法使用时注意我们在Main()函数中调用Test()函数,我们称Main函数为调用者,称Test函数为被调用者。如果被调用者想要得到调用者的值:传递参数使用静态字段来模拟全局变量如果调用者想要得到被调用者的值:返回值不管是形参还是实参都是在内存中开辟空间的。形参和实参必须保证类型一样,个数一样。方法的功能一定要单一。方法中的高级参数Out参数如果你在一个方法中,返...
2019-12-01 10:36:58
157
原创 C#基础篇第六天
常量常量一旦赋值后就不能改变声明的时候需要使用关键字const枚举语法:[public] enum 枚举名{值一,值二,值三,…}枚举不能声明到main函数中,应声明在命名空间的下面,类的外边。简单示例:namespace DomeOne{ //枚举的声明 enum name { 张三, 李四, } ...
2019-11-24 17:52:38
114
原创 C#基础篇第五天
断点调试第一种:F11逐语句调试(单步调试)第二种:F10逐过程调试第三种:断点调试(在句首可加断点)注意:有的电脑需要搭配Fn键一起使用for循环语法:For(表达式1;表达式2;表达式3){}快捷键:打出for后摁两下Tab键,自动生成for循环框架如果想运用for循环逆向打印输出,摁forr再摁两下Tab键可生成逆向输出的for循环类型转换Convert()方法...
2019-11-21 20:58:23
95
原创 C#求100以内的所有质数
找出100之内的所有的质数只能被1和自身整除的数称为质数using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DmeThree{ class Program { ...
2019-11-21 19:52:25
5293
1
原创 C#写乘法口诀表
C#写乘法口诀表using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 乘法口诀表{ class Program { static void Main(string[...
2019-11-20 18:16:42
1483
原创 C#求水仙花数
for循环练习水仙花数找出100-999之间的水仙花数,水仙花数值得是这个百位数字的百位的立方加上十位的立方加上个位的立方==当前这个百位数字using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ...
2019-11-20 17:52:13
3656
2
原创 C#基础篇第四天
异常捕获我们在程序中经常会出现各种各样的异常,你如果想要你的程序变得坚强一些,在你的代码中应该经常性的使用try–catch语句进行异常捕获哪行代码有可能出现异常,就try起来。语法:Try{可能会出现异常的代码}Catch{出现异常后要执行的代码}执行过程:如果try中的代码没有出现异常,那么catch中的代码不会执行如果try中的代码出现了异常,哪怕这行代码后面还有一...
2019-11-19 21:12:28
71
原创 C#基础篇第三天
类型转换如果两个类型的变量不兼容,比如string和int。可以使用convert的转换工厂进行转换使用方法: // Convert类型转换 // 输入每个科目的成绩,然后输出总和和平均分 Console.WriteLine("请输入您的语文成绩:"); string chinese = Cons...
2019-11-17 14:13:03
98
原创 C#基础篇第二天
注释单行注释 //多行注释 /* */文档解析注释 /// 写在函数或类名前一行即可用于解析函数或类的内容 /// <summary> /// /// </summary> class one { }常用快捷键ctrl+k+d:快速对齐F1:转达帮助文档msdnshift+home:...
2019-11-16 15:26:35
99
原创 C#学习篇第一天
C#成长之路【第一天】**一,Visual Sudio编辑器介绍1.1,.Net.Net平台类似于厨房;.Net FramWork框架类似于食材及厨具;基于这两个条件开发出的应用就类似于一道精美的美食。.Net FromWork框架是.Net平台中不可缺少的一部分,它提供了一个稳定的运行环境来保证我们基于.Net平台开发的应用能够正常的运转。.Net FromWork组成Net Fr...
2019-10-26 14:46:01
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人