18年7月实训unity项目中遇到的问题记录

1.在一个项目中做好的UI做成预置体后在另一个项目中使用时发现无法响应鼠标的输入事件

解决:在使用预置体的项目中添加EventSystem。

2.使用DontDestroyOnLoad()来避免场景切换后GameObject被销毁存在的问题

假如A场景中有一个GameObject名为player,为了不让player在场景切换到B时消失而使用DontDestroyOnLoad(player),这样会导致场景再次切换回A时,A场景中同时出现两个player,并且两个player在场景切换后都不会消失。player的个数随着切换回A的次数的增加而增加。

解决方法一:

新建一个初始化场景,放在所有的场景之前,初始化场景中放置所有场景中都使用的GameOject并将其添加到DontDestroyOnLoad,并且保证不会跳转回初始化场景,避免重复初始化。

解决方法二:

将全场景使用的GameObject做成预置体,在脚本中实例化(而不是直接放在场景中),后添加到DontDestroyOnLoad,并用一个静态布尔变量标识是否已经实例化过,避免重复实例化。

示例代码:

public class Initializer : MonoBehaviour {
    [SerializeField] private GameObject _playerPrefab;
    [SerializeField] private GameObject _cameraPrefab;
    private GameObject _player;
    private GameObject _camera;
    private static bool isInstantiated = false;

    private void Instan()
    {
        _player = Instantiate(_playerPrefab);
        _camera = Instantiate(_cameraPrefab);
        DontDestroyOnLoad(_player);
        DontDestroyOnLoad(_camera);
        DontDestroyOnLoad(this.gameObject);
    }

