当前位置: 首页 > news >正文

从暗黑3D火炬之光技能系统说到-Laya非入门教学一~资源管理

我不知道那些喷Laya没有浏览器,嘲笑别人编辑器做不好,是什么水平?

首先目前国内除了WPS和飞书,就没有第三家公司能把编辑器做好。

要是一般的游戏开发者,如我,有一点点引擎代码(某项目),用VsCode或者甚至很多人用.txt+终端命令就能完成一个游戏开发;但我需要游戏“漂亮”一点,除了代码,我还有一点点“素材”,那我首选Unity 作为图片素材的浏览和管理工具,不是很合理的么?

-------- 后面会补充,Unity Editor的各种入门细节操作(为什么是世一编辑器)

《插播一段Unity 代码,实际这个文章是说图片素材的日常管理》

火炬之光操控人物逻辑

操作后发现鼠标左键,是射击;右键,是范围爆炸

全局搜索:mousebutton,找到以下代码

//mainUIControl.cs
//void Update()方法的代码//firebool continousFire=player.ContinousFire() & (Input.GetMouseButton(0) || Input.GetButton("Fire1"));if(Input.GetMouseButtonDown(0) || Input.GetButtonDown("Fire1") || continousFire) player.FireWeapon();//alt fire, could fire weapon alt-mode to launch selected abilityif(Input.GetMouseButtonDown(1) || Input.GetButtonDown("Fire2")) player.FireAbility();//launch abilityif(Input.GetMouseButtonDown(2) || Input.GetButtonDown("Fire3")) player.FireAbilityAlt();

攻击(直线):FireAbilityA

我们只需要范围攻击,所以直接看:.FireAbilityA

		public static void LaunchAbility(Ability ability, bool useCostNCD=true){bool teleport=ability.type==_AbilityType.Movement & ability.moveType==_MoveType.Teleport;if(ability.type==_AbilityType.AOE || ability.type==_AbilityType.Shoot || teleport){//get the hit point and activate the ability on that particular spotRay ray = CameraControl.GetMainCamera().ScreenPointToRay(Input.mousePosition);RaycastHit hit;if(Physics.Raycast(ray, out hit, Mathf.Infinity)) ability.Activate(hit.point);else ability.Activate(GameControl.GetPlayer().thisT.position); //use player position if there's no valid position}else{//activate the ability on the player positionability.Activate(GameControl.GetPlayer().thisT.position);}}

逻辑也很简单:就是在一个位置做一些范围的物理处理:

ability.Active(position)

当然实际上,是有一个 if else 的判断(在自身范围附近爆,还是抛出一个火箭筒在敌人阵地附近爆)

攻击(爆炸型):Activate

//Ability.cs//launch the ability, at the position givenpublic void Activate(Vector3 pos=default(Vector3), bool useCostNCD=true){//技能cdif(useCostNCD){}//范围音效AudioManager.PlaySound(launchSFX);//爆炸的实体对象(光圈)//instantiate the launch object, if there's anyif(launchObj!=null){GameObject obj=(GameObject)MonoBehaviour.Instantiate(launchObj, pos, Quaternion.identity);if(autoDestroyLaunchObj) MonoBehaviour.Destroy(obj, launchObjActiveDuration);}//物理攻击//for aoe abilityif(type==_AbilityType.AOE || type==_AbilityType.AOESelf){//		unitInstance.ApplyAttack(aInstance);//apply explosion force
//				TDSPhysics.ApplyExplosionForce(pos, aStats);}//for ability that affects all hostile unit in gameelse if(type==_AbilityType.All){//get all hostile unit for unit tracker//List<Unit> unitList=new List<Unit>( UnitTracker.GetAllUnitList() );//	unitList[i].ApplyAttack(aInstance);}//for ability that meant to be cast on player unit(跟踪??东风导弹)else if(type==_AbilityType.Self){//apply the attack on player AttackInstance aInstance=new AttackInstance(GameControl.GetPlayer(), GetRuntimeAttackStats());GameControl.GetPlayer().ApplyAttack(aInstance);}//for ability that fires a shoot object(射击)else if(type==_AbilityType.Shoot){//}else if(type==_AbilityType.Movement){//(强制移动,闪现)//}}

技能朝向+旋转问题

(Unity-粒子是不能旋转的)

能医不自医,还是碰到了需要粒子旋转的问题,这个我曾经教了很多人解决

接受伤害

(待补充)

关于Laya资源管理

复习了一下Unity之后,我们很快就进入Laya的环节

在火炬之光3D项目内(或者你选一个空项目亦可),就是创建一个"AnotherCat"目录

把你认为可能是素材的目录,拖到Unity Project面板目录“AnotherCat”内

然后就可以愉快地选择Texture【分类】(搜索输入框右边的下拉按钮),

        -- 当然,也可以如图,只搜索刚才创建的“AnotherCat”目录内的所有Textures

Unity Editor的基础操作

预览大小调整

双击打开图片(外部:windows 图片工具)

多目录浏览

http://www.lryc.cn/news/239576.html

相关文章:

  • for,while,until语句
  • Apache POI简介
  • 基于Qt的UDP通信、TCP文件传输程序的设计与实现——QQ聊天群聊
  • 【C++】:STL中的string类的增删查改的底层模拟实现
  • 【论文阅读笔记】Supervised Contrastive Learning
  • 数据库管理工具,你可以用Navicat,但我选DBeaver!
  • 数据库的三范式(Normalization)
  • 【代码随想录】刷题笔记Day32
  • LeetCode算法题解(动态规划,背包问题)|LeetCode416. 分割等和子集
  • Java Class 类文件格式看这一篇就够了
  • 『亚马逊云科技产品测评』活动征文|构建生态农场家禽系统
  • [github配置] 远程访问仓库以及问题解决
  • mysql5.6 删除用户/ drop user
  • VMware三种网络模式
  • Java虚拟机(JVM)的调优技巧和实战2
  • 2020年下半年试题一:论信息系统项目的成本管理
  • 9. 回文数 --力扣 --JAVA
  • ChainLight zkSync Era漏洞揭秘
  • 01背包与完全背包学习总结
  • 基于单片机的公共场所马桶设计(论文+源码)
  • 注解案例:山寨Junit与山寨JPA
  • Codeforces Round 822 (Div. 2)(D前缀和+贪心加血量)
  • 不停的挖掘硬盘的最大潜能
  • Java游戏之飞翔的小鸟
  • PostgreSQL (Hologres) 日期生成
  • HCIP-一、RSTP 特性及安全
  • 智能高效的转运机器人,为物流行业注入新动力
  • 操作系统(三)| 进程管理下 经典进程问题分析 线程 死锁
  • vue3使用tsx自定义弹窗组件
  • [笔记] 错排问题 #错排