UnityLearning—Day04
今天笔者将要继续昨天未完成的项目,实现一个魔法阵开门的操作。基操勿6.
回顾昨天的内容:
昨天笔者做到了这里,将场景的基本模型搭建好了,如果没有看上一期的小伙伴可以点击这个链接进入学习~https://blog.csdn.net/ml82019666/article/details/104390608
那么今天笔者将从此处继续接下来的路程。
制作魔法阵
- 新建一个Quad将魔法阵贴图给它。
- 为它加一个Boxcollider组件。
- 为其添加MagicCircle脚本。(我们暂且不要修改Magic脚本)
为IronBars添加控制
1.为IronBars添加一个名为IronBars的脚本文件。
删除文件的Start和Update方法。
写入如下代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IronBars : MonoBehaviour
{
public float MaxY = 6.0f;
private float StartY;
// Use this for initialization
void Start()
{
//Debug.Log("Hello world");
//print(x);
StartY = transform.position.y;
}
// Update is called once per frame
void Update()
{
if (this.transform.position.y <= (StartY + 4.0f))
{
if (Input.GetKey(KeyCode.J))
{
this.transform.position = new Vector3(transform.position.x, transform.position.y + 0.1f, transform.position.z);
}
}
}
private void Echo()
{
if (this.transform.position.y <= (StartY + 4.0f))
{
this.transform.position = new Vector3(transform.position.x, transform.position.y + 0.1f, transform.position.z);
}
}
}
其中Update内部的代码为测试用,可以不用写。
写入MagicCircle代码
此处的代码很简单,只需要发给IronBars一个信号就可以
大妈如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MagicCircle : MonoBehaviour {
public IronBars IronBars;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
private void OnTriggerStay(Collider other)
{
IronBars.SendMessage("Echo");
}
}
运行效果非常的Nice。当然,你还可以自己加一些特效,丰富场景的视觉表达效果。
笔者解决了摄像机穿模的问题:
1.用collider组件(效果不是很好);
2.用Unity自带的一个插件但是这个在2017版的Unity中没有,后续介绍。