    private void Awake()
    {
        if (!isInstantiated)
        {
            Instan();
            isInstantiated = true;
        }
    }

注:DontDestroyOnLoad(Object obj)的作用:obj在所有的场景切换后都不会被销毁。

3.将一个动画类型为Legacy的模型转换为Humanoid类型后动画中人物出现变形,如图:

转换后unity给出的警告为:

本来想在blender中打开模型看看,但每次导入模型blender就“未响应”。。。未解决。

4.用slider模拟血条

删去Slider下Handle Slider Area节点,通过设置Slider的Scale值设置血条大小,设置Slider下Fill Area节点及其子节点Fill上Rect Transform组件的Left和Right值为0。

5.野怪AI

AI思路:野怪有不同的行为,如空闲、追击玩家、发动不同的攻击、受伤和死亡等。前三种为主动行为,后两种为被动行为。为每一个主动行为赋一个权重。野怪的行为模式如下:空闲......玩家进入侦测范围,追击玩家......玩家进入部分攻击方式的有效区域,根据权重随机选择有效的攻击或继续追击......玩家进入所有攻击方式的有效区域,根据权重随机选择攻击方式......

为每个行为分配时间(等于该行为对应的动画的时长),野怪处于一个行为中时,播放对应的动画,改变野怪的transform(如果需要),只有被动行为能打断当前行为。

当行为频繁被打断时容易出现bug,未修复。

6.主角锁定怪物后左右移动有时会从地图中”掉落“,未修复。

7.本应显示数秒后才消失的提示框build后一闪而逝(play时正常),未知原因。

8.挥剑的音效本地播放时无异常,加入游戏中后有”呲呲“噪音,未知原因。

原文地址:https://www.cnblogs.com/ZhaoWenjie/p/9314210.html

时间: 2024-10-12 20:02:34

18年7月实训unity项目中遇到的问题记录的相关文章

记中兴软件园一个月实训(一)

马上大四了,在学期末学校一年一度的企业实训体验开始了. 其实现在已经接近尾声,只是把学到的东西整理一下,供各位君闲聊查看. /**********这个是第一天的笔记*************************/ /*一:程序的结构工程 sln文件 .c 文件包括:函数的定义 变量的定义 .h 文件包括:存放声明 类型的定义 宏定义 函数: 主函数 子函数 语句 单词 字母数字下划线 开头不能是数字二:数据类型 --->size 范围分类:1.基本类型整形 有符号 无符号实型 字符型 :un

在unity项目中使用live2D,以及Render Texture的简单使用。

好久没有写博客了,前段时间找到了一个二次元手游开发的工作,职位是客户端主程(虽然工资不高就是了),作为个unity新人现在想想还是有点后怕,不过车到山前必有路嘛. 言归正传,这次的项目中用到了live2d,总的来说导入的很顺利,也没碰上什么坑~ 首先这里有对应的教程和sdk下载(需FQ): http://www.live2d.com/usermanual/cubism2_cn/lets-do-it/my-first-lapp.html SDK里包括了几个demo,不要一口气把里面的东西全部拖到u

在Andorid开发项目中遇到的Bug记录(续)

[22]遇到query cannot be resolved to a variable错误, 解决:1.Java里面定义的变量不能跟系统包里面的关键字相同(大小写不同也不行),系统包里面有个Query,把query改 2.变量在方法中是否被定义为局部变量,从而不能作为方法的返回值成其他名字即可 [23]Unable to execute dex: Multiple dex files define Landroid/support/v4/accessibilityservice/Accessi

记中兴软件园一个月实训(三)

前两天只是简单复习了下C语言的基础知识,到第三天就采用项目驱动的方式,带着我们一个班的学生做项目----Popstar游戏 其实还是很倾向于项目驱动的方式来学习的,老师在上边一边讲一边敲代码,我们就只要听,和抄下投影仪上的代码.带着我们走过一遍流程以后,再让我们自己写一个小游戏,老师只提供技术难点帮助. 话不多说,给各位君看看记录的东西. 首先做了一个控制台下的Popstar,用于测试算法的正确性,由于Popstar涉及到选择附近四个方向的同颜色的星星,因此要用到扩展查找算法.因为是学习,老师展

记中兴软件园一个月实训(四)

控制台做完了,剩下的就是贴图了,简单的说. 本着共享源代码的思想,文章结尾我会赋上0.0----1.4版本的代码 (名字为Popstar的为构建完成的代码,名字为*1.0----*1.4的为构建过程代码) 东西有点多,我都不知道从哪点讲起. 创建项目工程的时候选Win32项目 然后看1.0版本,在WinMain中只写了一个函数 1 int WINAPI WinMain(HINSTANCE hInstance, //当前应用程序的实例句柄HANDLE 2 HINSTANCE hPrevInstan

记中兴软件园一个月实训(二)

/**********************第二天的内容有点多,看官们耐心点看*********************/ 指针与变量1.指针的概念---->指针就是地址2.指针的类型 是一种逻辑类型不是物理类型"变量的类型 + *"3.如何定义指针变量 "类型名 变量名"变量尺寸占4个字节 4Byte4.加减运算,解引用运算加减都是加减绑定的字节数NOTE:对于指向变量的指针,加减运算没有意义对于未知的内存,可读不可写5.指向变量的指针在实际开发中的应用扩

Unity项目中文字的统一管理

一款游戏在研发初期就需要考虑多语言的问题,否则后期在进行多国语言版本时就面临着巨大的成本.鉴于之前页游的经验,其它同事设计出读取Excel的方式来管理所有的文字.但是我在使用中发现很致使的一个问题,当多人编辑一个Excel时,冲突了就很麻烦,解决起来的成本还蛮高的. 之后我想了一些办法,例如搭建一个web站点,将所有的字符串 Key.Value保存到数据库中,避免冲突,方便去查询.但感觉还是太过麻烦,成本略高.然后就想到一个办法,既然读取一个Excel容易冲突,那我就弄多个文件,一个人编辑一个E

Android电子书项目实训【项目说明】【1】

概述: 本实训项目是本科教学中,Android课程实训的项目,旨在训练Android App访问服务器,获取服务器数据,解析,并呈现的流程.主要包含的功能有: 1.用户注册 2.登录 3.查看文档 4.下载电子书 5.阅读电子书 6.用户管理 设计说明: 该实训项目需要开发Android客户端和服务器端应用. 服务器端采用Struts2,直接使用JDBC访问MySQL数据库. 客户端使用xutils框架,访问action,获取JSON字符串. 开发环境: 服务器端采用MyEclipse,版本可以

短学期实训——第一篇

短学期的第一天,东软的李老师让我们安装两个环境,在安装过程当中,虽然遇到很多的小困难,老师还是 耐心的为我们每位同学解决困难. , 终于在下午我们完成了第一项任务 在第二天我们 开始编写程序 虽然在运行过程中我们每个人的编辑环境都出现了问题,但是在老师的耐心指导下我们终于将此环境运行成功 利用这三天的时间,我深刻体会到了用户的体验,我们所编写的软件是针对用户而言的,我们应当 考虑到用户体验的各种角度,首先就是用户的第一印象,在这里我们要考虑以下两点,第一点就是谁会是我们的目标用户,第二点就是用户