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

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

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

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

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

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

火炬之光操控人物逻辑

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

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

//mainUIControl.cs
//void Update()方法的代码
	//fire
	bool 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 ability
	if(Input.GetMouseButtonDown(1) || Input.GetButtonDown("Fire2")) player.FireAbility();
					
	//launch ability
	if(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 spot
				Ray 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 position
				ability.Activate(GameControl.GetPlayer().thisT.position);
			}
		}

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

ability.Active(position)

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

攻击(爆炸型):Activate

//Ability.cs

		//launch the ability, at the position given
		public void Activate(Vector3 pos=default(Vector3), bool useCostNCD=true){
               //技能cd
			if(useCostNCD){
			}
			//范围音效
			AudioManager.PlaySound(launchSFX);
			
            //爆炸的实体对象(光圈)
			//instantiate the launch object, if there's any
			if(launchObj!=null){
				GameObject obj=(GameObject)MonoBehaviour.Instantiate(launchObj, pos, Quaternion.identity);
				if(autoDestroyLaunchObj) MonoBehaviour.Destroy(obj, launchObjActiveDuration);
			}
			
            //物理攻击
			//for aoe ability
			if(type==_AbilityType.AOE || type==_AbilityType.AOESelf){
	
				//		unitInstance.ApplyAttack(aInstance);
				
			
				//apply explosion force
//				TDSPhysics.ApplyExplosionForce(pos, aStats);
			}
			//for ability that affects all hostile unit in game
			else 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 图片工具)

多目录浏览

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/170118.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

时间序列预测实战(十七)PyTorch实现LSTM-GRU模型长期预测并可视化结果(附代码+数据集+详细讲解)

一、本文介绍 本文给大家带来的实战内容是利用PyTorch实现LSTM-GRU模型&#xff0c;LSTM和GRU都分别是RNN中最常用Cell之一&#xff0c;也都是时间序列预测中最常见的结构单元之一&#xff0c;本文的内容将会从实战的角度带你分析LSTM和GRU的机制和效果&#xff0c;同时如果你…

铝合金钻孔铣削去毛刺加工之高速电主轴解决方案

铝合金是一种轻质、高强度的材料&#xff0c;其出色的机械性能和良好的导电性、导热性使其在工业领域广受青睐特别是在航空、航天和汽车制造中&#xff0c;铝合金的身影更是随处可见。在铝合金加工过程中&#xff0c;高速电主轴可精准而高效地完成钻孔、铣削和去毛刺等任务&…

贪吃蛇游戏制作

首先在ecilsp里面创建两个包&#xff0c;启动和图形界面 在创建一个文件夹用来放图片 1.绘制图形界面 package com.snaketuxing.view;import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import …

go语言的某些开发素质真低,完全就是缺教养。

我本人在github提过一个错误处理的提案&#xff0c;2023年11月20日微信公众号“脑子进煎鱼了” 记录了这个提案&#xff0c;在评论区有个微信名为&#xff1a;【hello哥已开始躺平】的微信用户一来就喷粪&#xff0c;这种人到底是欠打呢还是心理变态呢&#xff1f;对别人的提案…

docker更换国内源

docker更换国内源 1、编辑Docker配置文件 在终端中执行以下命令&#xff0c;编辑Docker配置文件&#xff1a; vi /etc/docker/daemon.json2、添加更新源 在打开的配置文件中&#xff0c;添加以下内容&#xff1a; {"registry-mirrors": ["https://hub-mirror…

yum 搭建仓库 http/ftp

目录 http ftp http 服务端 1. 下载 httpd 服务&#xff0c;记得将防火墙和安全终端全部关掉 2. 开启 httpd 服务 3. 临时挂载 客户端 1. 下载 httpd 服务&#xff0c;记得将防火墙和安全终端全部关掉 2. 开启 httpd 服务 3. 进入 /etc/yum.repos.d 4. 新建一个目录 mhy&…

【洛谷 P3743】kotori的设备 题解(二分答案+循环)

kotori的设备 题目背景 kotori 有 n n n 个可同时使用的设备。 题目描述 第 i i i 个设备每秒消耗 a i a_i ai​ 个单位能量。能量的使用是连续的&#xff0c;也就是说能量不是某时刻突然消耗的&#xff0c;而是匀速消耗。也就是说&#xff0c;对于任意实数&#xff0c;…

Vue3 源码解读系列(九)——依赖注入

依赖注入 依赖注入用于祖先组件向后代组件传递数据。 特点&#xff1a; 祖先组件不需要知道哪些后代组件在使用它提供的数据。 后代组件也不需要知道注入的数据来自哪里。 /*** provide 的实现*/ function provide(key, value) {let provides currentInstance.provides // 当…

【Linux】软连接和硬链接:创建、管理和解除链接的操作

