public float cd = 3f; //间隔时间public float timer = 0; //计时器// Update is called once per framevoid Update(){if (Time.time-timer>cd) { print("3秒执行一次"); timer = Time.time; }}
using System.Collections;using System.Collections.Generic;using UnityEngine;public class CameraShack : MonoBehaviour{public Vector3 originalPosition; //摄像机原始本地位置 // Start is called before the first frame update void Start() { //记录摄像机原始本地位置 originalPosition = transform.localPosition; } //参1 震动时长 //参2 震动强度 public void Shake(float duration, float intensity) { StartCoroutine(ShakeCoroutine(duration,intensity)); } private IEnumerator ShakeCoroutine(float duration, float intensity
UI坐标:指的是RectTransform组件的anchoredPosition字段UI元素则很少使用世界坐标去表示,主要用RectTransform本地坐标表示,涉及锚点、轴心点。我们在Unity中获取的鼠标的坐标,就是屏幕坐标!屏幕坐标和世界坐标不是一个东西,屏幕坐标和UI坐标不是一个东西!Unity官方提供了一个方法,让我们可以很简单的把屏幕坐标 转换成UI坐标!这个方法就是:RectTransformUtility.ScreenPointToLocalPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector2 localPoint); 参数 rect:这个参数需要你提供一个父物体的RectTransform。因为这个方法是取得UI坐标,而UI坐标都是局部坐标,所以一定需要一个父物体,才能计算出局部坐标。(有父物体才有局部坐标对吧!)最后,这个方法就会把屏幕上的点转化为这个父物体下的局部坐标。就是你想要以谁为中心参数 screenPoint:这个参数需要你提供一个屏幕空间 的坐
public Transform A; public Transform B; public Transform Target; private Vector3 startPos; private float time; private Vector3 nowPos; public Transform C; // Start is called before the first frame update void Start() { startPos = B.position; } // Update is called once per frame void Update() { //公式:resuly=start+(end-start)*t //1.先快后慢 每帧改变start位置 位置无限接近 但不会得到end位置 A.position = Vector3.Lerp(A.position, Target.position, Time.deltaTime); //2.匀速 每帧改变时间 当t>=1,得到结果 //参3是
public Transform A; public Transform B; // Start is called before the first frame update void Start() { //叉乘计算 //Vector3.Cross(A.forward, B.position-A.position); //叉乘几何意义 //假设A和B都在XZ平面上, //向量A叉乘向量B //y大于0 B在A的右侧 //y小于0 B在A的左侧 //向量叉乘的意义 //1.得到一个平面的法向量 //2.得到两个向量之间的左右位置关系 }
一棵小松林
Gamer游戏开发者