
*合并SAIPOVer 场景【序章-家中】 1.解决非对应多态和门互动报错的Bug 场景【第一关】 1.放上天空素材 2.放上投掷物的美术素材 3.目前投掷物不会旋转,写了方法让投出的石块随着速度的方向而旋转 4.修改了动画文件的链接方式,优化操作手感 5.放置了电火花粒子系统,适配到6处断裂 6.修改屎山代码,能够自己找到的子物体为什么要public? 7.现在似乎太难了,我降低了导弹的生成频率 8.完善修完第一个电话线后的事件,使特殊的导弹没有阴影 9.将投掷行为绑定到新骨骼 10.修改地形使其匹配电报线的凹凸 11.修复了删不掉落地后的投掷物的碰撞体的Bug 12.修改了抛物线材质使其更加显眼 13.添加投掷系统动画 14.使得地雷爆炸的时候会产生一个爆炸动画 15.修复了投掷点不跟随玩家骨骼移动的Bug
46 lines
1.5 KiB
C#
46 lines
1.5 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
public class Missile : MonoBehaviour
|
|
{
|
|
//投掷物类,用来控制投掷物
|
|
// Start is called before the first frame update
|
|
private bool amINoisy = false;//记录自己是否落地发出声音的变量
|
|
private bool amIBeenChecked = false;//记录自己是否已经被敌人检查过
|
|
private Rigidbody2D m_rigidbody;
|
|
void Start()
|
|
{
|
|
m_rigidbody = GetComponent<Rigidbody2D>();
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update()
|
|
{
|
|
//使得自身旋转角度匹配速度,像一支箭矢
|
|
if(m_rigidbody != null)
|
|
{
|
|
float angle = Vector2.Angle(m_rigidbody.velocity,Vector2.right);
|
|
if(m_rigidbody.velocity.y > 0) m_rigidbody.SetRotation(angle);
|
|
else m_rigidbody.SetRotation(-angle);
|
|
}
|
|
}
|
|
|
|
void OnCollisionEnter2D(Collision2D other)
|
|
{
|
|
if(other.gameObject.tag == "地面")
|
|
{
|
|
//当投掷物砸到地面,发出一个响声(逻辑上),标记自身为声源
|
|
amINoisy = true;
|
|
//同时,摧毁自身的刚体组件,阻止其滚动
|
|
Destroy(GetComponent<Rigidbody2D>());
|
|
//再摧毁自身碰撞体
|
|
Destroy(GetComponent<CapsuleCollider2D>());
|
|
}
|
|
}
|
|
|
|
public bool AMINoisy(){return amINoisy;}
|
|
public bool AmIBeenChecked(){return amIBeenChecked;}
|
|
public void YouAreChecked(){amIBeenChecked = true;}
|
|
}
|