unity3d-搞个场景漫游如何实现Alpha
要处理两个问题:
- 如何设置地面人不掉下去
方法一、 游戏物体加刚体,将游戏物体和地面加collider。如果是地形,可以使用 Terrain Collider;如果是简单的平面,可以添加 Box Collider 或者 Mesh Collider(如果平面是复杂的网格形状)。
方法二、在游戏物体上增加刚体,在刚体组件的 Constraints 选项中,可以限制物体在某些轴向上的运动。例如,如果不想让物体在 Y 轴(垂直方向)下落,可以勾选 “Freeze Position” 中的 Y 选项。这样,刚体在物理模拟过程中,其 Y 轴位置就不会因为重力而改变,从而不会掉下去。
缺点:当冻住y的时候, 遇到地上有坑的时候,也不会按地势走 - 鼠标控制方向,可以参考
https://blog.csdn.net/weixin_43908355/article/details/139179051
- 如何漫游,代码实现如下
方向键控制方向,挂载到游戏物体player上
public Rigidbody rd;
// Start is called before the first frame update
void Start()
{
}// Update is called once per frame
void Update()
{float f = Input.GetAxis("Horizontal");float v = Input.GetAxis("Vertical");rd.AddForce(new Vector3(f,0,v)*1);
}
镜头跟随玩家,挂载到镜头上
public class FollowTarget : MonoBehaviour {
private Transform player;
private Vector3 offset;
private float smoothing = 3;void Start (){player = GameObject.FindGameObjectWithTag("Player”).transform;offset = transform.position - player.position;}void LateUpdate (){Vector3 targetPosition = player.position + player.TransformDirection( offset)transform.position = Vector3.Lerp(transform.position, targetPosition,Time.deltaTime*smoothing);transform.LookAt(player.position);}
}
参考
https://www.jianshu.com/p/0e8d4dd55c2c