unity项目总结-2

原创 2013年12月01日 20:47:31

最近又做了一个unity的项目,把出现的一些问题及解决方法写下来

(1)关于第一人称相机问题

第一人称相机带有Mouse Look脚本,这样会导致相机时刻随鼠标转动,当实现提示框功能时,用鼠标进行选择的时候会出现镜头晃动,体验效果很不好,这个时候应该动态的将第一人称携带的脚本组件删除掉,通过Script = find(“脚本名称”)在destroy(script)即可,当执行完毕后在添加该组件,addgetcomponent("").这样体验效果就非常好了,不会出现相机跟随鼠标乱动的情况。

具体代码如下:

//首先定义变量

      GameObject player;
     GameObject playercam;
// 进行初始化操作
void Start () {

      //通过代码找到定义的对象

player = GameObject.Find("First Person Controller");
playercam = GameObject.Find("Main Camera");

}

// Update is called once per frame
void Update () {

}
void OnGUI()
{
if(GUILayout.Button("取消mouselook"))

{    

                       //移除MouseLook脚本,注意下面的Object类型,而不是GameObject

Object script1 = player.GetComponent("MouseLook");
Destroy(script1);
Object script2 = playercam.GetComponent("MouseLook");
Destroy(script2);
}

if(GUILayout.Button("添加mouselook"))

{      

                     //添加MouseLook脚本

Object script1 = player.AddComponent("MouseLook");
Object script2 = playercam.AddComponent("MouseLook");
}

}

************************************************************************************************写在下面

//昨天又对项目做了测试,发现这种方法不是很好,会出现bug,也就是按键行走方向有时候会出错, 按向前的键可能向后走类似这种bug,最后通过在场景中添加定点相机解决了该问题。也就是当弹出窗口时,第一人称关掉,打开定点相机,窗口消失后,再切换回来

(2)闪光标记效果

有时候在游戏中,为了达到提示玩家的作用,往往会放置一些突出的标记。通过3dmax做出的模型通常不自带闪光效果。这时候可以通过代码来控制。利用颜色渐变的效果,将该脚本拖入模型中即可。脚本如下:

var colorStart = Color.red;
var colorEnd = Color.green;
var duration = 1.0; //值越小,变化的效果越明显

function Start()
{

}


function Update () {


     var lerp = Mathf.PingPong (Time.time, duration) / duration;
    renderer.material.color = Color.Lerp (colorStart, colorEnd, lerp);
   
    
   }

(3)GUI窗口弹出功能

 在同一个游戏中,为了达到界面统一性,最好用统一的窗口。而只改变窗口里面的lable,button即可,通过设置int i的值来显示不同的文字等。

(4)充分利用unity自带的粒子效果

在游戏中很多特效都可以用unity自带的粒子效果,比如水的特效,通过改变纹理贴图就可以创建不同的想要的效果,其他粒子效果比如烟,火焰等都可以更换贴图来模拟其他现象,总之使用粒子效果非常方便。

(5)让程序延迟几秒钟再执行

有时候需要让程序延迟几秒钟在执行,比如游戏中当闯关成功后,弹出胜利界面,1s后界面自动消失进入解锁界面,可以利用Invoke(“函数名”,延迟时间),比如Invoke(“yanchi(函数名)”,1(延迟时间,单位为秒)),在写一个yanchi(){要做的事情即可}。

(6)unity版本控制器

有时候同一个场景会有许多关卡,而一个项目往往是由多个人完成的。这个时候通过利用unity版本控制器可以同时进行,进行上传更新即可达到同时更新效果。但是我们在用版本控制器的时候会出现问题,由于场景名称是相同的,每次更新后都会有冲突,导致之前的场景被冲掉,效果不好。最后通过创建预制体的方法,得到了很好的解决。也就是说每个人新增加的模型或者脚本,都统一放在一个文件夹中,层级面板放模型,project面板放脚本等,然后创建一个预制体,将模型文件夹创建预制体即可。然后对预制体进行打包,再将预制体导入到项目总管理的机器即可。这时候预制体携带了新做的所有东西,包括脚本,纹理,模型等。在导入的时候还需要注意:有时候会导入比较多的东西,如果原场景中有该东西的话会有冲突,所以要保证脚本不能与原场景有重名。


***********************************************************************待续


Unity API 解析项目资源2

  • 2016年09月17日 02:18
  • 40MB
  • 下载

1、Unity3D项目学习笔记(1)- 2D Roguelike Tutorial

1、Unity3D项目学习笔记(1)- 2D Roguelike Tutorial游戏介绍:玩家控制一个2D帧动画人物在地图上行走,目标是到达出口,进入下一关。途中会有食物、敌人和障碍物。玩家每进行一...

【Unity】项目源码——2D横版过关类游戏《A_Standard_Runner》

【摘要】这同样是sunset在学习Unity游戏制作过程中独立制作的游戏,游戏的操作与过关方式比较简单,整体制作时间大概两到三天中除去上课吃饭以及睡觉的剩余时间。虽然也出现了意想不到的小问题,不过整体...

使用 Sublime Text 2 开发 Unity3D 项目

欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,【狗刨学习网】unity极致学院,致力于打造业内u...

Unity3D 2D ToolKit --为你的项目选择Camera

声明:   本博客文章翻译类别的均为个人翻译,版权所有。转载请注明出处: http://blog.csdn.net/ml3947,另外本人的个人博客:http://www.wjfxgame.com。 ...
  • ml3947
  • ml3947
  • 2014年01月13日 14:48
  • 3062

unity3d 2d游戏如何导出IOS项目

unity3d 2d游戏关于如何构建游戏框架与导出IOS项目   首先先去Unity3D官网 http://unity3d.com/,我们可以看到很多关于Unity3D的消息。点击DownLoad开...

Unity 3D的创建项目时的2D 3D选择的差别。

https://docs.unity3d.com/Manual/2DAnd3DModeSettings.html 2D and 3D Mode Settings When ...

Unity2D游戏开发基础教程1.2项目、资源和场景

Unity2D游戏开发基础教程1.2项目、资源和场景

Unity3D项目程序加密2——对dll进行混淆

之前一篇文章阿赵已经简单的介绍了怎样把自己写的代码打包成dll动态链接库,然后在Unity3D里面用。那么接下来的事情似乎就很简单了,我们在Unity3D里面写脚本,到最后完成时,把核心的代码剪切出去...

Unity3D项目程序加密2——对dll进行混淆

原文地址:http://liweizhaolili.blog.163.com/blog/static/1623074420145110502776/ 之前一篇文章阿赵已经简单的介绍了怎样把自...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:unity项目总结-2
举报原因:
原因补充:

(最多只允许输入30个字)