存档

2010年11月 的存档

Camera.ScreenToWorldPoint

2010年11月15日 没有评论

function ScreenToWorldPoint (position : Vector3) : Vector3

描述

将屏幕空间的位置转换为世界空间的位置。

屏幕空间是以像素点来描述的。屏幕的左下角的座标为(0,0);右上角的座标为(pixelWidth,pixelHeight)。Z值位置是以世界单位到相机的距离。

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    void OnDrawGizmosSelected() {
        Vector3 p = camera.ScreenToWorldPoint(new Vector3(100, 100, camera.nearClipPlane));
        Gizmos.color = Color.yellow;
        Gizmos.DrawSphere(p, 0.1F);
    }
}
分类: 游戏开发 标签:

Input.mousePosition

2010年11月13日 没有评论

static var mousePosition : Vector3

描述
当前鼠标的位置(像素点坐标系,只读)。
窗口或屏幕的左下方为坐标系的(0, 0)。窗口或屏幕的右上方为坐标系的(Screen.width, Screen.height)。

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public GameObject particle;
    void Update() {
        if (Input.GetButtonDown("Fire1")) {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            if (Physics.Raycast(ray))
                Instantiate(particle, transform.position, transform.rotation);

        }
    }
}
分类: 游戏开发 标签:

腾讯看了会沉默,360看了会流泪![转]

2010年11月12日 没有评论

1、网易终于回了趟母校,当年的旧宿舍现在更旧了,穿过空无一人的走道,他点了支
烟,透过烟雾的缭绕看清门牌上的号码。
1998年的时候,几个新生住进了这里。
两年后新浪去了美国上市,搜狐也去了,网易想起那时的腾讯,白净,斯文,头发睡得
乱蓬蓬从上铺探出头,细声细气托他帮忙捎瓶开水。

2、04年的时候腾讯去香港上市,百度到罗湖口岸送他。
两个人一路上都没有说旁的话,直到最后腾讯快要入闸了,百度才说:“我放弃了绿
卡。”
腾讯哦了一声,心里不知道是高兴还是难过。
他不是没机会去美国上市,但偏选了香港,原本想,隔着整个太平洋,自己总会爱得少
一些,可是他偏又留下来了。 可是那又怎么样,又不是为了自己。
3、谷歌刚到香港的时候腾讯替他接风,到最后腾讯终于忍不住问:“你怎么不回硅
谷?”
谷歌其实已经喝醉了,一双雏菊蓝色的眼睛没了焦点,大着舌头说不甚流利的中国话:
“他说他最爱的城市是香港,可是我明明知道他已经办理了绿卡,为什么要放弃。”
腾讯心里颤了颤,谷歌还在絮絮的说酒话:“既然当不了他最爱的人,我就呆在他最爱的城
市。”
4、百度问腾讯:“你凭什么做搜索引擎?!”
腾讯当时打了个哈哈,说不止搜索引擎,别人有的什么好东西,我也会做的。谁又知道它内心怎么想的呢,腾讯望着百度眼里像是静止的水波般平静,他说,“就算全天下都说我是抄袭者,那又怎么样,我是为了谁呢?”
5、搜狐终于忍不住问,你为什么非要做搜索引擎和SOSO问问?大家都是同门师兄弟何
必咄咄逼人就不放过百度?
腾讯一如往常漫不经心微笑,说你不会明白。当时搜狐只想扇腾讯一巴掌。
许多年后,当搜狐恨恨地COS新浪微博时,突然就明白过来,原来,爱一个人真的可以
爱到盼他痛恨自己的地步。
6、“从前我问过你,如果有天我不再爱你了,你会怎么样?你当时只是闲闲地掸了掸
烟灰,伸出手揉着我的头发说我是傻瓜。”奇虎360喃喃的说:“其实还有句话我一直
没有说:如果有天你不再爱我了,我绝不会容许我自己出现在任何有你的地方。”
7、很多年前,奇虎360问:“如果有一天我和金山闹翻,你会不会帮我?”
当时腾讯并没有说话。奇虎做梦也没有想到,自己有一天竟然会跟腾讯闹翻。
他永远记得腾讯说出的那句话:“我爱谁是我的隐私,与你无关。”
奇虎笑了笑,却在心里想,那么就掀开所有的隐私吧,看你到底在扫描什么。
8、当瑞星看到奇虎360终于跟腾讯翻脸的时候,几乎第一时间拿起电话,可是最终慢慢
放下。
窗外是北京秋日的蓝天,像水晶一样清澈得不可思议。
他想起当年,自己公开宣布奇虎给用户装“后门”的时候,奇虎的眼神也像这天空一
般。
“傻瓜!”他在心里冷笑,也不知道是在说自己,还是说奇虎。
9、 “投票你看了吗?”电话那端的腾讯或许笑了笑,马上又咳嗽起来。网易觉得心里
发紧,腾讯却慢条斯理的说:“又不是选班长,有什么好看的。”网易想起当年选班
长,不知为什么自己竟然全票当选,后来才知道是腾讯捣的鬼。“选上班长要请客呀。
”他仍记得腾讯的手,轻轻拍在自己肩头。
10、腾讯站在窗前,意兴阑珊的俯瞰脚下如新笋般的楼宇。深圳的下午阳光永远这样明
媚,在这个亚热带城市里,四季嬗递无痕,岁月光阴无声无息,一年又一年。一切又有
什么意义?哪怕我把自己变成银行又怎么样?他连我的钱也不爱。
11、百度说,我会永远站在你身边,那个时候腾讯正在盯着一个简洁而苍白的搜索界面发呆。
听到这句话,腾讯转过头看到百度站在他身后,突然就笑了,那么远,那么近。当初,在校
园的小径上,他就是这么看着自己,然后坚定的许下自己的诺言,我会永远站在你身边。
12、奇虎360靠着偌大的落地窗,眼神空洞的望着窗外,闹到今天这个地步,怪谁呢?心如刀绞的感觉就是现在这样吧,谁都变了,可惜自己的心却没有变,纵然自己身败名裂,粉身碎骨,如果你愿意,那么我又有什么不愿意的呢。
13、毁灭他吧,瑞星这样说道。当年那个在学校的开水房,因为被自己打烂水壶烫到脚而嚎啕大哭,如此真性的人已经找不回来了,他还记得当时送他回寝室,尔后整整背着他去上了一周学,那时的体温还残留在身体里。再也没有了,他说,然后咬住自己的手背,原来嚎啕大哭也是一种享受。
14、金山面无表情的看着桌上的报告,孰对孰错,自己为什么会如此执着的去追究。不想看到他难过啊,他看着桌面上蹦出的那只小狮子,眼神也变得温柔起来“你为什么就不愿意正眼看看我呢?傻瓜。”

