- 浏览: 86909 次
最新评论
文章列表
unity3d游戏开发经常会遇到移动摄像机的情况,特别是场景太大,屏幕很难完全展示。
以下代码整合了PC和移动设备移动摄像机的方法,支持两点触控缩放
using UnityEngine;
using System.Collections;
public class MoveCamera : MonoBehaviour {
// 记录手指触屏的位置
Vector2 m_screenpos = new Vector2();
// Use this for initialization
void Start () {
// 允许多点触控
...
- 2014-03-30 10:24
- 浏览 976
- 评论(0)
最近用到unity3d读写文件,遇到了中文乱码问题,就研究了一下。项目是C#写的,这里就介绍C#读写中文的例子。
首先,项目使用utf-8编码,文件也要utf-8编码
using System;
using System.IO;
using System.Text;
public class FileOp
{
public void Read()
{
try{
string pathSource = "test.txt";
using (FileStream fsSource = new FileStream(pathSource,
...
- 2014-03-29 10:46
- 浏览 1369
- 评论(0)
最近项目需要PHP来解析二进制数据,如果直接PHP做比较麻烦,就想到VC编写COM组件来做,提供PHP调用。文章将介绍VC编写COM组件提供PHP调用,实现一个计算两个数字相加的功能。
用VC创建COM组件
1、vc新建项目 -> ATL项目,输入名称ComTest,ComTest将作为COM组件的名称。
2、到了ATL项目向导,不需要改动,完成向导。向导完成后,vc将会自动生成一系列的程序。
3、切换到类视图,在ComTest项右键,添加类,选择ATL简单对象,
4、来到ATL简单对象向导,输入你要新建的类名 MyClass,完成向导。(注 ...
- 2014-03-29 00:10
- 浏览 423
- 评论(0)
unity3d读取xml有好几种方式,最简单是直接利用System.Xml读取xml,但是项目打包会比较大,增加了1M的资源占用。另外两个是利用其他轻量级xml库来实现,如Mono.Xml、XMLParser。Mono.Xml是c#写的,XMLParser是js写的。文章主要说明Mono.Xml的用法。
为什么不建议使用System.Xml,unity的解释如下:
When building a player (Desktop, Android or iOS) it is important to not depend on System.dll or System.Xml.dll. Unity ...
- 2014-03-27 23:05
- 浏览 671
- 评论(0)
前些天接触unity3d,想实现点击屏幕选中物体的功能。后来研究了下,实现原理就是检测从屏幕发出的射线与物体发生碰撞,而这个发生碰撞的物体就是你选中的物体。
void MobilePick()
{
if (Input.touchCount != 1 )
return;
if (Input.GetTouch(0).phase == TouchPhase.Began)
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).posit ...
- 2014-03-23 22:10
- 浏览 1646
- 评论(0)
protobuf是google的一个序列化框架,类似XML,JSON,其特点是基于二进制,比XML表示同样一段内容要短小得多,还可以定义一些可选字段,广泛用于服务端与客户端通信。文章将着重介绍在erlang中如何使用protobuf。
首先google没有提供对erlang语言的直接支持,所以这里使用到的第三方的protobuf库(erlang_protobuffs)
定义一个protobuf结构,保存为test.proto,如下:
message Person {
required int32 age = 1;
required string name = 2;
}
mes ...
- 2014-03-23 21:57
- 浏览 368
- 评论(0)
最近看到一道erlang面试题,要求分别用尾递归,lists模块,列表解析找出0-9的偶数。
-module(test).
-export([tail_loop/0, lists_func/0, list_comp/0]).
% 尾递归
tail_loop() ->
tail_loop( get_num(), []).
tail_loop([], List) ->
List;
tail_loop([F | Other], List) ->
tail_loop( Other, List ++ (if F rem 2 == 0 -> [F]; true - ...
- 2014-03-20 23:39
- 浏览 514
- 评论(0)
eclipse可以很方便地管理erlang项目,eclipse对erlang的默认编码ISO-8859-1,所以就会经常发生中文乱码问题。文章将说明如何解决eclipse导入erlang项目中文乱码问题。
eclipse先导入erlang项目,再通过修改eclipse配置来解决乱码。如下:
Window > Preferences > General
> Content Types
在右边的栏目中,选Text,再选Erlang source file
把ISO-8859-1改成UTF-8,然后点击右边的Update按钮即可。
- 2014-03-17 21:20
- 浏览 604
- 评论(0)
protobuf是Google开发的一个开源序列化框架,类似XML,JSON,其最大的特点是基于二进制,比传统的XML表示同样一段内容要短小得多。通过protobuf,可以很轻松的调用相关方法来完成业务数据的序列化与反序列化。但是,protobuf在使用当中也发现一些问题,数据在protobuf序列化后无法反序列化,或者丢失部分数据,这就与protobuf的目的违背。下面我们来看下这个问题吧。
首先定义一个protobuf结构,如下:
message Person {
required int32 mid = 1;
required int32 type = 2;
}
再来看下这 ...
- 2014-02-21 22:06
- 浏览 1407
- 评论(0)
protobuf是Google开发的一个序列化框架,类似XML,JSON,基于二进制,比传统的XML表示同样一段内容要短小得多。通过protobuf,可以很轻松的调用相关方法来完成业务数据的序列化与反序列化。protobuf repeated类型相当于std的vector,可以用来存放N个相同类型的内容,文章将简单介绍protobuf repeated的使用。
首先定义一个protobuf结构,如下:
message Person {
required int32 age = 1;
required string name = 2;
}
message Family {
r ...
- 2014-02-21 21:16
- 浏览 1382
- 评论(0)
mysql的优化可以从硬件设备的选择、操作系统、数据库结构设计、SQL查询、应用程序各个方面进行优化,这里只从数据库的设计及查询语句方面进行优化。1、创建索引对于查询占主要的应用来说,索引显得尤为重要。很多时候性 ...
- 2014-02-20 21:01
- 浏览 225
- 评论(0)
我们知道,erlang实现的网络服务器性能非常高。erlang的高效不在于短短几行代码就能写出一个服务端程序,而在于不用太多代码,也能够写出一个高效的服务端程序。而这一切的背后就是erlang对很多网络操作实现了近乎完美的封装,使得我们受益其中。文章将讨论erlang gen_tcp 数据连包问题及erlang的解决方案。
数据连包问题,这个在client/server的通讯中很常见。就是,当client在极短的时间内发送多个包给server,这时server在接收数据的时候可能发生连包问题,就一次性接收这几个包的数据,导致数据都粘连在一起。
这里先讨论{packet,raw}或者{pack ...
- 2014-02-13 21:05
- 浏览 422
- 评论(0)
在c++中,有三种正则可以选择使用,C ++regex,C regex,boost regex ,如果在windows下开发c++,默认不支持后面两种正则,如果想快速应用,显然C++ regex比较方便使用。文章将讨论C++ regex 正则表达式的使用。
C++ regex函数有3个:regex_match、regex_search 、regex_replace
regex_match
regex_match是正则表达式匹配的函数,下面以例子说明。如果想系统的了解,参考regex_match
// regex_match example
#include <iostream> ...
- 2014-02-09 19:32
- 浏览 499
- 评论(0)
我们写的程序不可能都没有bug,特别是项目越做越大,代码越来越多的时候,系统出错导致崩溃的可能性越来越大。而很多时候引发系统崩溃的来源可能不是致命性的,比如程序长时间运行,操作系统资源调度问题,或者是偶然的系统突发问题等等。那么,如何防止erlang猝死导致服务的长时间中断,erlang也给了我们答案:erlang心跳机制。
erlang心跳机制
什么是erlang心跳机制?这是erlang运行时系统定期监控系统是否正常运行的程序。
erlang为什么要心跳机制?我们都知道,erlang有很多进程监督树,启动了很多supervisor来保证process的高可靠性, 但如果连emulato ...
- 2014-01-15 19:56
- 浏览 376
- 评论(0)
Protocol Buffers(protobuf)是Google提供的一个开源序列化框架,类似XML,JSON,其最大的特点是基于二进制,比传统的XML表示同样一段内容要短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持c++、java、python等语言环境。通过将这些类包含在项目中,可以很轻松的调用相关方法来完成业务消息的序列化与反序列化工作。
下面将说明如何在windows下VC++使用protobuf
一、前期准备
1、下载protobuf源代码,有两种方式选择:
源代码包地 ...
- 2014-01-05 12:50
- 浏览 571
- 评论(0)