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

news2024/11/16 5:59:49

我不知道那些喷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 图片工具)

多目录浏览

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++快速入门 - 2(几分钟让你快速入门C++)

C快速入门 - 2 1. 内联函数1.1 概念1.2 特性 2. auto关键字(C11)2.1 类型别名思考2.2 auto简介2.3 auto的使用细则2.4 auto不能推导的场景 3. 基于范围的for循环(C11)3.1 范围for的语法3.2 范围for的使用条件 1. 内联函数 1.1 概念 以inline修饰的函数叫做内联函数&#xff0c…

三十分钟学会SCALA

SCALA Scala 是一种运行在 JVM上的函数式的面向对象语言。 Scala 是兼容的&#xff1a;兼容 Java&#xff0c;可以访问庞大的 Java 类库&#xff1b;Scala 是精简的&#xff1a;Scala 表达能力强&#xff0c;一行代码抵得上多行 Java 代码&#xff0c;开发速度快。可以让程序…

Redis轻松添加从节点:零阻塞、零烦恼,系统性能再飙升

点击上方蓝字关注我 生成环境的Redis有时需要替换或添加从节点&#xff0c;如果此时主库较大&#xff0c;添加从节点时将可能因为主节点在做bgsave数据备份时使得主库压力大&#xff0c;从而引起其他操作变慢&#xff0c;进而出现阻塞等操作。那么有什么方法可以尽最大程度地减…

【机器学习】034_多层感知机Part.2_从零实现多层感知机

一、解决XOR问题 1. 回顾XOR问题&#xff1a; 如图&#xff0c;如何对XOR面进行分割以划分四个输入 对应的输出 呢&#xff1f; 思路&#xff1a;采用两个分类器分类&#xff0c;每次分出两个输入 &#xff0c;再借助这两个分类从而分出 。 即采用同或运算&#xff0c;当两…

【腾讯云 HAI域探秘】高性能服务器引领AI革新浪潮:从AI绘画、知识问答到PyTorch图像分类、视频检测的全方位探索

目录 1 HAI&#xff08;高性能应用服务&#xff09;简介2 HAI的应用场景2.1 HAI在AI作画中的灵活性与效率2.2 深入探索LLM语言模型的应用与性能2.3 HAI支持的AI模型开发环境与工具 3 基于stable difussio的AI 绘画应用实践3.1 使用AI模型中的stable diffusion模型服务3.2 设置和…

ElasticSearch在Windows上的下载与安装

Elasticsearch是一个开源的分布式搜索和分析引擎&#xff0c;它可以帮助我们快速地搜索、分析和处理大量数据。Elasticsearch能够快速地处理结构化和非结构化数据&#xff0c;支持全文检索、地理位置搜索、自动补全、聚合分析等功能&#xff0c;能够承载各种类型的应用&#xf…

PostgreSQL数据库结合内网穿透实现公网远程连接

文章目录 前言1. 安装postgreSQL2. 本地连接postgreSQL3. Windows 安装 cpolar4. 配置postgreSQL公网地址5. 公网postgreSQL访问6. 固定连接公网地址7. postgreSQL固定地址连接测试 前言 PostgreSQL是一个功能非常强大的关系型数据库管理系统&#xff08;RDBMS&#xff09;,下…

python的socket模块以及通信相关学习笔记

Socket又称"套接字"&#xff0c;应用程序通常通过"套接字"向网络发出请求或者应答网络请求&#xff0c;使主机间或者一台计算机上的进程间可以通讯(最初设计是为了是使同一台计算机中的不同进程进行信息传递通信)&#xff0c;最后拓展到可以使网络上两台计…

LangChain 5易速鲜花内部问答系统

展示了一个完整的问答系统的实现&#xff0c;使用了Flask来构建Web界面、langchain进行文档处理和检索&#xff0c;以及OpenAI的语言模型。代码的复杂性在于集成了多种高级技术和处理大型数据集和语言模型。 LangChain 实现给动物取名字&#xff0c;LangChain 2模块化prompt t…

8 Redis与Lua

LUA脚本语言是C开发的&#xff0c;类似存储过程,是为了实现完整的原子性操作&#xff0c;可以用来补充redis弱事务的缺点. 1、LUA脚本的好处 2、Lua脚本限流实战 支持分布式 import org.springframework.core.io.ClassPathResource; import org.springframework.data.redis…

