![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
游戏开发
文章平均质量分 70
ToDoNothing
VR,AR,游戏项目开发请找我
展开
-
Unity Netcode for GameObjects多人联机(源文件)
删除MainCamera,新建Camera,在Scene中调整到合适视角,然后选中Camera点击Align With View,对齐视角。,安装方式也很简单,新建好Unity项目,打开菜单栏Window-Package Manager,点击加号add Package from git Url,输入以下地址,点击add等待安装完成即可。同时,为了发射子弹,添加两个空物体,作为子弹生成和发射方向的物体,然后保存预制体。创建一个球体作为子弹,给球体添加如下组件,其中Bullet为创建的新脚本。原创 2023-01-12 21:12:56 · 4862 阅读 · 1 评论 -
Unity Shader学习(九)物体边缘实现
进一步了解物体轮廓,物体轮廓其实就是物体在显示的屏幕上最外侧的边缘部分,因此要对模型最外部的边缘部分进行处理,如上图的边缘部分就是立方体的几条边,如下图所示,红色所在范围即为边缘部分。根据前面的学习,我们了解到除了可以对点的颜色进行处理,还可以对点本身进行操作,例如我们可以改变点的位置,这样就可以实现对模型渲染的操控。使用UnityObjectToClipPos函数,可以将模型空间的点转换到裁剪空间,下面这行在原来点的基础上,乘以法线点和轮廓值,向外延伸,如下图所示。...原创 2022-08-14 22:13:42 · 2609 阅读 · 0 评论 -
Unity Shader学习(七)纹理图像的简单使用
uvUV值如果uv值为(0,0),则返回左下角的像素,如果uv值为(1,1),则返回右上角的像素,如果uv值为(0.5,0.5),则返回中间像素。旋转过程中添加了一个rotate函数,该函数主要是通过矩阵实现旋转相应的度数theta,aspect参数主要是处理拉伸的情况。如果们需要把图像左右翻转或倒过来,可以通过操作uv的坐标值来实现,如下是左右翻过来。在旋转之后,会多出相同的画面,这里进行了判断处理,多出的部分变成黑色。其实也就是获取到贴图的颜色信息,再直接输出,此处用到。...原创 2022-08-01 10:26:10 · 727 阅读 · 1 评论 -
Unity多人联机框架Mirro学习记录(一)
例如在服务器端运行的OnServerConnect函数中,检测到一旦有客户端加入,就会执行该函数,conn为加入函数的客户端NetworkConnectionToClient。注册该事件,每个客户端都要注册,如果出现客户端没有注册该事件,但是仍然发送数据过去,就会出现下面这个错误,因为NetworkClient没有注册该事件,所以会出现该问题。主要是向该连接的客户端发送消息,例如我在服务端保存了所有客户端NetworkConnectionToClient,可以通过该客户端的Send函数执行对应的事件。...原创 2022-07-28 21:29:51 · 1791 阅读 · 3 评论 -
Oculus Quest2开发:(一)基础环境搭建和导包
首先我们要知道,Oculus Quest2的操作系统是定制化的安卓系统,所以我们需要导出安卓系统包,在UnityHub安装unity版本时,可以选用较新的版本,同时勾选安卓开发SDK包选项,笔者这里用的unity版本是Unity2021.3.7f1c1,如下图所示新建一个项目,这里我会使用通用渲染管线,该渲染管线支持移动VR端打开项目,在unity的上方Window》Package Manager中,搜索XR Interaction Toolkit、XR Plugin Management、Open原创 2021-06-28 16:02:24 · 3387 阅读 · 2 评论 -
摩尔庄园日记一:实现摩尔庄园里面的开垦、播种、浇水和收获
教程效果演示最近摩尔庄园这个游戏很火啊,在里面种种菜,开开荒还是不错的。不过种田虽爽,也还会思考如果是要你实现这些功能,你会怎么做呢?稍微思考了一下,其实里面的功能也没那么复杂,今天就以开垦、播种、洒水和收获这四个功能为目标,进行一些简单的实现。首先新建一个unity项目,随便写一个名字我们先看一下摩尔庄园里面的按钮布局,下方是工具或者物品选项栏,右边是选项操作按钮,选中某一个工具或物品,再点击按钮就可以使用该工具。在此之前我们先导入四个unity免费资源包,在商店可以找到在u原创 2021-06-23 17:03:30 · 1210 阅读 · 0 评论 -
Photon PUN刷新大厅房间列表
引言在早些时候,我写过一篇《使用Photon PUN创建简单对战游戏》的联机教程,这篇教程只是很简单的实现了更新房间、创建房间、加入房间的功能,其中还有很多的BUG,需要进行修复。最近因为要用到Photon PUN这个插件,所以又进行了一些探索,今天主要是针对更新房间这个操作进行进一步实现,如果想看原生的官方教程,可以查看Photon官网。初始准备前期的准备可以参考我之前的那篇文章,今天主要是针对房间更新这个BUG进行修复。为了有更好的联机服务,我也向Photon的中国光子云申请了中国区APPid,申原创 2021-06-21 13:42:27 · 1807 阅读 · 1 评论 -
unity截图保存在手机
直接上代码using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;using UnityEngine.UI;public class ScreenShot : MonoBehaviour{ //这个相机是用来截屏的,相机的Claer Flags 的属性选择为Depth Only public Camera Camer原创 2020-07-19 17:03:45 · 357 阅读 · 0 评论 -
使用Photon PUN创建简单对战游戏
photon PUN是一款用于实现联网对战的插件,原创 2020-07-15 13:12:10 · 2569 阅读 · 14 评论 -
游戏设计模式之简单工厂模式(一)
好久没更新了,这个月开始更新和学习几种游戏设计模式,我根据自己的理解去解释和说明这些模式,也算是为自己做一些积累,如果出现一些理解或者是应用错误,请各位大佬一一指出!!!!!...原创 2018-11-02 22:50:18 · 449 阅读 · 0 评论 -
游戏设计模式之策略模式(二)
今天来讲一下策略模式。在我们进行游戏开发的时候,总避免不了改动自己的算法。特别是你做完一个功能之后,策划跑来跟你说,我觉得我们还可以加一个功能(这个功能跟前一个功能类似),第一次过来跟你说要加,那自然是很简单,但是如果一次又一次地跑过来,这样一遍又一遍要重新添加功能,也意味着要重新写算法,特别是关系特别复杂的算法,操作起来难免会特别麻烦,而且脚本代码多了,有可能连自己都不知道先前的在写什么。所以...原创 2018-11-06 18:20:51 · 585 阅读 · 0 评论 -
Unity简单有限状态机实现
【前言】 本篇来说一下关于简单有限状态机的算法实现,当然我们的几个状态会比较简单,而且本身我也是处于入门状态,所以当成一个简单的知识积累。有限状态机,顾名思义,状态是有限个的,而且状态之间是关联的,本篇写的状态机,其实是类似写游戏里面的AI机器人,就是那些游戏里面的怪啊,npc啊,本篇也是针对几个行为或者是状态,进行设计,编写相关脚本。1.新建·一个项目,再资源商店搜索Zombie,导入敌人的模...原创 2018-09-22 10:12:26 · 4523 阅读 · 0 评论 -
摄像机跟随之第三人称视角(一)
在我们开发游戏的时候,总避免不了对摄像机的设置,当然,这也因为每款游戏类型不一样,所以摄像机的跟随或者说放置位置不一样,这也要求我们写出合适的算法。本篇就主要是针对第三人称视角的摄像机,进行算法设计分析。 首先来分析第三人称摄像机的特性: 1.始终在角色后面 2.可以通过移动鼠标围绕主角 3,类似半上帝视角 Ok,有了上面的分析,我们就要进行算法设计。 在设计之前,我们来回顾一下高中数...原创 2018-09-10 10:34:46 · 4047 阅读 · 0 评论 -
Unity自动寻路功能的实现(一)
Unity自动寻路功能的实现在Unity中,要实现自动寻路功能,其实是有很多办法的,今天我就介绍三种比较简单的办法,入手即会。方法一:使用自带的Navigation寻路组件操作如下:打开Unity,新建项目,新建一个Plane,随便建一两堵墙,创建一个cube作为玩家,创建一个空物体,作为目的地,如下图 然后,把地面Plane和wall设置为静态, 点开Windows菜...原创 2018-08-11 23:25:07 · 18883 阅读 · 4 评论 -
Unity初级项目实战:官方宇宙飞机大战游戏(一)
一.创建项目和下载素材,设置背景 1.新建一个项目,取名为MySpaceShooterDemo 2.在资源商店搜索Space Shooter tutorial,然后下载导入,导入时会询问是否覆盖,点击是即可 3.在场景里新建一个Quad面,取名为BackGrounnd01,设置X轴旋转90度,放大,拉伸。把摄像机X轴设置旋转90度,设置位置 4.找到下面这个贴图,然后拖到背...原创 2018-08-15 22:59:47 · 13208 阅读 · 2 评论 -
Unity 车轮碰撞器的入门使用(二)
Unity 车轮碰撞器的入门使用(二)这节来分析一下车轮碰撞器里面的参数:如图 Mass:车轮的质量大小 Radius:车轮的半径大小 Wheel Damping Rate:车轮的阻尼值大小,必须要大于0。可以控制车辆抖动,减少震动 Suspension Distance:官方翻译为:车轮悬挂的最大伸长距离,在局部空间测量。悬架总是通过局部Y轴向下延伸 Force App Poi...原创 2018-08-13 22:39:51 · 4180 阅读 · 0 评论 -
Unity自动寻路功能的实现(二)
方法二:自己写脚本,定义路点自动寻路 首先,新建一个地面,添加一个Cube作为玩家,改名Player,然后创建3个空物体,位置要不一样,然后改名为Point01,Point02,Point03,我设置的如下: 3个路点作为玩家要去的目标点 然后新建一个AutoMove脚本,挂到Player下,脚本如下using System.Collections;using System.C...原创 2018-08-13 23:12:00 · 3175 阅读 · 2 评论 -
Unity初级项目实战:官方宇宙飞机大战游戏(二)
二.设置玩家飞行器,控制玩家移动和限制范围,制作子弹,控制发射子弹 1.在Models文件夹里面找到vehicle_playerShip,拉进Scene面板,取名为Player,位置往上拉5米 2.给player加上Box碰撞器,同时在Player前方新建一个子物体,作为子弹生成的位置,每次发射子弹,在这里生成发射 3.然后在文件夹里找到飞船的引擎的粒子特效,拉到Player下作为子...原创 2018-08-16 23:20:10 · 4274 阅读 · 0 评论 -
Unity初级项目实战:官方宇宙飞机大战游戏(四)
四。控制陨石的生成和控制发射和爆炸声音 1.陨石的生成。新建一个名为EnemySpawnPosition的空物体,位置和旋转角度如下 2.在随便创建一个空物体,取名为M_GameManager,新建一个脚本也是这个名字,用来处理陨石生成的算法,作为游戏控制器存在 3.打开M_GameManager脚本,编辑如下using System.Collections;using S...原创 2018-08-22 22:31:34 · 2902 阅读 · 0 评论 -
Unity初级项目实战:官方宇宙飞机大战游戏(三)
三。子弹的销毁,玩家的销毁,陨石制作 1.关于子弹销毁,可以在最上方新建一个空物体,为它添加碰撞器,子弹碰到这个空物体的碰撞器,就销毁子弹。同时为这个空物体添加标签DestroyBounder,勾上Is Trigger 2.打开子弹脚本,添加以下方法,运行,发射子弹便可以发现子弹在运行之后会消失。这样,就解决了残留的子弹的问题。 private void OnTriggerEnter...原创 2018-08-21 20:52:25 · 3154 阅读 · 2 评论 -
Unity初级项目实战:官方宇宙飞机大战游戏(五)
五。设计计算分数和重新开始 1.首先,新建一个UGUI的Text,移到合适位置,设置锚点,固定在一个地方,然后在游戏管理器里面加上以下参数和方法using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class M_GameMan...原创 2018-08-25 17:18:48 · 3223 阅读 · 0 评论 -
关于unity实现换装的几个难点
一.难点一:找到需要换装的网格组件。因为在人物模型中,有大量的骨骼网格组件,在进行换装时,需要对他们进行获取,然后赋予材质。而一般我们会使用的找寻物体的方式,一般有: 1.通过父物体找子物体,通过名字,或者索引找到子物体,然后获取其组件。如 Transform eyes = transform.Find("eyes");//找到该物体下的子物体2.通过标签获得物体,事先设置好标签(ta...原创 2018-09-06 21:51:13 · 1262 阅读 · 0 评论 -
摄像机跟随之第一人称视角
本篇讲的是第一人称视角摄像机的跟随,在这里我们讲两种方法,第一种是,用别人的插件,第二种是自己写脚本。 一.插件或者已经写好的脚本 在官方的资源包里面有一个第一人称的预制体,非常实用。直接把预制体拖到场景里即可,运行。关于官方脚本的解析,后期还会做相关的文章解析。 二.自己写脚本 脚本一:不能控制上下仰角,新建脚本Player,using System.Collections...原创 2018-09-16 23:07:18 · 1943 阅读 · 0 评论 -
Unity关于销毁和保留物体
最近在做VR项目的时候,当我从A场景跳到B场景,但是它使用的还是A场景的手柄和眼镜,并没有把A场景的手柄和眼镜销毁,而它使用的是unity内置的一个函数,一开始通过查资料,我发现只要不勾选Persist On Load,在进入下一个场景之后,便不会再保存上一个场景的手柄和眼镜,而这种加载另外一个场景而保存前一个场景的物品,是通过Unity内置的一种销毁方式来实现的,本节就来讲一下unity里面的几...原创 2018-08-14 22:34:34 · 10367 阅读 · 1 评论