Unity替换启动Logo动画
Posted 小尹编码中...
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity替换启动Logo动画相关的知识,希望对你有一定的参考价值。
前言
最近的项目中,由于android中集成了Unity场景,每次进入打包好的Unity项目时都会出现Unity的标志性动画,让用户处于等待状态,体验感比较差;于是便在产品经理的要求下将Unity的启动Logo换成公司的宣传动画
目前的解决办法有两种:
- 充值Unity加强版,便可以在打包时一键跳过Unity启动动画;
- 将Unity的启动动画替换为自己公司的宣传动画
今天给大家分享一下第二种解决方案,我是将Unity与Android的交互先写好,然后再把Unity打包成Android项目嵌入到主Android项目中
演示视频
替换Unity启动画面的Logo
环境
Unity3D:准备一个Unity空场景即可,让其通知Android端替换Logo
AndroidStudio:替换启动动画的逻辑便写在此处
Unity端
1. 准备Unity项目
打开Unity,创建一个新项目,如下图所示
2. 编写交互脚本
StartPage.cs:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class StartPage : MonoBehaviour
private AndroidJavaClass androidJavaClass;
private AndroidJavaObject androidJavaObject;
private void Awake()
//当Unity的场景创建出来的时候,便通知Android端将接下来Unity启动的动画替换掉
GetAndroid();
public void GetAndroid()
if (Application.platform != RuntimePlatform.Android) //判断是否运行在Android设备中
return;
androidJavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
//获取到正在运行的Activity
androidJavaObject = androidJavaClass.GetStatic<AndroidJavaObject>("currentActivity");
//调用Android端写好的hideSplash函数
androidJavaObject.Call("hideSplash");
3. 修改打包配置
点击File——>Build Settings,然后便出现如下弹窗
点击Edit——>Project Settings——>Player——>Android,如下图所示
修改打包的参数设置,如下图所示:
4. 打包Unity项目
将我们的Unity项目打包成Android项目
打包成功后,项目文件夹大致如下,大家可以参考一下
到此为止,Unity这边的操作便已经结束了,接下来的跳过启动页面就交给Android端去做了
Android
1. 打开Unity项目并修改配置
用Android Studio打开刚刚打包出来的Unity项目,如下图
修改AndroidManifest.xml文件,将启动配置注释掉
2. 将Unity项目打包aar
将Unity项目打包成 aar,操作如下图,Android中的aar对应Unity中的Package包
3. 新建一个Android项目
4. 引入Unity的aar包并加上一个字符串资源
把我们的aar放入到相应文件夹下,并添加引用
因为我们的UnityPlayer类中有用到名为"game_view_content_description"的一串字符串,所以我们需要在string资源下添加一下,这个地方是Unity的一个坑点
5. 编写替换Unity启动动画的逻辑代码
这里为了图方便,就带大家直接在我们新建项目中的MainActivity中编写即可,不需要创建其他任何的类和布局文件
如下图所示,代码也给大家放后面了,可以直接复制粘贴使用,只需要修改一下照片即可,这里小编为了图方便,直接放置了一张图片,大家可以放置多张照片形成动画,其实就相当于MainActivity承载了Unity场景
MainActivity.java
package com.example.androidtest;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.widget.ImageView;
import com.unity3d.player.UnityPlayer;
import com.unity3d.player.UnityPlayerActivity;
public class MainActivity extends UnityPlayerActivity
private ImageView bg; //Unity启动画面的背景图片
private ImageView animImg; //Unity启动画面的动画图面
private AnimationDrawable frameAnim; //创建一个图片动画帧对象
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
animImg = new ImageView(UnityPlayer.currentActivity);
frameAnim = new AnimationDrawable();
//我这里只添加了一张图片,大家可以添加多张图片来制作动画
frameAnim.addFrame(getResources().getDrawable(R.drawable.yf),300);
frameAnim.setOneShot(false);
animImg.setBackground(frameAnim);
frameAnim.start();
animImg.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
mUnityPlayer.addView(animImg,displayMetrics.widthPixels,displayMetrics.heightPixels);
UnityPlayer.UnitySendMessage("Main Camera","GetA","");
public void hideSplash()
new Thread(new Runnable()
@Override
public void run()
try
Thread.sleep(10L);
catch (InterruptedException e)
e.printStackTrace();
runOnUiThread(new Runnable()
@Override
public void run()
mUnityPlayer.removeView(bg);
mUnityPlayer.removeView(animImg);
bg = null;
animImg = null;
);
).start();
演示视频
到此为此,我们就做完了,给大家看一下演示效果
替换Unity启动画面的Logo
注意:记得跑真机上才可以运行测试,因为我之前在Unity打包Android项目时,忘记勾选 x86和x86-64选项了,这两个是模拟器,勾选了才能跑在Android Studio的模拟器上
Unity实战篇 | 教你怎样将Unity的启动Logo 设置成 自己制作的 帧动画
🎬 博客主页:https://xiaoy.blog.csdn.net
🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉
🎄 学习专栏推荐:👑Unity系统学习专栏👑
🌲 游戏制作专栏推荐:👑游戏制作👑
🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📆 未来很长,值得我们全力奔赴更美好的生活✨
------------------❤️分割线❤️-------------------------
🎁前言
-
你在打包Unity应用的时候是不是还在用
默认启动Logo
呢? -
看完这篇文章教你自己定制一款属于自己的
Unity启动Logo
! -
之前有一篇文章我们讲了怎样在不购买专业版的情况下
自定义Unity的启动Logo
-
但是只是用了一张图片对默认Logo进行替换,并没有加自己的启动动画
-
那本篇文章就来介绍一下,怎样在
去除默认Logo的前提
下制作自己的启动动画! -
还没学会怎样
去除UnityLogo
的小伙伴可以去看这篇文章先学习一下哦:
🎅Unity实战篇 | 将Unity的启动画面 设置成 自己制作的 帧动画
🎄帧动画
先来说一下这个 帧动画
是啥意思方便大家理解
这里说的 帧动画
就是一系列的 静态图片 快速切换达到一个动图的效果
事实上我们现在的游戏也是通过一帧一帧的拼接起来,一秒60帧以上就会很流畅了
比如之前很火的火柴人系列
,就是很经典的这种帧动画
哈哈哈,是不是很有意思呢~
我们就是要搞一个这种动态图片的帧动画
来做 应用启动Logo
!
🔔帧动画制作
如果能自己画图来制作一个系列的帧动画
自然是好的。
但是可惜 小Y
不会这个技术活(懒)呀,那咋办呢~
俗话说得好,只要思想不滑坡,方法总比困难多!
这里顺道给大家推荐一个录屏工具:ScreenToGif
这个工具可以实现基本的录屏功能
和 保存视频 或者 Gif
等格式的文件
我平时就用这个录屏做一个动态图展示,还是很赞的!
废话不多说,我这里主要是用到了这个工具里面的一个功能
它可以将现有的 Gif格式图片
拆分成多帧静态图
,然后再将每一帧的图片一键保存起来
保存之后的图片示例如下:
好了,这样我们就有一个简单的帧动画素材
了
虽然看起来很Low,但是这里就是简单做个示范哈,大家可以自己定制一款属于自己的启动Logo!
接下来就是怎样在工程中使用这个帧动画了,一起来看看。
🎉将 帧动画图片 添加到Android Studio工程中
这一步很简单,继续打开我们去除Unity启动Logo的文章
中用到的工程
然后将帧动画图片
复制到 res -> drawable
文件夹下即可!
🎋代码编写帧动画
我们继续在Android Studio
写代码然后使用的 aar
的方式给Unity去除启动Logo
那么这个添加帧动画
的方法依旧是在Android Studio
中进行的
所以我们在这篇 去除Logo的文章 基础上继续添加代码
在原有的MainActivity
中继续添加一个ImageView
和一个AnimationDrawable
ImageView
和AnimationDrawable
就是我们即将给 帧动画 赋值的参数
这段代码是给帧动画赋值
,将我们自己的一套帧动画图片添加进去
然后设置动画循环播放
,还要把 帧动画的位置
和 尺寸信息
设置完毕
然后别忘了在关闭启动动画的方法
中将帧动画也关闭掉
这一步是在Unity端进行的,与之前的去除UnityLogo文中方法一致!
🎊打包aar给Unity使用
又到了打包的这一步,就说明快要结束啦!
选中这个工程,然后 Build -> Make Module
然后把aar
和AndroidManifest
都保存出来,待会给Unity使用(这一步每次都重复,大家应该都会了)
aar
复制出来之后记得把Libs文件夹
下的class包
删掉。
🌻将aar和AndroidManifest放入Unity工程中
新建Plugins/Android
文件夹
把我们在Android端保存的aar文件和AndroidManifest
都放到这个Android文件夹下
写脚本调用 Android中消除启动Logo 的动画图片,脚本跟之前的 去除Logo的文章 一样没变化
Unity打包apk应用,设置包名。File -> Build Settings -> Player Settings
这里把 公司名 和 包名 改为我们的AndroidManifest
中的一致即可
然后就是Build打包
即可!
🎈效果展示
打包完之后点击运行,Unity的Logo就会变成我们自定义的动画Logo啦!
是不是很实用呢,可以自己搞一个属于自己的Logo放上去
这样我们打包的Unity应用就会变成 自己的专属Logo
!
赶紧自己动手试试吧!
源码工程
的话可以参考下上一篇文章中的工程,只需要改动一下帧动画的代码即可!
【Unity终极奥义】Unity打包去掉启动画面Logo,无需破解,一学就会
👥总结
-
本篇文章自己制作了一个
帧动画
来替换了Unity的默认启动Logo
-
虽然这个
帧动画
看起来一般般哈哈,但是我们的功能做好了 -
有时间可以整一个好看的动画,用来做应用启动的时候显示
-
这样就可以拥有一个属于自己的应用启动动画啦!
-
那本篇文章就到这里结束啦,喜欢的小伙伴记得点个
三连
,咱们下次再见啦~
🚀往期优质文章分享
- ❤️Unity零基础到入门 | 游戏引擎 Unity 从0到1的 系统学习 路线【全面总结-建议收藏】!
- 🧡花一天时间做一个高质量飞机大战游戏,过万字Unity完整教程!漂亮学妹看了直呼666!
- 💛通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难
- 💚重回童年的经典系列☀️|【贪吃蛇小游戏】近两万字完整制作过程+解析+源码 【建议收藏学习】
- 🤍重回童年的经典系列☀️| 【皇室战争 】 的 即时战斗类 复刻游戏Demo!两万多字游戏制作过程+解析!
- 💙重回童年的经典系列☀️| 【横版街机格斗游戏】类似“恐龙快打” 该如何制作? | 一起来学习 顺便送源码【建议收藏学习】
- 💜重回童年的经典系列☀️|【炸弹人小游戏】制作过程+解析 | 收藏起来跟曾经的小伙伴一起梦回童年!
🚀 优质专栏分享 🚀 |
- 🎄如果感觉文章看完了不过瘾,可以来我的其他 专栏 看一下哦~
- 🎄比如以下几个专栏:Unity基础知识学习专栏、Unity游戏制作专栏、Unity实战类项目 和 算法学习专栏
- 🎄可以学习更多的关于Unity引擎的相关内容哦!直接点击下面颜色字体就可以跳转啦!
🚀 社区活动,重磅来袭 🚀 |
【游戏开发爱好者社区】在本周重磅新推出【每日打卡】活动
🎁 新玩法,奖励升级!游戏开发爱好者社区:https://bbs.csdn.net/forums/unitygame
社区中心思想:今天你学到了什么?
在社区你可以做些什么: 每日强化知识点,白嫖书籍礼品!
一个人可以走的很快,一群人才能走的更远!🔥爆C站的游戏开发爱好者社区欢迎您的加入!
更多白嫖活动详情:https://bbs.csdn.net/topics/603722518
温馨提示: 点击下面卡片可以获取更多编程知识,包括各种语言学习资料,上千套PPT模板和各种游戏源码素材等等资料。更多内容可自行查看哦!
以上是关于Unity替换启动Logo动画的主要内容,如果未能解决你的问题,请参考以下文章
Unity实战篇 | 教你怎样将Unity的启动Logo 设置成 自己制作的 帧动画