文章目录 1. 软链接和硬链接简介2. Linux软链接使用方法3. Linux硬链接使用方法4. 总结 1. 软链接和硬链接简介 什么是软链接 软链接(Symbolic Link),也称为符号链接,是包含了源文件位置信息的特殊文件。它的作用是间接指向一个文件或目录。如果软链接的源文件被删除或移动了,软…

【论文阅读笔记】Deep learning for time series classification: a review

【论文阅读笔记】Deep learning for time series classification: a review 摘要 在这篇文章中&#xff0c;作者通过对TSC的最新DNN架构进行实证研究&#xff0c;探讨了深度学习算法在TSC中的当前最新性能。文章提供了对DNNs在TSC的统一分类体系下在各种时间序列领域中的最成功…

智慧化工园区信息化整体解决方案:PPT全53页,附下载

关键词&#xff1a;智慧化工园区建设方案&#xff0c;智慧化工园区建设规范&#xff0c;智慧化工园区建设指南 一、售智慧化工园区建设背景 随着工业化、信息化和数字化进程的加速&#xff0c;化工园区面临着越来越多的挑战&#xff0c;如安全生产、环境保护、能源消耗等问题…

[架构之路-247]:目标系统 - 设计方法 - 软件工程 - 结构化方法的基本思想、本质、特点以及在软件开发、在生活中的应用

目录 前言&#xff1a; 一、什么是非结构化方法 1.1 什么是非结构化方法 1.2 非结构化方法的适用场合 二、什么是结构化方法 1.1 结构化方法诞生的背景&#xff1a;软件规模发展&#xff1a;大规模、复杂系统的需要 1.2 概述 1.3 主要特点与核心思想 三、结构化方法在…

【C#二开业务冠邑】通过界面查看数据来源

前言 重构框架&#xff08;CS【C#】转BS【Java】&#xff09;时&#xff0c;突然发现公司的代码和数据库&#xff0c;有部分都没有写注释&#xff0c;嘎嘎&#xff0c;这不非常影响开发效率&#xff0c;于是乎&#xff0c;开始帮公司整理表结构和数据来源&#xff0c;也从而加…

ISP--Black Level Correction(黑电平矫正)

图像的每一个像素点都是由一个光电二极管控制的&#xff0c;由二极管将电信号&#xff0c;转换为数字信号。 那么&#xff0c;我们知道了&#xff0c;图像的像素值是与电信号强度相关的。但是&#xff0c;我们得知道&#xff0c;每一个光电二极管要想工作&#xff0c;都得有一定…

异步爬取+多线程+redis构建一个运转丝滑且免费http-ip代理池 (三)

内容提要: 如果说,爬取网页数据的时候,我们使用了异步,那么将数据放入redis里面,其实也需要进行异步;当然,如果使用多线程或者redis线程池技术也是可以的,但那会造成冗余; 因此,在测试完多线程redis搭配异步爬虫的时候,我发现效率直接在redis这里被无限拉低下来! 因此: 最终的r…

集合的自反关系和对称关系

集合的自反关系和对称关系 一&#xff1a;集合的自反关系1&#xff1a;原理&#xff1a;2&#xff1a;代码实现 二&#xff1a;对称关系1&#xff1a;原理&#xff1a;2&#xff1a;代码实现 三&#xff1a;总结 一&#xff1a;集合的自反关系 1&#xff1a;原理&#xff1a; …

【电路笔记】-星三角变换(Star-Delta Transformation)

星三角变换&#xff08;Star-Delta Transformation&#xff09; 文章目录 星三角变换&#xff08;Star-Delta Transformation&#xff09;1、概述1.1 单相配置1.2 多相配置 2、三相连接2.1 Y配置2.2 Δ配置 3、Y-Δ 和 Δ-Y 变换3.1 Y-Δ变换3.2 Δ-Y变换3.3 应用 4、总结 本文…

springboot中动态api如何设置

1.不需要编写controller 等mvc层&#xff0c;通过接口动态生成api。 这个问题&#xff0c;其实很好解决&#xff0c;以前编写接口&#xff0c;是要写controller&#xff0c;需要有 RestController RequestMapping("/test1") public class xxxController{ ApiOperat…

【C++上层应用】1. 异常处理

文章目录 【 1. C的标准异常 】【 2. 异常转移处理 】2.1 throw 抛出异常2.2 try 捕获异常2.3 catch 捕获异常2.4 实例 【 3. 定义新的异常 】 异常是程序在执行期间产生的问题&#xff0c;比如编译报错、链接错误等。 【 1. C的标准异常 】 C 提供了一系列标准的异常&#xf…

逐字节讲解 Redis 持久化(RDB 和 AOF)的文件格式(一)

前言 相信各位对 Redis 的这两种持久化机制都不陌生&#xff0c;简单来说&#xff0c;RDB 就是对数据的全量备份&#xff0c;AOF 则是增量备份&#xff0c;而从 4.0 版本开始引入了混合方式&#xff0c;以 7.2.3 版本为例&#xff0c;会生成三类文件&#xff1a;RDB、AOF 和记…