예제 #1
0
 public CameraShakeEffect(CameraShakeEffect _other)
 {
     m_shakeDuration  = _other.m_shakeDuration;
     m_shakeAmount    = _other.m_shakeAmount;
     m_decreaseFactor = _other.m_decreaseFactor;
     m_sphereShake    = _other.m_sphereShake;
 }
예제 #2
0
    public CameraShakeEffect ShakeEffect(string prefabName, Vector3 pos, float strength = 1, float max_strength = 20, float delayTime = 0, float lifeTime = 5)
    {
        CameraShakeEffect se = m_Controller.AddEffect(prefabName) as CameraShakeEffect;

        se.m_Multiplier = Mathf.Clamp(strength * 150 / (pos - camPosition).sqrMagnitude, 0, max_strength);
        se.Invoke("Shake", delayTime);

        DestroyTimer dt = se.GetComponent <DestroyTimer>();

        dt.m_LifeTime = lifeTime;

        return(se);
    }
예제 #3
0
    void Awake()
    {
        if (camse == null)
        {
            camse = this;
            DontDestroyOnLoad(camse);
        }
        else
        {
            Destroy(gameObject);
        }

        if (mainCamera == null)
        {
            mainCamera = Camera.main;
        }
    }
예제 #4
0
        private void Awake()
        {
            canvasGroup = GetComponent <CanvasGroup>();
            shakeEffect = GetComponent <CameraShakeEffect>();
            startEffect = Find <Image>("startEffect");
            startButton = Find <Button>("Info/startButton");
            startButton.onClick.AddListener(StartClick);

            //dailyTaskButton = Find<Button>("LeftButtons/dailyTaskButton");
            //dailyTaskButton.onClick.AddListener(DailyTaskClick);
            trophiesButton = Find <Button>("LeftButtons/trophiesButton");
            trophiesButton.onClick.AddListener(TrophiesClick);
            //equipItemButton = Find<Button>("LeftButtons/equipItemButton");
            //equipItemButton.onClick.AddListener(EquipItemClick);

            canvasGroup.alpha = 0f;
            this.gameObject.SetActive(false);
            this.startEffect.gameObject.SetActive(false);
        }
예제 #5
0
    void Update()
    {
        if (m_currentShake != null && m_currentShake.m_shakeDuration > 0.0f)
        {
            if (m_currentShake.m_sphereShake)
            {
                camTransform.position += Random.insideUnitSphere * m_currentShake.m_shakeAmount;
            }
            else
            {
                camTransform.position += Vector3.up * Random.Range(-1.0f, 1.0f) * m_currentShake.m_shakeAmount;
            }

            m_currentShake.m_shakeDuration -= Time.deltaTime * m_currentShake.m_decreaseFactor;
        }
        else
        {
            m_currentShake = null;
        }
    }
		override public void ShowGUI (List<ActionParameter> parameters)
		{
			shakeIntensityParameterID = Action.ChooseParameterGUI ("Intensity:", parameters, shakeIntensityParameterID, ParameterType.Integer);
			if (shakeIntensityParameterID < 0)
			{
				shakeIntensity = EditorGUILayout.IntField ("Intensity:", shakeIntensity);
			}

			durationParameterID = Action.ChooseParameterGUI ("Duration (s):", parameters, durationParameterID, ParameterType.Float);
			if (durationParameterID < 0)
			{
				duration = EditorGUILayout.FloatField ("Duration (s):", duration);
			}

			cameraShakeEffect = (CameraShakeEffect) EditorGUILayout.EnumPopup ("Shake effect:", cameraShakeEffect);

			willWait = EditorGUILayout.Toggle ("Wait until finish?", willWait);
			
			AfterRunningOption ();
		}
예제 #7
0
파일: Boom.cs 프로젝트: Fuinaru/Game
    // Update is called once per frame
    void Update()
    {
        if (GameManager.IsTimePause())
        {
            m_rigidbody.velocity = Vector3.zero; return;
        }
        //explosionPos = transform.position;
        //colliders = Physics.OverlapSphere(explosionPos, radius);
        if (!isStart)
        {
            return;
        }
        aliveTime -= Time.deltaTime;
        if (aliveTime <= 0)
        {
            if (!gameObject.GetComponent <Collider>().isTrigger)
            {
                Tools.PlayFollowingParticletByName("BoomEffect", transform);
                Tools.PlaySoundByName("boom", transform);
                gameObject.GetComponent <Collider>().isTrigger      = true;
                gameObject.GetComponent <Renderer>().material.color = Color.yellow;
            }



            d = transform.localScale;
            transform.localScale = new Vector3(d.x * boomSpeed, d.y * boomSpeed, d.z * boomSpeed);

            CameraShakeEffect.shakeScreen(0.5f, 0.5f);
            if (d.x >= radius)
            {
                Destroy(gameObject);
            }
        }
        else if (aliveTime < 1.5f)
        {
            d = Random.Range(0.8f, 1.2f) * originScale;
            transform.localScale = new Vector3(d.x, d.y, d.z);
            changeColor.ColorA2BCir(gameObject.GetComponent <Renderer>().material, new Color(0.8f, 0, 0, 0.7f), Color.black, 10);
        }
    }
예제 #8
0
 public void StartShake(CameraShakeEffect _effect)
 {
     m_currentShake = new CameraShakeEffect(_effect);
 }
예제 #9
0
    public static void ShakeTime(CameraShakeEffect cse, float time, MonoBehaviour mb)
    {
        var ncse = new CameraShakeEffect(cse);

        ncse.Register(mb, time);
    }
예제 #10
0
 public CameraShakeEffect(CameraShakeEffect cse) : base(cse)
 {
     shakePower = cse.shakePower;
     shakeSpeed = cse.shakeSpeed;
 }
 void Start()
 {
     _instance = this;
 }
예제 #12
0
 public override ExecState Evaluate()
 {
     CameraShakeEffect.ShakeTime(controller.shake, 0.5f, controller);
     return(ExecState.Success);
 }