Unity 3D
李发展
《神奇的Photoshop脚本自动化与插件开发》、《iOS移动开发从入门到精通》图书作者,苹果商店热门应用《互动教程》作者,互动教程网负责人。拥有近20年的IT行业工作和教学经验,曾就职于知名外企,主要负责iOS高级开发,服务过中国电信,宾利,古琦,香格里拉,杜蕾斯等行业标杆品牌。拥有丰富的实战和教学经验,授课形式不拘一格。熟悉iOS、Swift、Java、UI设计、Javascript开发等技术。
展开
-
unity3d Animation 动画系统
我使用unity3d的 Animation 系统 也有一段时间了 ,Animation 系统总的来说比较简单,我个人觉得比较复杂的情况就是比如我打cs的时候,拿着重型狙击,在跑步,突然发现敌人,这时候跑步的速度快速变小,但是然后维持一个低速的移动,同时举枪开镜,瞄准敌人。这个场景算Animation 处理比较复杂的一种情况,怎么做呢?请看下面。动画脚本 Animation Sc转载 2013-02-26 17:04:32 · 12526 阅读 · 1 评论 -
Unity3d 分别创建了两个线程客户端 服务器连接的简单示例
//分别创建了两个线程客户端 服务器连接的简单示例 using UnityEngine;using System;using System.Collections;using System.Threading;using System.Net.Sockets;using System.Net;using System.Text;public class TCPIPC转载 2013-02-26 17:36:05 · 6177 阅读 · 0 评论 -
Unity3d 应尽量避免使用foreach
//抛开其他的不说,我只关注GC Alloc,因为这点是造成unity游戏偶尔卡帧的罪魁祸首,举一个代码例子:using UnityEngine; using System.Collections;public class ForeachTest : MonoBehaviour { protected ArrayList m_array; void Start ()转载 2013-02-26 13:46:23 · 5024 阅读 · 1 评论 -
unity3d 动画卡帧 动画合成 动画层次
unity3d 中动画的添加http://unity3d.com/support/documentation/Manual/Character-Animation.html#AnimLayers在unity3d中,我们能很方便的使用4个动画,默认的是走,跑,跳,待机动作,可当我们根据场景需要,添加其他动画时,会遇到一些问题,如动画只播放一帧。转载 2013-02-26 16:22:12 · 5677 阅读 · 0 评论 -
unity3d 游戏内付费
一、搭建号沙盒环境( 详细请看:http://xiaominghimi.blog.51cto.com/2614927/706415)二、IAP付费流程图:总体流程图如下:详细流程图分为带服务端验证和不带服务端验证,本文研究的是带服务端验证,流程图如下:在Unity中制作IAP主要思想和OC是一样的,只需更改输入接口和输出接口,所以本文主要围绕如何通过C#以插件的转载 2013-02-26 16:45:58 · 3299 阅读 · 1 评论 -
Quaternion小示例
//Quaternion.AngleAxis 角轴//绕axis轴旋转angle,创建一个旋转。//设置变换的旋转,绕y轴旋转30度transform.rotation = Quaternion.AngleAxis(30, Vector3.up); //Quaternion.FromToRotation 从from到to旋转//从fromDirection到toDirection创转载 2013-03-11 11:49:30 · 2311 阅读 · 0 评论 -
停止旋转
//这个类似设置transform.rotation,然而rotation只在物理步结束应用到变换。 如果你想连续移动一个刚体或运动学刚体,使用MovePosition和MoveRotation代替。function Start () { rigidbody.rotation = Quaternion.identity;}转载 2013-03-11 13:47:32 · 896 阅读 · 0 评论 -
Rigidbody.MovePosition和Rigidbody.MoveRotation
//对于运动学刚体,它基于刚体的运动应用摩擦力。这个让你模拟刚体位于移动平台之上的情况。如果你想其他的刚体与运动学刚体交互,你需要在FixedUpdate函数中移动它。private var speed : Vector3 = Vector3 (3, 0, 0);function FixedUpdate () { rigidbody.MovePosition(rigidbody.positi转载 2013-03-11 14:13:23 · 6861 阅读 · 0 评论 -
Unity3d gui自适应屏幕
用Unity开发移动平台的游戏 不可避免的会遇到屏幕分辨率的问题 不同的分辨率上会使得原本正常的UI变得乱七八糟 我们知道 在Unity中可以拿一个plane作为背景 UI则是绘制在离摄像机最近的位置 可以认为是绘制在摄像机上的因此分辨率的不同会导致UI的位置和大小出现错误我们完全可以用一个plane去模拟button 并将它放在世界空间中 这样虽然可以解决位置和大小的问题转载 2013-03-11 11:48:31 · 5665 阅读 · 0 评论 -
Rigidbody.SweepTest 扫描测试
//返回bool类型,当为true时,刚体扫描相交的任意碰撞器,否则为false。//如果一个刚体碰到任何东西触发测试,如果它是穿过场景。//这类似于为任何一个刚体的碰撞器包含的所有点做一个Physics.Raycast,并返回最接近的所有碰撞(如果有)报告。这对于AI代码非常有用,当你需要知道如果一个物体想要适配不与任何东西碰撞的地方。var hit : RaycastHit;fu转载 2013-03-11 13:07:00 · 1279 阅读 · 0 评论 -
Rigidbody.detectCollisions 碰撞检测
//碰撞检测应否启用?(默认总是启用的)//当你有一个布娃娃,它被设置为运动学并且你想避免刚体上大量的碰撞检测计算时,禁用碰撞检测是很有用的。detectCollisions是非序列化的,也就是说,它不会显示在检视面板中并且当在场景中实例化或保存它时,它将不被保存。// Let animation control the rigidbody and ignore collisions//转载 2013-03-11 14:45:22 · 2188 阅读 · 0 评论 -
聊一下近况,研究unity的flash发布功能
前段时间在博客写了几篇简单的教程,受到了一些朋友的关注,非常感谢各位。不过最近都没再上来写东西了。这是因为最近我又忙起来了,暂时没有时间写新的东西。而且其实我写这些所谓的教程都是凭兴趣写的,没什么目的性,如果大家对于某个方面感兴趣,而我又刚好懂的话,我可以抽时间介绍一下。 最近我都在研究unity做flash项目的方法。从unity3.5开始,unity已经可以发布swf格式转载 2013-03-11 14:46:12 · 3917 阅读 · 0 评论 -
unity3d Quaternion
今天准备学习和研究下unity3d的四元数 Quaternion四元数在电脑图形学中用于表示物体的旋转,在unity中由x,y,z,w 表示四个值。四元数是最简单的超复数。 复数是由实数加上元素 i 组成,其中i^2 = -1 \,。 相似地,四元数都是由实数加上三个元素 i、j、k 组成,而且它们有如下的关系: i^2 = j^2 = k^2 = ijk转载 2013-03-11 14:46:44 · 995 阅读 · 0 评论 -
Unity3d iphone手指拖拽
using UnityEngine;using System.Collections;public class Test : MonoBehaviour {private Vector3 screenPoint;private Vector3 offset;// Update is called once per framevoid Update () {for (int i =转载 2013-02-26 13:53:12 · 772 阅读 · 0 评论 -
unity3d Runtime 切换摄像机
为了实现相机的切换,你只需要禁用一个、启用另一个。本教材中我创建了一个简单的场景:一个 cube、3 个相机。为了遍历这些摄像机,我们可以使用 tag 标记来实现。选取摄像机对象,放入一个列表中,然后使用 for 循环遍历,找到 camera 组件,然后禁用所有的。最后启用指定的摄像机。 Javascript function Update () { i转载 2013-02-26 16:28:07 · 1897 阅读 · 0 评论 -
Unity3d iOS基本优化和高级优化
http://www.cratesmith.com/archives/1831.做减法大量代码在Update()或FixedUpdate()中做处理,意味着无论代码的执行速度如何,都将在每次帧刷新的时候调用到,复制代码public class MyHoming : MonoBehaviour { publ转载 2013-02-26 17:01:22 · 1035 阅读 · 0 评论 -
Unity3d人物与墙壁碰撞问题求解
当我用Unity3D自带的人物与代码是碰撞正常进行(即人物不能穿过墙),而当我换成自己的代码(控制前进后退,屏蔽了系统自带的代码)控制系统自带的人物时,这个人物表示毫无压力的就穿过了墙,请问这是怎么回事呀?求解释。我是新手还请大侠们赐教呀~~(分不多了,交流)这是前进代码,后退、向左向右差不多的。你创建的墙应该是用Cube创建的吧,cube自带Box collide转载 2013-03-11 11:47:07 · 10266 阅读 · 0 评论 -
Rigidbody.OnCollisionEnter 碰撞速度检测
//当这个collider/rigidbody已经开始接触另一个rigidbody/collider时,OnCollisionEnter被调用。//相对于OnTriggerEnter,OnCollisionEnter传递Collision类而不是Collider。Collision类包含接触点,碰撞速度等细节。如果在函数中不使用collisionInfo,省略collisionInfo参数以避转载 2013-03-11 13:48:00 · 3950 阅读 · 0 评论 -
unity3d 画线(LineRenderer方式)
属性 物料从该列表中的第一材料是用来呈现线条。位置三维向量点连接的阵列。大小在此行中的段的数量。参数每行的参数列表:StartWidth在第一线位置的宽度。EndWidth在最后一行的位置的宽度。“开始彩色”转载 2013-03-12 11:49:18 · 6389 阅读 · 0 评论 -
unity3d 纹理贴图循环运动
用法很简单,把这个脚本放在有贴图的gameobject上就可以了贴图最好用psd格式的,jpg格式的不行#pragma strict // Scroll main texture based on timevar scrollSpeed = -0.5;// This must be set to override a bug where Render Order转载 2013-03-12 11:54:51 · 3310 阅读 · 0 评论 -
unity3d 遍历检测某个子物体
//应用户提问 也给大家分享一下 可以查找某个物体下无限层级的子物体名称 并返回该子物体 //把这个函数放到你的代码中 check代表你要查询的物体 name为名称 如return GetTransform(transform,"bone12"); Transform GetTransform(Transform check,string name) { foreach (Tran转载 2013-03-12 14:11:13 · 4740 阅读 · 0 评论 -
unity3D导出exe文件,总是有个设置窗口,来设置分辨率和其他参数。如何删除掉这一步?
点开unity3d主界面左上角按钮Edit按钮里Project setting 下 player 选项,在Inspec视图下调节Resolution and presentation 里的 display Resolution Dialog 状态 选择Disabled转载 2013-03-12 14:30:59 · 8691 阅读 · 0 评论 -
unity3d 自定义鼠标形状
using UnityEngine;using System.Collections;public class Cursor : MonoBehaviour{ // Use this for initialization void Start() { //在游戏启动时就隐藏系统鼠标指针转载 2013-03-12 14:31:47 · 2043 阅读 · 0 评论 -
unity3d 拖动模型对象旋转效果
using UnityEngine; using System.Collections; public class RotateMode : MonoBehaviour { public float speed = 20.0F; private float flag; private bool bRotate;转载 2013-03-12 11:09:47 · 1635 阅读 · 0 评论 -
unity3d magnitude的意义
magnitude (Read Only)返回向量的长度,也就是点P(x,y,z)到原点(0,0,0)的距离。 最常用的是用来返回物体的移动速度speed=rigidbody.velocity.magnitude;只能读取。如果想自行规定距离可以先normalized然后乘以距离speed=speed.normalized*objSpeed;转载 2013-03-12 14:31:15 · 19710 阅读 · 0 评论 -
unity3d 旋转camera到特定对象
设定一个物体使得camera可以从现在为止自动飞到当前位置 1. 设定一个位置,可以在其前方放置一个显示其位置的cube。这里也可以写脚本设定位置。 2. 使用函数 移动函数 transform.position = vector3.slerp(positionstart, positionEnd, Time*time*0.001); 旋转函数 transfor转载 2013-02-28 17:23:33 · 2187 阅读 · 0 评论 -
unity3d 游戏中跟踪弹算法
在飞行射击游戏中,恐怕没有一个游戏不用到跟踪算法的。比如在玩街机的时候,是不是经常挂于BOSS的“跟踪弹”?这是怎样实现的呢?很简单,只要有高中的一点数学知识就行了!首先回忆几个三角函数sin,cos,tan(tg),arctan(arctg)sin(x)—对边/斜边。在1,2项限为正,3,4项限为负cos(x)—邻边/斜边。在1,4项限为正,2,3项限为负转载 2013-02-28 17:25:55 · 6931 阅读 · 0 评论 -
30 Review Sites to Promote Games At,这次有日访问量
The internet is aflow with tears from developers bemoaning the oversaturation of the App Store. In truth, the App Store is now seeing the same saturation of other software markets. Developers are no转载 2013-02-28 15:31:13 · 1043 阅读 · 0 评论 -
Unity 性能优化 Draw Call
Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:引擎首先经过简单的可见性测试,确定摄像机可以看到的物体,然后把这些物体的顶点(包括本地位置、法线、UV等),索引(顶点如何组成三角形),变换(就是物体的位置、旋转、缩放、以及摄像机位置等),相关光源,纹理,渲染方式(由材质/Shader决定)等数据准备好,然后通知图形API——或者就简单地看作是通知GPU——开始绘制,转载 2013-02-28 16:43:35 · 1742 阅读 · 0 评论 -
unity3d Quaternion 计算3D物体旋转角度
在3D程序中,通常用quaternion来计算3D物体的旋转角度,与Matrix相比,quaternion更加高效,占用的储存空间更小,此外也更便于插值。在数学上,quaternion表示复数w+xi+yj+zk,其中i,j,k都是虚数单位。可以把quaternion看做一个标量和一个3D向量的组合。实部w表示标量,虚部表示向量标记为V,或三个单独的分量(x,y,z)。所以qu转载 2013-02-28 17:41:07 · 2980 阅读 · 1 评论 -
[Unity3D]无缝场景切换解决方案(1) - 简单场景切换
本文转载自kingmax_res《[Unity3D]无缝场景切换解决方案(1) - 简单场景切换》因为前一段时间忙着openGL事情,所以没玩u3d了,这几天闲有性质研究下韩MM的问题。 所谓无缝场景切换,无非是涉及到场景或物体的预读,复杂点涉及下场景卸载,在复杂点涉及到场景二维数组,再在复杂点涉及数据结构用二叉树实现场景资源有序的读取与卸载。当然,复杂的我以后转载 2013-03-12 11:30:49 · 4350 阅读 · 0 评论 -
【转载】[Unity3D]场景间切换与数据传递(以及物体删除技巧)
先介绍一些基本函数(具体用法自己查文档):--------------------------------------------------------1.场景切换:Application.LoadLevel("Level1")2.读取场景时不移除物体:DontDestroyOnLoad(object) //会保留该物体的任何数据,包括坐标,可以用于任何物体,也包括GUI哦,可以灵转载 2013-03-12 11:33:05 · 1963 阅读 · 0 评论 -
小地图的实现
using UnityEngine;using System.Collections;public class minMap : MonoBehaviour { public Texture backGround;//小地图背景 public Texture playerMiniLogo;//玩家标记(可旋转) public Texture NpcMiniLo转载 2013-03-12 11:39:19 · 1188 阅读 · 0 评论 -
Unity的遮罩技术简述
遮罩技术是一个基本的技术方法,有很多很多中用法.你可以在Flash中经常看到遮罩的使用,它可以另一些视觉元素更加惊艳.当我看到Unity中没有包含任何几何体和图片的遮罩技术很不爽,不过,幸运的我找到了解决方案,就是"Depth Mask"着色器.//先看看着色器的代码,没错,非常短.Shader "Depth Mask" { SubShader{ C转载 2013-03-12 14:04:36 · 4492 阅读 · 1 评论 -
Unity3d iphone手指拖拽
using UnityEngine;using System.Collections;public class Test : MonoBehaviour {private Vector3 screenPoint;private Vector3 offset;// Update is called once per framevoid Update () {for (int i =转载 2013-03-13 10:17:25 · 1625 阅读 · 0 评论 -
unity3d 半透明面片或墙壁的实现
using UnityEngine; using System.Collections; public class example : MonoBehaviour { void Update() { RaycastHit[] hits; hits = Physics.RaycastAll(transform.position, transfo转载 2013-03-13 10:49:13 · 9899 阅读 · 0 评论 -
unity3d 带缓冲的镜头拉近效果
//大家应该见过,一些游戏中,当玩家发现了某样东西,摄像机会马上移动过去,但在快到的时候会减慢速度,这个代码实现的就是那个效果。//SmoothFollowWithCameraBumper.js var target : Transform; var distance : float = 3.0; var height : float = 1.0; var damping : floa转载 2013-03-13 10:53:45 · 7636 阅读 · 1 评论 -
unity3d 调用加密狗的dll
using UnityEngine;using System.Collections;using System.Runtime.InteropServices;public class what : MonoBehaviour { [DllImport ("ETDogCheck")] private static extern int et_FindToken (string et99p转载 2013-03-13 10:14:33 · 3983 阅读 · 1 评论 -
Unity3D AI人工智能(坦克模型自动寻怪,自动追击)
功能:1,坦克自动旋转炮管,自动瞄准2,在坦克的射程之内自动开炮3,坦克自动向你追击var Enemy_tank: GameObject; //定义坦克 var firepoint: Transform; //定义开火点 var bullet: Rigidbody; //定义子弹 var bullspeed: int=50; //定义子弹速度 var attackRa转载 2013-03-13 16:31:31 · 4362 阅读 · 0 评论 -
Unity3d json 数据库
新建BrowserHistoryForm.CSusing UnityEngine;using System.Collections;using System;using Bitverse.Unity.Gui;using Newtonsoft.Json.Linq;using System.Text;public class BrowserHistoryForm : BitForm转载 2013-03-13 10:13:37 · 2350 阅读 · 0 评论