开源集群管理系统对比分析:Kubernetes 与 Apache Mesos

集群管理系统是关键的软件解决方案&#xff0c;可以在互连机器网络中有效分配和利用计算资源。毫无疑问&#xff0c;它们通过确保可扩展性、高可用性和有效的资源管理在现代计算中发挥着至关重要的作用&#xff0c;这使得它们对于运行复杂的应用程序、管理数据中心以及进一步增…

C语言中的指针(上)

目录 一、基本概念 1.变量的存储空间 2.定义指针 3.引用与解引用 二、指针的算术运算、类型以及通用指针 1.指针的算数运算 2.指针类型以及通用型指针 三、指向指针的指针&#xff08;pointers to pointers&#xff09; 四、函数传值以及传引用 1.局部变量 2.从存储地…

CleanMyMac X4.16免费版mac电脑一键清理电脑垃圾工具

但是&#xff0c;我最近发现随着使用时间的增加&#xff0c;一些奇奇怪怪的文件开始占据有限的磁盘空间&#xff0c;存储空间变得越来越小&#xff0c;系统占用空间越来越大&#xff0c;越来越多的无效文件开始影响我电脑的运行速度。 Mac的文件管理方式和Windows不太一样&…

竞赛 题目:基于深度学习的人脸表情识别 - 卷积神经网络 竞赛项目 代码

文章目录 0 简介1 项目说明2 数据集介绍&#xff1a;3 思路分析及代码实现3.1 数据可视化3.2 数据分离3.3 数据可视化3.4 在pytorch下创建数据集3.4.1 创建data-label对照表3.4.2 重写Dataset类3.4.3 数据集的使用 4 网络模型搭建4.1 训练模型4.2 模型的保存与加载 5 相关源码6…

Linux进程通信——IPC、管道、FIFO的引入

进程间的通信——IPC 进程间通信 (IPC&#xff0c;InterProcess Communication) 是指在不同进程之间传播或交换信息。 IPC的方式通常有管道 (包括无名管道和命名管道) 、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。 …

怎么在echarts图上左右滑动切换数据区间

说在前面 不管前端还是后端&#xff0c;大家或多或少都了解使用过echarts图表吧&#xff0c;很多时候我们只是需要展示指定区间的数据&#xff0c;但有时我们希望在图表上能够轻松地切换数据的展示区间&#xff0c;以便更清晰地观察特定时间段或区域的变化。在本文中&#xff0…

[机缘参悟-119] :反者道之动与阴阳太极

目录 一、阴阳对立、二元对立的规律 1.1 二元对立 1.2 矛盾的对立与统一 二、阴阳互转、阴阳变化、变化无常 》无序变化和有序趋势的规律 三、阴阳合一、佛魔一体、善恶同源 四、看到积极的一面 五、反者道之动 5.1 概述 5.2 "否极泰来" 5.3 “乐极生悲”…

grafana面板介绍

grafana 快速使用 背景 随着公司业务的不断发展&#xff0c;紧接来的是业务种类的增加、服务器数量的增长、网络环境的越发复杂以及发布更加频繁&#xff0c;从而不可避免地带来了线上事故的增多&#xff0c;因此需要对服务器到应用的全方位监控&#xff0c;提前预警&#xf…

面试题c/c++ --STL 算法与数据结构

1.6 STL 模板 模板底层实现&#xff1a;编译器会对函数模板进行两次编译&#xff0c; 在声明的地方对模板代码本身进行编译&#xff0c; 在调用的地方对参数替换后的代码进行编译。 模板传参分析 模板重载 vector 是动态空间&#xff0c; 随着元素的加入&#xff0c; 它的内…

人工智能给我们的生活带来了巨大的影响?

1. 人工智能从哪些方面给我们带来了影响&#xff1f; 人工智能出现&#xff0c;极大地影响了人类的生活&#xff0c;下面是人工智能所影响的领域&#xff1a; 1. 日常生活 智能家居: AI驱动的设备&#xff0c;如智能扬声器、灯光、恒温器&#xff0c;正在改变我们与家居环境的…