避免摄像机穿透地形模型
生活随笔
收集整理的這篇文章主要介紹了
避免摄像机穿透地形模型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
問題:在旋轉拖拽過程中,碰到山脈會穿模
解決辦法:
原理:從攝像機看向的中心位置發射一條朝向攝像機的射線,若中間碰到了地形碰撞器,則代表穿模,需要修改normaldistance。
為保證從中心位置發射的射線始終朝向攝像機,需要給中心位置放置物體,且添加始終面向攝像機的腳本
為了保證效果,應該在山脈外加一層新的碰撞器,如果要求不高,直接用原本的山脈就可以啦
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);}} } }總結
以上是生活随笔為你收集整理的避免摄像机穿透地形模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab最小二乘法拟合参数,matl
- 下一篇: 自定义异常类NegativeExcept