Unity3D 3D坦克大战

 视频学习来源

移动和旋转

using UnityEngine;
using System.Collections;
/*
 * Adminer:sun2955
 * http:www.yinghy.com
 * */
public class Move : MonoBehaviour {
    private float moveSpeed = 7;
    private float rotateSpeed = 150;
    
    // 使用进行初始化
    void Start () {
    
    }
    
    //每一帧都会调用该函数
    void Update () {

 
       //  float inputx = Input.GetAxis("Horizontal"); //获得水平移动
       // float inputy = Input.GetAxis("Vertical"); //获得垂直移动

       //// this.transform.Translate(new Vector3(inputx * speed, 0, inputy * speed) * Time.deltaTime);

       // if(Input.GetKey(KeyCode.A)){
       //     this.transform.Rotate(new Vector3(inputx * speed, 0, inputy * speed) * Time.deltaTime);
       // }
       // if (Input.GetKey(KeyCode.D))
       // {
       //     this.transform.Rotate(new Vector3(inputx * speed, 0, inputy * speed) * Time.deltaTime);
       // }
    if(Input.GetKey(KeyCode.W)){
        this.transform.Translate(new Vector3(1, 0, 0)* moveSpeed * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.S))
    {
        this.transform.Translate(new Vector3(1, 0, 0) * -moveSpeed * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.A))
    {
        this.transform.Rotate(new Vector3(0, 1, 0) * -rotateSpeed * Time.deltaTime);
    }
    if (Input.GetKey(KeyCode.D))
    {
        this.transform.Rotate(new Vector3(0, 1, 0) *  rotateSpeed * Time.deltaTime);
    }
   
    }
    //物理运动
    void FixedUpdate() 
    {

    }
}

 相机的跟随移动

基本思路:主相机设定为一个比较好的视角,然后让相机以该视角的相对距离一直跟谁着移动。

实现思路:设定好相机的左边后,建立一个空物体,将相机挂在空物体的下面,空物体的左边是跟谁主角色进行变化,这样就能实现主角动,相机动,并且相机以一定的相对距离拍摄主角

using UnityEngine;
using System.Collections;

public class CameraMove : MonoBehaviour {
    private Transform tanktransform;
    // Use this for initialization
    void Start () {
        tanktransform = GameObject.FindGameObjectWithTag("Player").transform;
    }
    
    // Update is called once per frame
    void LateUpdate () {
        this.transform.position = tanktransform.position;
    }
}
原文地址:https://www.cnblogs.com/sunxun/p/5463454.html