避免摄像机穿透地形模型
生活随笔
收集整理的這篇文章主要介紹了
避免摄像机穿透地形模型
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
問(wèn)題:在旋轉(zhuǎn)拖拽過(guò)程中,碰到山脈會(huì)穿模
解決辦法:
原理:從攝像機(jī)看向的中心位置發(fā)射一條朝向攝像機(jī)的射線,若中間碰到了地形碰撞器,則代表穿模,需要修改normaldistance。
為保證從中心位置發(fā)射的射線始終朝向攝像機(jī),需要給中心位置放置物體,且添加始終面向攝像機(jī)的腳本
為了保證效果,應(yīng)該在山脈外加一層新的碰撞器,如果要求不高,直接用原本的山脈就可以啦
using System.Collections; using System.Collections.Generic; using UnityEngine;public class ColliderTest : MonoBehaviour { public GameObject center; // Start is called before the first frame update void Start() {}// Update is called once per frame void Update() {Vector3 dir = center.transform.forward;RaycastHit hit;if (Physics.Raycast(center.transform.position,dir,out hit)){//Cube (2)改成自己不想穿透的模型if (hit.collider.name == "Cube (2)"&& Vector3.Distance(center.transform.position, hit.point)<=CameraMove.normalDistance) {Debug.Log(hit.point+","+CameraMove.normalDistance);//Vector3 angle = Camera.main.transform.eulerAngles;//Camera.main.transform.position = hit.point; CameraMove.normalDistance = Vector3.Distance(center.transform.position, hit.point);//Debug.DrawLine(Camera.main.transform.position, hit.point, Color.red);}} } }總結(jié)
以上是生活随笔為你收集整理的避免摄像机穿透地形模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: matlab最小二乘法拟合参数,matl
- 下一篇: 自定义异常类NegativeExcept