Unity 移动视角,回原点

本文探讨了在Unity引擎中如何实现移动视角并让视角回到初始位置的方法,适合初级到中级的游戏开发者学习,掌握核心的相机控制技巧。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveCamera : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        if(myCube!= null)
            homeVec  = myCube.transfrom.localPosition;
    }

    public GameObject myCube;
    public int transSpeed = 100;
    public float rotateSpeed = 10.5f;
    public float scale = 3;
    private Vector3 homeVec =new Vector3();//私有的

    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            myCube.transform.Translate(Vector3.up * transSpeed * Time.deltaTime, Space.World);
        }
        if (Input.GetKeyDown(KeyCode.DownArrow))
        {
            myCube.transform.Translate(Vector3.down * transSpeed * Time.deltaTime, Space.World);
        }
        if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            myCube.transform.Translate(Vector3.left * transSpeed * Time.deltaTime, Space.World);
        }
        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            myCube.transform.Translate(Vector3.right * transSpeed * Time.deltaTime, Space.World);
        }
        if (Input.GetKeyDown(KeyCode.A))
        {
            myCube.transform.Translate(Vector3.forward * transSpeed * Time.deltaTime, Space.World);
        }
        if (Input.GetKeyDown(KeyCode.D))
        {
            myCube.transform.Translate(Vector3.back * transSpeed * Time.deltaTime, Space.World);
        }


        if (Input.GetKeyDown(KeyCode.Home))
        {
            //区别tranform.position 和transform.localPosition,这里使用localPosition
            var newp = myCube.transform.localPosition;
            var diff = homeVec - newp;
            myCube.transform.Translate(diff, Space.World);
        }
    }

 
}

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值