using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.XR;
public class lession1 : MonoBehaviour
{
private GameObject obj;
public GameObject target;
private void Start()
{
//游戏对象(GameObject)位移,旋转,缩放,父子关系,坐标转换等相关操作都由它来处理
//它是unity提供的极其重要的类
//Vector3 主要用来表示三维坐标系中的一个点 或者是一个向量
//Vector3 v = new Vector3 ();
//v.x = 10;
//v.y = 10;
//v.z = 10;
//只传xy,z默认值为0
//Vector3 v2 = new Vector3(10,10);
//一步到位 最常用的声明
//Vector3 v3 = new Vector3(10,10,10);
//随意赋值
//Vector3 v4;
//v4.x = 10;
//v4.y = 10;
//v4.z = 10;
//Vector3基本运算
//+ - * /
// Vector3 v1 = new Vector3(1,1,1);
//Vector3 v2 = new Vector3(2,2,2);
//print(v1 + v2);
//print(v1 * 10);
//print(v1 / 10);
//print(Vector3.zero);//000
//print(Vector3.right);//100
//print(Vector3.left);//-100
//print(Vector3.forward);//把z轴作为物体的面朝向001
//print(Vector3.back);//背朝向00-1
//print(Vector3.up);//上朝向010
//print(Vector3.down);//下朝向0-10
//计算两个点之间的距离
// print(Vector3.Distance(v1, v2));
//得到物体位置的信息
// print(this.transform.position);
//通过position得到位置是相对世界坐标
//相对父对象
// print("父对象"+this.transform.localPosition);
//如果你想以面板坐标为准来进行设置
//那一定是通过localPosition来进行设置的
//他们两个 可能出现是一样的情况
//1.这个物体的父对象坐标 就是世界坐标系原点000
//2.这个物体没有父对象
//
// this.transform.position = new Vector3(10,10,10);
// this.transform.localPosition = Vector3.up * 10;
//如果只想改变一个值
//1.直接赋值
//this.transform.position = new Vector3 (10,this.transform.position.y,this.transform.position.z);
//2.先取出来 再赋值
// Vector3 vppos = this.transform.localPosition;
//vppos.x = 10;
//this.transform.localPosition = vppos;
//对象当前的各朝向
//对象当前的面朝向
//print(this.transform.forward);
//对象当前的头顶朝向
//print(this.transform.up);
//对象当前的右手边
//print(this.transform.right);
//相对世界坐标系
print(this.transform.lossyScale);//相对本地坐标系(父对象)
print(this.transform.localScale);
this.transform.localScale = new Vector3(3, 3, 3);
this.transform.localScale += Vector3.one * Time.deltaTime;// (one 代表 111)
}
private void Awake()
{
GameObject obj = this.GameObject();
//obj.SetActive(false);
print("欧拉角"+transform.eulerAngles);//对应面板上的值
//相对于父对象坐标角度
print(transform.localEulerAngles);
}
private void Update()
{ //时间停止
//Time.timeScale = 0;
//恢复正常
//Time.timeScale = 1;
//2倍速
//Time.timeScale = 2;
//受scale影响
//print("间隔时间"+Time.deltaTime);
//print("不受scale影响的"+Time.unscaledDeltaTime);
//从开始到现在一共跑了多少帧(多少次循环)
//print(Time.frameCount);
//方式一 自己计算
//路程 = 方向 * 速度 * 时间
//this.transform.position = this.transform.position + this.transform. forward * 1 * Time.deltaTime;
//this.transform.position += this.transform.forward * 1 * Time.deltaTime;
//用当前的位置 + 我要动多长距离 得出最终所在得位置
//方式二 API
//参数一:表示位移多少 路程 = 方向 * 速度 * 时间
//参数二:表示 相对标系 默认 该参数 是相对于自己坐标系得
//1.相对于世界坐标系 得Z轴 动 始终是 相对于世界坐标系得z轴正方向移动
//this.transform.Translate(Vector3.down * 1 * Time.deltaTime, Space.Self);
//API计算
//自转得
//第一个参数 相当于 是旋转的角度 每一帧
//第二个参数 默认不填 就是相对于自己坐标系 进行得旋转
//this.transform.Rotate(new Vector3(0, 10, 0) * Time.deltaTime);
//相对于世界坐标系
//this.transform.Rotate(new Vector3(0, 10, 0) * Time.deltaTime, Space.World);
//相对于某个轴 转多少度//参数一: 相对于哪个轴进行移动
//参数二: 是转动得角度是多少
//this.transform.Rotate(Vector3.up, 10 * Time.deltaTime);
//相对于某一点转
//参数一: 相对于那个点
//参数二: 哪个轴
//参数三:转的度数 旋转速度 * 时间
//this.transform.RotateAround(Vector3.zero, Vector3.up, 10 * Time.deltaTime);
//找到置顶物体以这个物体为轴旋转
//GameObject target = GameObject.Find("Sphere");
//this.transform.RotateAround(target.transform.position, Vector3.up, 10 * Time.deltaTime);
}
private void FixedUpdate() {
//受Scale影响
//print(Time.fixedDeltaTime);
//不受Scale影响
//print(Time.fixedUnscaledDeltaTime);
//面板上可以改变物理帧时间//很少用到物理帧
}
}