03 2013 档案
摘要:直接切入正体回忆以前Direct3D中的空间向量图形知识,以及研究Unity3D里是怎么表示的。Vector3: Vector3这词最早是谁发明的无从考证了,但是Unity3D里出现了这个名词的时候,我才意识到这个不是D3D和openGL才有的变量名,D3D里叫做 D3DXVECTOR3继承自_D3DVECTOR结构体,其中_D3DVECTOR结构体只有3个单精度数X,Y,Z。用于表示向量。 Unity3D中Vector3类定义(只写有用的): 属性: x,y,z 表示一个空间向量。 this 用于访问x,y,z三个数据使用数组的方式访问,比如[0][1][2] normalized 返回单位
阅读全文
摘要:一、追溯去gameloft笔试,有一个题目是说:叫你去设计一个FPS(第一人称射击游戏),你是要用TCP呢还是要用UDP,说明理由 。二、学习这是两篇网上找到的文章,写非常不错。当时笔试的时候自己没想到这么全,但大概想法都是一致的,摘录下来再学习一下。1.网络游戏程序员须知 UDP vs TCP作者:rellikt@gmail.com首发链接:http://blog.csdn.net/rellikt/archive/2010/08/21/5829020.aspx这篇教程让我们就从最基本的网络数据收发开始谈起吧。其实这部分才是网络程序员应该做的最基础最简单的部分,但是这部分如果想要做好相对来说还
阅读全文
摘要:<?xml version="1.0"?><!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --><configuration> <system.web> <compilation debug="true" targetFramework="4.0"/> <httpRuntime/> <pages controlRenderingCompatibil
阅读全文
摘要:保护资源管理文件的相关内容 Unity允许用户使用AssetBundle.CreateFromMemory从一个 byte[]数组中建立一个AssetBundle的对象。在运行传输解密时,可以用这种加密方法来提高安全性和保护用户建立的资源管理中的内容。string url = "http://www.mywebsite.com/mygame/assetbundles/assetbundle1.unity3d";IEnumerator Start () {// Start a download of the given URLWWW www = new WWW (url);/
阅读全文
摘要:官方文档对CullingMask的注释只是说了通过位移运算符,可以添加选中层。 假设要摄像机只显示第10层,11层,12层。写成:camera.cullingMask = 1<<10 + 1<<11 + 1<<12;但是为什么要这样觉得很奇怪。于是研究了一下。通过print发现,随便一个层,它前面所有层的和,不会大于它自身的值。 这样的话,可以只用一个int变量保存多个类似布尔型的数据,节省内存。然后我写了一个读取CullingMask值的函数。智商拙技。如果用二进制去做更快 传入值是CullingMask的值,输出的int数组是同时选中了哪几个层。[201
阅读全文
摘要:1、只安装了.net framework 4.0,那么应用程序池也只能使用4.0的。vs编译的asp.net网站也只能使用.net framework 4.0.2、asp.net网站要动态生成目录和读写文件需要如下步骤:2.1、修改应用程序标识2.2、给目录权限 添加NETWORK SERVICE账户2.3、添加权限完成。
阅读全文
摘要:1、安装IIS时要选择.net扩展和ASP.net,否者运行时会无法解析.net2、安装IIS后要检查.net framework是否安装,如果没有则安装:%windows%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i3、HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效。 添加一个应用程序池,.net framework版本选择v2.0.50727 确定。在网站的高级设置中的应用程序池中选择刚刚添加的。确定问题解决。
阅读全文
摘要:在Plugins目录下导入LitJson.dll文件后,系统提示Internal compiler error. See the console log for more information. output was:Unhandled Exception: System.TypeLoadException: Could not load type 'System.Runtime.Versioning.TargetFrameworkAttribute' from assembly 'LitJSON'. at Mono.CSharp.Driver.Compile
阅读全文
摘要:Client:using UnityEngine;using System.Collections;using LitJson;public class GetPhotoList : MonoBehaviour { // Use this for initialization void Start () { StartCoroutine(GetPhotos()); } // Update is called once per frame IEnumerator GetPhotos(){ WWWForm form =...
阅读全文
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.IO;using System.Text;namespace UpdatePhoto{ public partial class UpdatePhoto : System.Web.UI.Page { protected void Page_Load(object sender, E...
阅读全文
摘要:网路的硬件也有限,而人的创造也无限,在公网平均130ms的Latency下,是不存在“完全的”的同步情况。如何通过消除/隐藏延时,将用户带入快速的交互式实时游戏中,体验完美的互动娱乐呢?以下六点,将助你分清楚哪些我们可以努力,哪些我们不值得努力,弄明白实时游戏中同步问题关键之所在,巧妙的化解与规避游戏,最终在适合普遍用户网络环境中(200ms),实现实时快速互动游戏:1. 基本情况:(A) 网络性能指标一:带宽,限制了实时游戏的人数容量(B) 网络性能指标二:延时,决定了实时游戏的最低反应时间2. 两个基本原则:(A) 让所有的用户屏幕上面表现出完全不同的表象是完全没有问题的。(B) 把这些完
阅读全文
摘要:同步在网络游戏中是非常重要的,它保证了每个玩家在屏幕上看到的东西大体是一样的。其实呢,解决同步问题的最简单的方法就是把每个玩家的动作都向其他玩家广播一遍,这里其实就存在两个问题:1,向哪些玩家广播,广播哪些消息。2,如果网络延迟怎么办。事实上呢,第一个问题是个非常简单的问题,不过之所以我提出这个问题来,是提醒大家在设计自己的消息结构的时候,需要把这个因素考虑进去。而对于第二个问题,则是一个挺麻烦的问题,大家可以来看这么个例子: 比如有一个玩家A向服务器发了条指令,说我现在在P1点,要去P2点。指令发出的时间是T0,服务器收到指令的时间是T1,然后向周围的玩家广播这条消息,消息的内容是“玩家A.
阅读全文
摘要:大多数实时网络游戏,将 server 的时间和 client 的时间校对一致是可以带来许多其他系统设计上的便利的。这里说的对时,并非去调整 client 的 os 中的时钟,而是把 game client 内部的逻辑时间调整跟 server 一致即可。一个粗略的对时方案可以是这样的,client 发一个数据包给 server,里面记录下发送时刻。server 收到后,立刻给这个数据包添加一个server 当前时刻信息,并发还给 client 。因为大部分情况下,game server 不会立刻处理这个包,所以,可以在处理时再加一个时刻。两者相减,client 可以算得包在 server 内部耽
阅读全文
摘要:我们的游戏选择角色的时候需要在2d GUI的上层显示3d模型,默认3d模型是显示在2d GUI下面的,所以需要另外创建一个Camera,并且把新建的Camera 设置 target 到 RenderTexture,然后把这个RenderTexture显示到GUI上就行了。代码如下:Create Camera: _myObject = new GameObject(_Name, typeof(Camera), typeof(Skybox)); _myCamera = _myObject.camera; _myCamera .depth = 2; ...
阅读全文