当前位置:网站首页>Unity让摄像机一直跟随在玩家后上方
Unity让摄像机一直跟随在玩家后上方
2022-07-06 23:35:00 【iiiiiiimp】
写在前面
有一个需求,让摄像机一直跟随在玩家后上方,并且随玩家的旋转而旋转。
相机跟随效果
原理讲解
1、用摄像机的坐标将去玩家的坐标就能得到摄像机相对于玩家向上和向后的距离
对应代码
camera2PlayerDir = this.transform.position-playerTransform.position;
playerUp = camera2PlayerDir.y;
playerBack= camera2PlayerDir.z;
2、用玩家移动后的位置+摄像机相对于玩家向上的距离×Vector3.up
+摄像机相对于玩家向后的距离×playerTransform.forward
(玩家当前的朝向)就能得到摄像机要移动到的位置
对应代码
targetPosition = playerTransform.position + Vector3.up * playerUp + playerTransform.forward * playerBack;
3、使用Vector3.Lerp
让摄像机移动更加平衡。摄像机旋转的度数就是玩家旋转的度数。
随机生成敌人效果
原理讲解
为了让生成的敌人不会重叠,即生成在同一个地方导致两个坦克碰撞到一起,需要用到Physics.CheckSphere
这个函数。
首先将地图边界和地面的Layer设置Plane
然后在代码中使用LayerMask layerMask = ~LayerMask.GetMask("Plane");
让射线不检测Plane这个层级的物体
LayerMask layerMask = ~LayerMask.GetMask("Plane");//等价于~(1<<6)
do {
randomX = Random.Range(-createX, createX);
randomY = Random.Range(-createY, createY);
} while (Physics.CheckSphere(new Vector3(randomX,0,randomY),createRadius,layerMask));
写在后面
学Unity数学真的很重要!!!!
边栏推荐
- Linkedblockingqueue source code analysis - initialization
- PMP证书有没有必要续期?
- qt 简单布局 盒子模型 加弹簧
- Pytest testing framework -- data driven
- Use, configuration and points for attention of network layer protocol (taking QoS as an example) when using OPNET for network simulation
- 【js组件】自定义select
- pytest测试框架——数据驱动
- 局部变量的数组初始化问题
- 张平安:加快云上数字创新,共建产业智慧生态
- [opencv] image morphological operation opencv marks the positions of different connected domains
猜你喜欢
10 distributed databases that take you to the galaxy
带你遨游银河系的 10 种分布式数据库
漏电继电器JOLX-GS62零序孔径Φ100
What changes will PMP certification bring?
Mysql database learning (8) -- MySQL content supplement
Under the trend of Micah, orebo and apple homekit, how does zhiting stand out?
SQL injection HTTP header injection
照片选择器CollectionView
Autowired注解用于List时的现象解析
Zhang Ping'an: accelerate cloud digital innovation and jointly build an industrial smart ecosystem
随机推荐
Is PMP really useful?
Disk monitoring related commands
The founder has a debt of 1billion. Let's start the class. Is it about to "end the class"?
CentOS 7.9 installing Oracle 21C Adventures
Two methods of thread synchronization
TabLayout修改自定义的Tab标题不生效问题
Pytest testing framework -- data driven
How can project managers counter attack with NPDP certificates? Look here
Autowired注解用于List时的现象解析
数字化如何影响工作流程自动化
Use Zhiyun reader to translate statistical genetics books
U++ metadata specifier learning notes
Knapsack problem unrelated to profit (depth first search)
JVM(二十) -- 性能监控与调优(一) -- 概述
照片选择器CollectionView
JVM (XX) -- performance monitoring and tuning (I) -- Overview
App clear data source code tracking
Scheduledexecutorservice timer
Longest palindrome substring (dynamic programming)
QT控件样式系列(一)之QSlider