分类: 流淌的河 标签:

忧伤还是快乐

2010年11月12日 没有评论

忧伤还是快乐
话说:可不可以不要这个奖……。

分类: 最大音量 标签:

11度青春之《老男孩》

2010年11月9日 没有评论

分类: 伪宅一族 标签:

血条或进度条的效果

2010年11月9日 没有评论

用Unity做血条或进度条真的很方便,GUI里scrollbar就可以轻松实现,再加上lerp一个血条或进度条就完成了。

using UnityEngine;  
using System.Collections;  

public class BloodBarTest : MonoBehaviour {  

    public GUISkin theSkin;  
    public float bloodValue = 0.0f;  
    private float tmpValue;  
    private Rect rctBloodBar;  
    private Rect rctUpButton;  
    private Rect rctDownButton;  
    private bool onoff;  

    // Use this for initialization  
    void Start () {  
        rctBloodBar = new Rect (20,20,20,200);  
        rctUpButton = new Rect (50,20,40,20);  
        rctDownButton = new Rect (50,50,40,20);  
        tmpValue = bloodValue;  
    }  

    void OnGUI (){  
        GUI.skin = theSkin;  
        if (GUI.Button (rctUpButton,"加血")){  
            tmpValue = -1.0f;  
        }  
        if (GUI.Button (rctDownButton,"减血")){  
            tmpValue += 0.1f;  
        }  
        if (bloodValue > 0.0f) tmpValue = 0.0f;  
        if (bloodValue < -1.0f) tmpValue = -1.0f;  
        bloodValue = Mathf.Lerp(bloodValue,tmpValue,0.05f);  
        //~ Debug.Log (bloodValue + " " + tmpValue);  
        GUI.VerticalScrollbar(rctBloodBar, 1.0f, bloodValue,0.0f, 1.0f,GUI.skin.GetStyle("verticalScrollbar"));  
    }  

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

    }  
}
分类: 游戏开发 标签:

Unity3D 音乐开关及音量控制 [转载]

2010年11月9日 没有评论

在Component — Audio下创造一个Audio Source 附于一个GameObject上,加上音乐,

把playOnAwake勾去掉,然后将控制脚本附于它,再建一个GUI按钮来调用AudioSwitch()这个函数就OK了。

