近期热门
粉丝9
关注 0
获赞 6
【Unty3d新同学进】通俗易懂的 相机切换代码【不喜勿喷】

[U3D] 【Unty3d新同学进】通俗易懂的 相机切换代码【不喜勿喷】

[复制链接]
4236 4 0 0 12年前 举报
本帖最后由 cgjoyvip 于 2012-9-9 22:45 编辑


2.jpg
网上看到很多写到相机切换代码,感觉都不是很如意,自己写了一个很简单,但很好理解的,利用数组。

创建3个 相机,名字随意,代码写好后,将3个相机拖到 数组列表(定义数组为3就可以,多个相机递增)

创建一个空的GameObject ,将3个相机放在下面为子物体, 将JS文件拖到GameObject上

[V.r 原创]

#pragma strict
//define camObject  variavle with array,  you should drag your camera GameObject in this array list
var camObject : Camera[];

function Start ()
{

        //default camera enabled is seconds you can change by yourself
        camObject [0].enabled = false;
        camObject [1].enabled = true;
        camObject [2].enabled = false;
}

function Update ()
{
//control swtich keyboard
        if(Input.GetKey("1"))
        {
                camSwap(1);
        }
        if(Input.GetKey("2"))
        {
                camSwap(2);
        }       
        if(Input.GetKey("3"))
        {
                camSwap(3);
        }
}


//is camera switch function
function camSwap(currentCam : int)
{

//by get num and judge which camera called

        if(currentCam == 1)
        {
                camObject [0].enabled = true;
                camObject [1].enabled = false;
                camObject [2].enabled = false;
        }
                if(currentCam == 2)
        {
                camObject [0].enabled = false;
                camObject [1].enabled = true;
                camObject [2].enabled = false;
        }
                if(currentCam == 3)
        {
                camObject [0].enabled = false;
                camObject [1].enabled = false;
                camObject [2].enabled = true;
        }
}
0
点赞
0
打赏
0
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论4
您需要登录后才可以回帖 登录

cgjoyvip 发表于 2012-9-10 08:49
Case也是行的哦,但是 这个例子用case结构就复杂了,效率反而不高。

恩恩,明白了,就是没看到这个else if ,才没弄明白了,呵呵。
12年前
回复

使用道具 举报

简单~各种实现
12年前
回复

使用道具 举报

铁豌豆 发表于 2012-9-9 23:56
从来没写过unity的脚本。看看倒也看得懂,但不明白第三个函数中的if语句没有else呢。或者为什么不用case语句 ...

Case也是行的哦,但是 这个例子用case结构就复杂了,效率反而不高。


不用else 是因为 这个切换相机,不存在else的情况,  if  else在搭配的时候一般是在执行一种“自动的状态”  if  和 else中的执行语句,必须执行其中一个。    显然在这个例子中 不是。所有不用else ,但是 可以用else if 是可以的。。


呵呵。
12年前
回复

使用道具 举报

从来没写过unity的脚本。看看倒也看得懂,但不明白第三个函数中的if语句没有else呢。或者为什么不用case语句呢?:o
12年前
回复

使用道具 举报

您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器