using System.Collections; using System.Collections.Generic; using UnityEngine; public class player : MonoBehaviour { private int i = 0; private GameObject candle; private float x = 0; private float z = 0; private void Awake() { //Debug.Log("被唤醒的时候执行"); } void Start() //只会执行一次 { //先拿到蜡烛 先用标签拿到蜡烛 candle = GameObject.FindWithTag("candle"); Debug.Log(candle.name); //当物品放在场景里有两个坐标,世界坐标 局部坐标 Debug.Log(candle.transform.position);//世界坐标 Debug.Log(candle.transform.localPosition);//局部坐标 Debug.Log(candle.transform.localPosition.x); }
private float speed;
void Update() //Time.deltaTime 获取上一帧到当前这一帧所经过的时间
{
i++;
//Debug.Log($"这是第{i}帧,上一帧到现在的时间为{Time.deltaTime}");
//if(i>2)transform.Translate(1,0,0);//每一次x轴上会偏移一个单位 从第三帧开始执行 每帧移动一 每秒移动 1/Time.deltaTime 算出一秒有多少帧
//每秒移动两个单位 怎么办 计算出每帧移动的步数 2/(1/Time.deltaTime) 总的步长除以总帧数
//if (i > 2) transform.Translate(2*Time.deltaTime, 0, 0);
//我现在想表示一个坐标 Vector3
//if (i > 2) transform.Translate(Vector3.forward*Time.deltaTime*2);//往z轴正方向每秒移动两格
//按键判断 提供了一个虚拟轴 从-1到1进行变化 当你没有按的时候对应的方向就是0
//Input类 可以使用偏移量 每个轴对应偏移移动的值
x = Input.GetAxis("Horizontal");
z = Input.GetAxis("Vertical");
Vector3 dir = new Vector3(x,0,z);
if(dir != Vector3.zero)
{
//Debug.Log($"{x},{z}");
//改变物体的方向 朝向dir
transform.rotation = Quaternion.LookRotation(dir);//欧拉角
//怎么往前走
//transform.Translate(dir*Time.deltaTime);
transform.Translate(Vector3.forward* Time.deltaTime);
//什么时候动 应该是改变x,z的值的时候就移动物体
//可不可以给物体一个加速度 拿到x^2+z^2开根号 -
speed = Mathf.Sqrt(x * x + z * z) * 10;
transform.Translate(Vector3.forward * Time.deltaTime * speed);
}
}
}
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class camera : MonoBehaviour { private Vector3 dir; private GameObject player; void Start() { player = GameObject.FindWithTag("candle"); dir = player.transform.position - transform.position; }
// Update is called once per frame
void Update()
{
transform.position = player.transform.position-dir;
}
}