Unity3D入门(四):摄像机控制

 

摄像机比作人的眼睛最适合不过了。比如:极品飞车里面可变换视觉角度,可以从多个角度观察汽车。

切换摄像机:一个键控制一个摄像机
这里是有多少台摄像机就要设置多少个建,有些场景可能有十多个视角,比如NBA2K游戏里面就有多达12个视角以上,下面这种方法就不适用了,
using UnityEngine;
using System.Collections;

public class ActiveCamera : MonoBehaviour {

    public GameObject camFirst;
    public GameObject camThree;
    public GameObject camSky;

    public float changeInterval = 1.0f;

    public string showStr = "";

	void Start () {
        FindCamera();
	}

    //找到摄像机对象
    void FindCamera()
    {
        camFirst = GameObject.Find("Main Camera");//第一人称视角
        camThree = GameObject.Find("CameraThree");//第三人称视角
        camSky = GameObject.Find("CameraSky");//空中俯瞰视角

        camFirst.active = true;
        camThree.active = false;
        camSky.active = false;
        
    }
	void Update () {
	
	}

    void OnGUI()
    {
        ChangeAngle1();
    }
    void ChangeAngle1()
    {
        if (Input.GetKey(KeyCode.Alpha1))
        {
            SetFalse();
            camFirst.active = true;
            showStr = "切换至第三人称视角";
        }
       else if (Input.GetKey(KeyCode.Alpha2))
        {
            SetFalse();
            camSky.active = true;
            showStr = "切换至空中视角";
        }
        else if (Input.GetKey(KeyCode.Alpha3))
        {
            SetFalse();
            camThree.active = true;
            showStr = "切换至第一人称视角";
        }
        Debug.Log(showStr);
       // GUILayout.Button(showStr);
    }
    
    void SetFalse()
    {
        camFirst.active = false;
        camThree.active = false;
        camSky.active = false;
    }


    
}


切换摄像机:一个键控制N个摄像机
下面尝试的代码不起效果,有待解决

 void ChangeAngle2()
    {

        if (Input.GetKey(KeyCode.Z))
        {


            if (camFirst.active)
            {
                camFirst.active = false;
                camThree.active = false;
                camSky.active = true;
                showStr = "切换至第三人称视角";

            }

            if (camThree.active)
            {
                camFirst.active = false;
                camThree.active = false;
                camSky.active = true;
                showStr = "切换至空中视角";

            }

            if (camSky.active)
            {
                camFirst.active = true;
                camThree.active = false;
                camSky.active = false;
                showStr = "切换至第一人称视角";

            }
        }
        Debug.Log(showStr);
        //GUILayout.Button(showStr);
    }


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值