var myAudio;  
myAudio = GetComponent(AudioSource);   
private var scrollVol : float = 0.5;   
function AudioSwitch (){  
if(!myAudio.playOnAwake)   
{  
myAudio.Play();  
myAudio.playOnAwake=true;  
}  
else  
{  
myAudio.Stop();  
myAudio.playOnAwake=false;  
}  
}  
function OnGUI()  
{  
if(myAudio.playOnAwake)  
{  
scrollVol = GUI.HorizontalSlider (Rect (150,175,100,20), scrollVol, 0.0, 1.0);   
myAudio.volume = scrollVol;  
}  
}
分类: 游戏开发 标签:

Unity3d Physics 类[转载]

2010年11月9日 没有评论

Physics.RaycastAll

static function RaycastAll (ray : Ray, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : RaycastHit[]
static function RaycastAll (origin : Vector3, direction : Vector3, distance : float = Mathf.Infinity, layermask : int = kDefaultRaycastLayers) : RaycastHit[]
函数描述
发射一条穿过整个场景的射线,返回他所有碰到的物体

参数理解:

ray : Ray       结构体,包含射线的源(origin : Vector3),和目标(direction : Vector3),即

用来表示射线投射点和方向

distance : float       浮点变量 射线长度

layerMask : int       层遮罩或深度,个人理解,这个参数决定射线能碰到物体的最大个数,很有用,大场景时,你不希望返回所有的物体吧,会增加系统开销

———————————–

static function Raycast (ray : Ray, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : bool
参数
名称                       描述
ray                         同上
distance                同上
layerMask              同上

返回
在射线范围内只要有 collider对象就返回true

———————————–
static function Raycast (ray : Ray, out hitInfo : RaycastHit, distance : float = Mathf.Infinity, layerMask : int = kDefaultRaycastLayers) : bool
参数
名字                      描述
ray                         同上
distance                同上
hitInfo rayhit          输出信息,这里指定一个 RaycastHit 变量 保存撞击信息
layerMask              同上

返回
撞击任何Collider对象返回true
———————————–
Physics.OverlapSphere
static function OverlapSphere (position : Vector3, radius : float, layerMask : int = kAllLayers) : Collider[]
参数
名字                        描述
position                  位置信息
radius                      以‘位置信息’为中心,以radius为半径的的一个范围
layerMask              同上

描述
返回一个Collider类型数组,保存radius内,layerMask深度内的Collider对象

   //被击中的collder变为半透明  
   var hits : RaycastHit[];       //定义一个RaycastHit数组           
   hits = Physics.RaycastAll (Camera.main.transform.position,   Camera.main.transform.forward,50);     //主相机的方向发射一条长50的射线,射线碰到的物体保存在数组hits中  
   Debug.DrawRay (Camera.main.transform.position, Camera.main.transform.forward *10, Color.green);  
//这个是调试中才看的到了,吧这条射线画出来  
   var hit : RaycastHit = hits[0];    //取碰到的第一个RaycastHit  
   var renderer = hit.collider.renderer;  
   if (renderer)  
   {  
    renderer.material.shader = Shader.Find("Transparent/Diffuse");  
    if (renderer.material.color.a !=0.3)  
    {  
     renderer.material.color.a = 0.3;  
    }  
    else  
    {  
     renderer.material.color.a = 1;  
    }  
   }
分类: 游戏开发 标签:

Camera.depth

2010年11月8日 没有评论

Camera.depth

var depth : float

描述:

摄像机渲染顺序中的摄像机的深度。

摄像机的渲染顺序是由深度决定的,由低到高。

如果你在项目中,有多个摄像机,并且有一些不能够覆盖整个屏幕,那么可以使用这个参数去控制摄像机渲染的顺序。参考:camera componentCamera.rect

C#

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    public void Awake() {
        camera.depth = Camera.main.depth + 1;
    }
}
分类: 游戏开发 标签:

RT-Thread上海开发者聚会

2010年11月8日 没有评论

今天参加了RT-Thread上海开发者聚会,其实我并不是RT-Thread的开发者,不过总归对RTOS有一点兴趣,有些东西用到了可能就比较着急,为什么不早点了解。至于RT-Thread的介绍,也没有什么必要。Google一下,就知道了。这种聚会的好处之一是可以多认识嵌入式领域的开发者,可以了解更多的资讯。

送了一本书还有一个雷柏的无线鼠,都还不错。

分类: 嵌入式开发 标签: