
游戏开发
西安光锐软件
图形处理
展开
-
PhotonFusion 使用-Session
Photon Fusion开发原创 2022-12-14 22:22:37 · 1172 阅读 · 0 评论 -
Stop can only be called on an active agent that has been placed on a NavMesh
Stop can only be called on an active agent that has been placed on a NavMesh 解决办法原因是组件在执行过程中,发现主体已经销毁了,所以在销毁前将行为树还有navmeshagent组件禁用掉。 GetComponent<BehaviorTree>().enabled=false; GetComponent<NavMeshAgent>().enabled = false;...原创 2020-11-10 18:16:26 · 1489 阅读 · 0 评论 -
ML-AGENT模仿学习(一)
https://v.qq.com/x/page/i070855nabf.htmlunity官方老师讲解视频如上。什么是模拟学习有很多开发者都咨询过这个问题,甚至还会追问“模仿学习与强化学习的区别是什么?”Alexandre Attia和Sharone Dayan在今年1月发表的《模仿学习全面概述》中,做出了定义:模仿学习是学习者尝试模仿专家行为,从而获取最佳性能的一系列任务。这里的“学习者...转载 2020-04-28 23:08:32 · 1026 阅读 · 0 评论 -
高智商AI设计实战
unity中关于MLAGENTS支持智能AI给稍微复杂的变化环境下的AI像人类玩家一样思考,带来了极大惊喜。分享一下机器学习的模式。如图:给定的剧情比较简单,要求AI尽可能在纷繁复杂的物体中间捡拾绿色物体,就跟AI需要靠近某些攻击对象或者分类捡拾有用道具的需求基础。上一篇已经给大家介绍了环境的搭建,本篇之间干货。using System.Collections;using System.C...原创 2020-04-21 01:15:44 · 368 阅读 · 1 评论 -
网络对战游戏开发 从零开始(一)
效果以及结构如图:主要技术要点:运用Photon技术实现网络部分,界面用photoshop运用一些高斯模糊、描边、内外发光、渐变叠加实现如图的效果,运用异步加载场景。加载动画运用粒子特效。using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;u...原创 2020-04-16 23:31:42 · 548 阅读 · 0 评论 -
游戏中物体点击变亮实用技巧
在游戏中,经常要用到被点击的物体或者被碰触的物体需要改变颜色状态,介绍一个简单实用的技巧。1.物体添加一个材质,材质要有颜色属性。(传统的shader改造请参考我的shader改造那一篇)2.在物体上添加脚本。using System.Collections;using UnityEngine;public class OnClickFlashRpc : Photon.Pun...原创 2020-03-31 15:58:46 · 398 阅读 · 0 评论 -
游戏中超级实用的加血值、伤害值等提示显示的制作实战
游戏中必不可缺的信息提示类,比如攻击伤害值、药瓶加血值等显示,给大家分享一下制作过程。效果如图:会显示一段时间,向上渐隐掉。1.创作显示预制体prefab.建立空物体作为父物体HitReport;建立两个空物体作为子物体,每个子物体添加Text Mesh组件,作为显示信息。2.为父物体创作脚本,如下:using UnityEngine;using System.Collect...原创 2020-03-30 16:04:02 · 572 阅读 · 0 评论 -
游戏中制作酷炫拖尾残影效果实战
发现好多人都想要这个拖尾残影的效果,今天贴出来。今天制作拖尾残影效果,效果如图:两个视角我的游戏中角色有冲刺技能,冲刺中身后要有一个残影效果,这种效果就满足了,现在分享给大家如何制作。1.观察需要一个中间实心,两侧透明度减淡的图片作为shader的基本贴图,photoshop制作比较简单。2.制作shader一个传统的shader,看你版本支持不,新版本不支持就升级成urp版本,...原创 2020-03-29 11:17:25 · 2525 阅读 · 0 评论 -
超级逼真爆炸效果火烧痕迹创作实战
接着盘一个老shader,如图:把他改造成shader graph如下:效果前后对比:效果比对还可以,尤其背景基本一致,改造成功。需要注意的问题:选用unlit,不需要灯光烘培的,要自发光类型,alpha要设置为0,以为原图中已经设计完备了透明度。...原创 2020-03-28 20:53:42 · 849 阅读 · 0 评论 -
游戏中冰冻效果与毒球效果制作实战
接着改造一个稍微复杂些的冰冻、毒球的shader,游戏中比较通用,可通过改造参数实现一些被击打后的效果特效。shader 代码如下:Shader “Effects/Ice/IceFront” {Properties {_Color (“Main Color”, Color) = (1,1,1,1)_SpecColor (“Specular Color”, Color) = (0.5,0.5...原创 2020-03-27 19:26:24 · 1057 阅读 · 4 评论 -
传统shader如何改写成Shader Graph实战
流行URP进入项目后,很多之前好的shader不能怎么办?大部分系统不能升级怎么办?只有一个办法了,就是改写,怎么改写呢?如下:Shader “Effects/Frozen” {Properties {_Color (“Color”, Color) = (1,1,1,1)_MainTex (“Ice ® Overlay (GB) Texture”, 2D) = “white” {}_Cu...原创 2020-03-27 02:32:03 · 3353 阅读 · 0 评论 -
游戏场景中各类物体碰撞设计实战
3D游戏场景中很多碰撞对象需要处理,总体分为,一墙壁、树木、岩石等环境静态类,二人物角色、本地操作玩家、NPC、AI等脚本控制移动类,三子弹、技能球、技能碰撞物等速度快的物体。这三类的碰撞分析大概为,第一种只需要加collider组件,不要加rigidbody,因为这两个组合实现只有碰撞,没有碰撞效果,如位移、旋转等,没有刚体rigidbody,就不会有碰撞效果,就好像人只是棉花做的,不会有任务碰...原创 2020-03-26 11:46:01 · 1150 阅读 · 0 评论 -
ProBuilder工具、命令解析
Object Selection模式下:New Shape根据特定参数创建一个多边形模型。创建流程是这样的:先选择一个Shape,场景中会出现一个蓝色的对象,然后调整参数和位置得到合适的模型,点击“Build”,得到一个白色的最终模型。New Poly Shape允许用户先用点线围出一个封闭的形状,然后设定挤出高度,以获得一个不规则的墙体形状。Smoothing打开“光滑组...转载 2020-03-20 23:18:10 · 2128 阅读 · 0 评论 -
战斗场景效果使用或升级到URP,实现最新效果
以往很多时候羡慕别人的场景效果非常酷炫,但是之前的手游支持比较有限,一些UNITY内设的shader也比较有限,很多shader也支持不好,后来推出了LWRP实现了手游断的效果提升,shader graph的出现实现了很多人效果酷炫的梦想,不用去学习难驾驭的shader lab,当然了知识迭代的同时肯定有继承,前面的知识会让后面的新技术使用起来比较节约时间,只是熟悉下图形界面。再到后面推出的URP...原创 2020-03-14 16:42:23 · 1565 阅读 · 0 评论 -
游戏中超级逼真岩浆效果开发实战
岩浆效果的实现上干货,不清楚留言。上干货,不清楚留言。原创 2020-03-11 14:41:47 · 1025 阅读 · 0 评论 -
物体的移动转动及离开战场的销毁处理
物体的移动转动及离开战场的销毁处理移动GetComponent().velocity = transform.forward * speed;转动GetComponent().angularVelocity = Random.insideUnitSphere * testnum;离开战场用OnTriggerExit 判断void OnTriggerExit (Collider othe...原创 2020-02-05 13:44:53 · 221 阅读 · 0 评论 -
让机器人更加智能_AI中增加随机巡逻思考
下面是部门代码:using UnityEngine;using Photon.Pun.Demo.PunBasics;namespace BehaviorDesigner.Runtime.Tasks.Movement{public class SeekRandomPosition : Action{ [Tooltip("The speed of the agent")] ...原创 2019-12-26 15:32:15 · 329 阅读 · 2 评论 -
Unity中运用BehaviorDesigner开发AI的一些问题探索
AI的设计我选择了BehaviorDesigner行为树,比状态机效率相对高,在前面已经介绍过BehaviorDesigner的一些用法,游戏框架基本完成,进入开发的中间过程,对AI的要求又要迭代更新了,要求真正的表现出高逼真高智能,在前面的设计中AI在周边没有敌情的情况下是站立不动的,这表现的有点呆,要让他模仿人,走走停停,不停的思考下一步该休息还是随便走走寻找下目标,核心应该是三个随机的运用,...原创 2019-12-26 08:41:29 · 403 阅读 · 0 评论 -
基于Photon实现的网络游戏中AI的设计关键点
基于PHOTON网络游戏AI中的设计思路首先要搞清楚photon的网络实现框架,要不然在网络多客户端设计上就容易混乱,有时还不太好调试bug。photon中平等的客户端中有一个是主客户端,masterclient,他要兼任服务器的角色。那又要将游戏中的服务端、普通客户端的逻辑剥离清楚,比如服务端生成整个场景的AI,物体等,其他底层的数据共享传输事件更新我们可以忽略掉,因为已经封装在里面,知道怎...原创 2019-12-24 13:04:10 · 466 阅读 · 0 评论 -
buff制作
游戏人物头顶的buff制作直接上干货,第一个脚本负责生成buff并挂载到英雄头顶。public class ShowBuff : MonoBehaviour {public GameObject target;float characterControllerHeight;Transform targetTransform;Renderer targetRenderer;Ve...原创 2019-11-28 16:09:39 · 476 阅读 · 0 评论 -
技能攻击碰撞的几点思考
英雄释放技能需要检测是否攻击到对方?范围攻击还是指向攻击或是巡航攻击?技能释放后如何不伤害到自己?我采用的方法有:射线检测,物理碰撞,范围判断。其中物理碰撞中避免攻击到自己的方法是实例化技能物体时,直接两个物体进行设置不发生碰撞,前一篇已说;范围判断相对简单,不去解释;射线检测上代码:var endPoint = effectSettings.IsHomingMove ? tTarget.pos...原创 2019-11-07 14:21:08 · 325 阅读 · 0 评论 -
解决指定物体不发生碰撞
指定不碰撞的方法有层设置,触发器,前面单机版比较实用,但在网络游戏中某些场合不适用,比如自己的技能打出去不能伤害自己,同一个英雄可能好几个玩家都在用,设置层碰撞明显不好解决,用unity官网 Physics.IgnoreCollision来解决,方法如下:using UnityEngine;using System.Collections;public class ExampleClass...原创 2019-10-21 17:07:06 · 965 阅读 · 0 评论 -
分享拖尾效果制作
using UnityEngine;using System.Collections;using System.Collections.Generic;[AddComponentMenu(“PocketRPG/Blade Master”)]public class TrailsBladeMaster : MonoBehaviour{/// /// 拖尾效果/// public W...转载 2019-10-17 10:42:44 · 305 阅读 · 0 评论 -
游戏基本框架功能已基本实现
游戏完整截图原创 2019-10-15 16:23:13 · 456 阅读 · 0 评论 -
网络游戏中主游戏客户端的时间协同问题解决办法
网络游戏中如何在玩家进入房间后,当主客户端点击开始后,其他客户端同步开始加载进度,这是每个开发网络游戏必然要遇到的问题,如何解决?思路其实与之前的网络游戏解决时间同步问题的解决办法类似,原理很简单,主客户端(充当服务器作用的客户端)在点击游戏开始时,写入一个变量赋予当前房间,在所有客户端重写更新房间客户端信息方法,方法中取前者变量,进行判断后,进入加载界面,如此就实现了所有客户端的同步。上图上...原创 2019-10-12 08:34:46 · 634 阅读 · 0 评论 -
Behavior Designer 使用
AIobj = PhotonNetwork.InstantiateSceneObject(AI_model[0].Name, new Vector3(UnityEngine.Random.insideUnitCircle.x * 10, 0.1f, UnityEngine.Random.insideUnitCircle.y * 10), Quaternion.identity, 0);Beha...原创 2019-07-17 15:02:45 · 668 阅读 · 0 评论 -
【Unity开发】Unity3d中定时器使用
using UnityEngine;using System.Collections;using System.Timers;public class Timer : MonoBehaviour {int iCount=0;private System.Timers.Timer m_tmr=new System.Timers.Timer();// Use this for initia...转载 2019-07-29 10:29:16 · 437 阅读 · 0 评论 -
BehaviorDesigner学习
行为树:行为树设计师插件是一个专门为unity设计的AI插件。通过继承Behavior中的Task下的四个节点,可以创建自己的行为树节点。行为树中的自定义类型均为sharedType:SharedInt,Sharedfloat…可使用BehaviorTreen.Getvariable,BehaviorTreen.Setvariable,BehaviorTreen.SetvariableVa...转载 2019-07-24 10:26:21 · 463 阅读 · 0 评论 -
mobile中AI设计思路
unity中AI设计是整个游戏的重点核心,如何让AI真正像拥有大脑一样去战斗去逃离直接决定了游戏的可玩性,不只是单机版游戏的核心,网络对战同样非常重要,尤其像我做的现在体量小的网络对战游戏,目前游戏不火,玩家数量少,人类玩家进入游戏房间可同时在线玩的人少,如果没有高智商的AI陪玩,玩家数量肯定更上不去,因此如何设计好AI横亘在我面前无法绕过。研究总结了下近期的烧脑成果:一是采用机器学习,搭建学习环...原创 2019-07-19 11:01:37 · 292 阅读 · 0 评论 -
procedural-stochastic-texturing-master 一个可以改变模型重复贴图的好插件
目前此插件支持2018版以后,在制作比如塔防地板地图相似部分较大,一般用贴图覆盖会有明显重复影响视觉和效果,此插件可以随机覆盖,解决以上问题,但是像砖墙等规则特别强的不适用。...原创 2019-02-22 13:53:59 · 2829 阅读 · 0 评论 -
收藏behavior designer中文教程
Behavior Designer 概述Behavior Designer 是一个行为树插件!是为了让设计师,程序员,美术人员方便使用的可视化编辑器!Behavior Designer 提供了强大的 API 可以让你轻松的创建 tasks(任务),配合 uScript 和 PlayMaker 这样的插件,可以不费吹灰之力就能够创建出强大的 AI 系统,而无需写一行代码!本指南将介绍所有 Beh...转载 2019-07-25 15:27:07 · 1849 阅读 · 0 评论 -
AI 中技能判断与释放
AI符合攻击条件时,要来判断是否有攻击技能可以释放,如果有攻击技能,进行释放攻击,如果没有不再追击,防止被他人攻击。用到协程计时,非常好用,推荐。public override TaskStatus OnUpdate(){if (Skill_ID.Value != 0&& attacktarget.Value != null){GetComponent<AI_Pl...原创 2019-08-05 14:18:57 · 454 阅读 · 0 评论 -
Behavior Designer 中CanSee Object与Within Distance的使用区别
如上图,使用这两个条件时,注意区分关键不同,can see object 只能看一个物体,因为源码里用的是GameObject.FindGameObjectWithTag(),而Within Distance用的是GameObject.FindGameObjectsWithTag(),返回的是数组。因此使用时,注意一下。...原创 2019-08-16 16:38:42 · 1084 阅读 · 0 评论 -
Unity中update与lateupdate使用区别
Unity中Update()与lateUpdate(),记住关键区别Update()理解成立即触发,lateupdate()是随后触发,可以理解成一帧中立刻执行,另外是一帧最后执行,像一些摄像头跟随这种可以用lateUpdate(),但一些像是人物的行为判断要在update()中,要不然可能一个极细微的时间差会报错。比如我的游戏中,AI_Player中通过实时监控血量值来判断ai是否被杀死,如果发...原创 2019-08-29 15:47:03 · 5677 阅读 · 0 评论 -
behavior designer 行为树中的使用技巧
在做AI的过程中相信很多人选择使用行为树(Behivor Designer)设计行为,优点是修改方便、可扩展性强,作为AI迭代开发是个不错的想法。中间分享一下一个经典用法:比如AI看到了敌人,先判断自己技能包里有无CD完可用技能,如果有进行追击;如果没有逃离被攻击距离。截取的逻辑是:AI如果发现了敌人或者其他AI,并且这些对象是可视状态(我的英雄设计有隐身符或技能),那么进行判断自己的技能包是...原创 2019-08-30 16:43:08 · 727 阅读 · 0 评论 -
unity ugui插件分享
unity 中UI制作分享一个好插件FairyGUI 在界面制作时可以事半功倍,强烈推荐。链接:https://pan.baidu.com/s/1vr0WM9KmWkhbJPeKAQacmA提取码:c9sk原创 2019-09-10 18:12:09 · 576 阅读 · 0 评论 -
Unity 协程间的调用
游戏场景中,怪物时刻监测英雄的距离,当进入攻击圈时 要进行攻击,攻击肯定要是间断攻击。实现原理就用到了协程间的调用。如下:void Start(){if (playerUiPrefab != null){GameObject _uiGo = Instantiate(playerUiPrefab);_uiGo.SendMessage(“SetTarget”, this, SendMess...原创 2019-07-01 10:30:19 · 2105 阅读 · 0 评论 -
AI例子
using Assets;using System.Collections;using System.Collections.Generic;using UnityEngine;public class Ai : MonoBehaviour {public GameObject player;float Hp = 20;Rigidbody rigidbody;Context co...转载 2019-07-10 16:48:50 · 279 阅读 · 0 评论 -
UNITY 游戏对象的碰撞检测方法
Unity中,对于游戏对象的碰撞检测有多种方法,今后在开发的过程中,可视情况而定,选用哪一种检测方法.首先,忽略两个物体碰撞可采用如下语句:Physics.IgnoreCollision(newBullet.GetComponent(),transform.root.GetComponent(),true);1.1 在需要检测碰撞的物体上添加碰撞器,如:Box Collider、capsul...原创 2019-07-01 14:44:14 · 7675 阅读 · 0 评论 -
动态加载prefab及图片一定记住要设置resource 文件夹
动态加载prefab及图片一定记住要设置resource 文件夹原创 2019-03-28 14:23:13 · 635 阅读 · 0 评论