![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity 3D游戏开发
鱼C缸
知之为知之,不知为不知,是知也。
展开
-
< Unity 3D专栏 >实现游戏对象与对象之间通信
游戏中,对象与对象之间需要交流,实现的方法多种,例如:可定义静态变量,其他脚本直接调用, 也可用到: SendMessage今天主要学习SendMessage的用法。 1、创建两个脚本:“Cube0”和“Cube1”;2、将两个脚本分别拖拽到Cube0和Cube1对象中;3、修改Main.cs脚本: using UnityEngine;using System.Co原创 2012-08-06 02:21:46 · 6572 阅读 · 0 评论 -
< Unity 3D专栏 >NGUI插件基础教程(二) - Sprite,SlicedSprite,Tiled Sprite,FilledSprite的区别
Sprite:标准Sprite控件,自适应图片大小。Sliced Sprite:一个含有9个切片的Sprite,创建固定边框的控件最佳选择,固定大小,不会随图片大小而改变,可做人物头像等。Tiled Sprite:一个Sprite缩放填充整个区域。如背景由同一元素图片构成可用此控件Filled Sprite: 每个Sprite都会有一个单独的参数(fill Amount)来原创 2013-08-22 23:20:03 · 5212 阅读 · 0 评论 -
< Unity 3D专栏 >批量操作,界面元素的显示状态
之前做界面遇到一些问题,窗口中部分元素,不显示,研究发现,可以通过设计模式来批量操作这些元素。 首先要载入:using System; public GameObject [] PlayerInfo;void ClickPlayerInfo(){ Array.ForEach(PlayerInfo,x => x.gameobject.SetActive(fal原创 2013-08-23 17:50:33 · 1328 阅读 · 0 评论 -
Unity3D 处理Label的颜色代码
UILabel m_name = transform.Find("Name").GetComponent();m_name.text = GetNameColor(name,1);string GetNameColor(string name , int quality){ string str; switch(quality) { case 1: str原创 2013-08-15 15:41:21 · 7556 阅读 · 0 评论 -
<Unity3D 工作笔记>新手引导制作
做新手引导时,遇到上层引导手指,不能准确的找到偏移控件的位置解决方法 我试过很多,但效果都不怎么理想,配置起来非常麻烦,与虎哥商量后,发现一个比较牛逼的方法实现效果: 界面被黑幕遮挡,只有引导的图标,在黑幕的前面,并颜色显示正常。思路: 1、找到原有图标,克隆它。 2、将克隆的图标,放在指定的窗体上面(我这里做了一个引导原创 2013-10-28 23:12:42 · 10039 阅读 · 2 评论 -
Unity通过代理访问Assetstore
公司是通过代理上网,Unity3D asset store 能通过网页访问,,但在U3D编辑器里面,访问Asset Store会提示 无法打开。查了很多资料,基本上 没有找到有价值了, 通过尝试,可以解决这个问题,, 方法如下:在Windows上是通过代理来上网的,虽然代理在IE里面已经设置了,但是我们的Unity编辑器并不会去探测这个设置,相反,它会去探测windows环境变原创 2013-12-27 10:33:03 · 10469 阅读 · 1 评论 -
Invoke() 方法是 Unity3D 的一种委托机制
Invoke() 方法是 Unity3D 的一种委托机制如: Invoke("SendMsg", 5); 它的意思是:5 秒之后调用 SendMsg() 方法;使用 Invoke() 方法需要注意 3点:1 :它应该在 脚本的生命周期里的(Start、Update、OnGUI、FixedUpdate、LateUpdate)中被调用;2:Invok原创 2014-01-27 09:11:37 · 8901 阅读 · 1 评论 -
[转]DrawCall优化
Unity3D 对于移动平台的支持无可厚非,但是也有时候用Unity3D 开发出来的应用、游戏在移动终端上的运行有着明显的效率问题,比如卡、画质等各种问题。自己在做游戏开发的时候偶有所得。对于主要影响性能的因素做个总结。主要因素有:1.Drawcall 值过大Drawcall 值过大,所需要的 GPU 的处理性能较高,从而导致CPU的计算时间过长,于是就卡了。2.点原创 2014-03-05 14:33:15 · 2830 阅读 · 0 评论 -
UNITY多人游戏基础
1.总览。多人游戏基本结构:Clent/Server,分为Authoritative Server和Non-Authoritative Server两种,前者客户端发送消息,服务器端反馈结果,好处是有效防止客户端作弊,并统一不同客户端之间的物理表现和互动状况,缺陷是存在网络延时,很有可能每发出一个命令要过一段时间才能接收到反馈。解决方法是client-side prediction客户端预原创 2014-03-20 17:05:41 · 6702 阅读 · 1 评论 -
[Unity3D]场景间切换与数据传递(以及物体删除技巧)
先介绍一些基本函数(具体用法自己查文档):--------------------------------------------------------1.场景切换:Application.LoadLevel("Level1")2.读取场景时不移除物体:DontDestroyOnLoad(object) //会保留该物体的任何数据,包括坐标,可以用于任何物体,也包括GUI哦,可以灵原创 2014-04-09 09:57:12 · 9647 阅读 · 0 评论 -
<Unity3D专区>Unity实现加载场景进度条
using UnityEngine;using System.Collections;public class Scene2 : MonoBehaviour { //异步对象 AsyncOperation asyncOperation; void Start () { DontDestroyOnLoad(gameObject); } void OnGUI(){ //开始加原创 2014-04-10 13:52:23 · 15142 阅读 · 5 评论 -
< Unity 3D专栏 >添加控件检测事件,函数处理
注册一个函数时间,用来监控button是否被按下。 void Start () { Transform skill_back = transform.Find("button_back"); UIEventListener.Get(skill_back.gameObject).onClick = OnSkillback;} void OnSkillback(原创 2013-08-24 00:23:28 · 1635 阅读 · 0 评论 -
< Unity 3D专栏 >游戏中 - 怪物AI基础篇
AI代码,值得收藏 using UnityEngine;using System.Collections;public class BoosAI : MonoBehaviour{ //敌人状态 //敌人站立状态 public const int STATE_STAND = 0; //敌人行走 public const int原创 2013-08-22 23:28:41 · 10378 阅读 · 0 评论 -
< Unity 3D专栏 >预设物,节省游戏资源才是王道
U3D可以预设物体,类似与C/C++中的指针,可大大降低资源的占用,特别是手机开发方面,并还可以方便的设置物体的属性,下面就简单介绍一下: 注:地形中的树木,可用预设物解决穿人的问题! (*^__^*) 嘻嘻…… 1、创建一个预设对象; 2、设置预设属性;3、新建Cube (2)对象,渲染对象(1拖拽到2),并将其对象,拖拽到预设对象中(2拖拽至3); 然原创 2012-08-06 03:08:38 · 4834 阅读 · 0 评论 -
< Unity 3D专栏 >动态创建对象,并渲染贴图,动态添加删除脚本
初学U3D,贵在坚持和总结,一来对平时的知识巩固,二来可以让自己思路更清晰! 希望与更多的U3D爱好者交流学习。 一、动态为对象添加渲染贴图:using UnityEngine;using System.Collections;public class NewBehaviourScript : MonoBehaviour { GameObject obj;原创 2012-08-04 02:45:56 · 18412 阅读 · 1 评论 -
< Unity 3D专栏 >U3D预制包,很好很强大 (一)
一、聊一聊U3D预制包,预制包在游戏中会经常用到,这里做一个简单的介绍,大家一起学习学习。 1、Custom Package..: 定制包2、Character Controller : 角色控制包3、Glass Refraction:反光透明材质4、Image Effects(Pro Only):摄像机效果包5、Light Cookies和Light F原创 2012-08-08 00:56:28 · 5905 阅读 · 0 评论 -
< Unity 3D专栏 >U3D预制包,很好很强大 (二)
继续上一章内容! 1、Physic Materials:物理包可设置地面和物体的摩擦类型,如:弹力、冰效、金属摩擦、橡胶摩擦和木头摩擦效果,只需将摩擦特效拖拽至Capsule Collider 中的Material属性,如下图所示: 注: 实现相应效果,需将地面(Plane)属性的Capsule Collider 中的Material属性设置相应的材质。 2、Pro原创 2012-08-11 19:30:26 · 10609 阅读 · 0 评论 -
< Unity 3D专栏 >Transform结构图
看到Transform结构图,记录下来:原创 2012-12-02 20:13:54 · 1747 阅读 · 0 评论 -
Unity3D基础知识梳理<转>
这段时间在做Unity的项目,这差不多是我的第一次实战啊~然后公司来了实习的童鞋要学Unity,但是我一向不靠谱啊,所以只能帮他们稍微梳理下基础的东西了啊,唉~学长只能帮你们到这里了~顺便就把自己这两天整理的一些基础知识分享上来了,闲话不多说~美术部分: Unity的话主要还是分两块吧,第一块是美术(自己都不懂~这里允许我稍微带过一下吧~),美术的话主要包括3d模型、材原创 2012-12-20 22:12:52 · 4860 阅读 · 0 评论 -
<Unity 3D工作笔记>给脚本添加标识ID
脚本与脚本之间,互相访问,访问可以通过如下方式,方便快捷:例如,脚本:Mand.cs 下有一个函数Open(),,通过添加标识,可直接用:Mand.instance.Open();直接访问函数,还是比较方便的! 标识ID如下: static Mand mInstance=null; public static Mand instance{ get{ re原创 2013-04-18 22:20:45 · 1647 阅读 · 0 评论 -
<Unity 3D工作笔记>关于不显示组件,无法保存到预设物的问题
场景中,为了方便资源的管理,最好的方法就是用预设物来保存场景的资源。之前遇到一个问题,修改场景的按钮,让某个按钮不在显示,保存到预设,每次都会失败!这个问题,我咨询了我们的主程序,他给出了以下说法:1、预设物中手动修改物体的显示状态,是不合法的的操作; 这里主要指的是:手动禁用2、方案有2种: a、调整Button值为 X:0 Y:0 Z:0原创 2013-04-18 22:41:12 · 2918 阅读 · 0 评论 -
<Unity 3D工作笔记>脚本中勾选与取消勾选脚本,代码中的实现!
1、实例化脚本,选择/取消勾选! UILabel Label_note; UILabel Label_of; Label_of = Label_note.GetComponent(); //勾选脚本 Label_of.enabled = true;原创 2013-04-18 22:31:54 · 5902 阅读 · 0 评论 -
<Unity 3D工作笔记>游戏角色 - 经验条的制作
工作中遇到一些问题,好好记录一下,供大家参考一下! 游戏中,显示经验条,分别为,当前经验和升级总经验! 例如,玩家从1级升级到2级,所需经验为2000;玩家实际经验900,这是我们要制作一个Label显示,清楚的告诉玩家升级的信息!如下图所示: 这里考虑到,升级经验值不是一个固定的数值,这里1100是一个四位数,考虑到六位或七位数的时候,数值会与静态的文字重叠,原创 2013-04-18 22:11:27 · 5877 阅读 · 0 评论