1,关于铰链门简单介绍
1)首先利用Cube建立一个门框结构,创建一个空物体作为父物体,将门框拖入下面成为它的子物体,然后门框结构就做成了!
需要添加刚体RigidBody将门框固定并增加重力 (不然会出现门框动的现象)
2)创建门,门需要添加刚体Rigidboady(选择重力)和铰链Hinge joint !
再然后将铰链与一侧门进行连接,添加铰链后,选中门会出现一个小箭头,箭头指向应该与门框垂直并放入门框(所以需要进行调节如下)
然后铰链门就完成了!
2、第三人称小球!(相机固定法)
目前我觉得最好的解决方法是固定相机:原因是因为小球的移动是滚动,而且我是设置WSAD控制上下左右(而不是前后左右),所以只能通过这样去解决了!固定相机与球之前的距离!(从而达到相对静止)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Camera_Move : MonoBehaviour
{
public Transform bolltransform;//引入球
public Vector3 offset;//相对偏移量
void Start()
{
offset = transform.position - bolltransform.position;//得到开始的相对距离
}
void Update()
{
transform.position = offset + bolltransform.position;//一直刷新保持静止
}
}
然后实现了相机跟随!
3、解决了球触发法阵门后,门的闭合问题!
因为这个游戏设置是球撞墙就会出现回到开始点(所以起初的法阵触发后会一直存在)
解决方法:判断小球是否回到起始位置,若回到,则触发的法阵门直接恢复!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DoorTrigger : MonoBehaviour
{
public GameObject door;//提供选择门
bool isActive;//判断小球是否触发法阵
public Transform player;//将小球引入
private Vector3 flag_position1;//位置媒介
public Transform Door;
private void Start()
{
flag_position1 = player.position;//接收初始位置
}
void Update()
{
if (player.position == flag_position1)//如果小球回到起始位置
{
isActive = false;//法阵触发取消
Door.position = new Vector3(-20, 0, 15);//坐标为法阵门初始位置
}
if (isActive && door.transform.position.y > -2.0f)
{
door.transform.position -= new Vector3(0, 0.5f * Time.deltaTime, 0);
//法阵触发门降低
}
}
private void OnTriggerEnter(Collider collider)
{
if (collider .tag=="Player"||collider .tag=="Ground")//这个是我给球贴的标签tag
{
isActive = true;//带标签球进入法阵触发
}
}
}
同2需要将小球和控制的门拖入栏内!
人工智能还在学习中!