public bool RemoveRoundAnimated (){ if(num_rounds == 0 || mag_load_stage != MagLoadStage.NONE){ return false; } mag_load_stage = MagLoadStage.REMOVING_ROUND; mag_load_progress = 0.0f; return true; }
public bool RemoveRoundAnimated() { if (num_rounds == 0 || mag_load_stage != MagLoadStage.NONE) { return(false); } mag_load_stage = MagLoadStage.REMOVING_ROUND; mag_load_progress = 0.0f; return(true); }
public bool AddRound (){ if(num_rounds >= max_rounds || mag_load_stage != MagLoadStage.NONE){ return false; } mag_load_stage = MagLoadStage.PUSHING_DOWN; mag_load_progress = 0.0f; PlaySoundFromGroup(sound_add_round, 0.3f); ++num_rounds; var round_obj= transform.FindChild("round_"+num_rounds); round_obj.GetComponent<Renderer>().enabled = true; return true; }
public bool AddRound() { if (num_rounds >= kMaxRounds || mag_load_stage != MagLoadStage.NONE) { return(false); } mag_load_stage = MagLoadStage.PUSHING_DOWN; mag_load_progress = 0.0f; PlaySoundFromGroup(sound_add_round, 0.3f); ++num_rounds; Transform round_obj = transform.Find("round_" + num_rounds); round_obj.GetComponent <Renderer>().enabled = true; return(true); }
public void Update() { if (mag_load_stage == MagLoadStage.NONE) { return; } Transform obj = null; mag_load_progress += Time.deltaTime / bulletReloadTime; if (mag_load_progress >= 1f) { mag_load_progress = 0f; switch (mag_load_stage) { case MagLoadStage.PUSHING_DOWN: mag_load_stage = MagLoadStage.ADDING_ROUND; break; case MagLoadStage.PUSHING_UP: RemoveRound(); goto case MagLoadStage.ADDING_ROUND; case MagLoadStage.ADDING_ROUND: mag_load_stage = MagLoadStage.NONE; for (int i = 0; i < num_rounds; ++i) { obj = transform.Find("round_" + (i + 1)); obj.localPosition = round_pos[i]; obj.localRotation = round_rot[i]; } break; case MagLoadStage.REMOVING_ROUND: mag_load_stage = MagLoadStage.PUSHING_UP; break; } } float mag_load_progress_display = mag_load_progress; if (disable_interp) { mag_load_progress_display = Mathf.Floor(mag_load_progress + 0.5f); } switch (mag_load_stage) { case MagLoadStage.PUSHING_DOWN: obj = transform.Find("round_1"); obj.localPosition = Vector3.Lerp(transform.Find("point_start_load").localPosition, transform.Find("point_load").localPosition, mag_load_progress_display); obj.localRotation = Quaternion.Slerp(transform.Find("point_start_load").localRotation, transform.Find("point_load").localRotation, mag_load_progress_display); for (int i = 1; i < num_rounds; ++i) { obj = transform.Find("round_" + (i + 1)); obj.localPosition = Vector3.Lerp(round_pos[i - 1], round_pos[i], mag_load_progress_display); obj.localRotation = Quaternion.Slerp(round_rot[i - 1], round_rot[i], mag_load_progress_display); } break; case MagLoadStage.ADDING_ROUND: obj = transform.Find("round_1"); obj.localPosition = Vector3.Lerp(transform.Find("point_load").localPosition, round_pos[0], mag_load_progress_display); obj.localRotation = Quaternion.Slerp(transform.Find("point_load").localRotation, round_rot[0], mag_load_progress_display); for (int i = 1; i < num_rounds; ++i) { obj = transform.Find("round_" + (i + 1)); obj.localPosition = round_pos[i]; } break; case MagLoadStage.PUSHING_UP: obj = transform.Find("round_1"); obj.localPosition = Vector3.Lerp(transform.Find("point_start_load").localPosition, transform.Find("point_load").localPosition, 1.0f - mag_load_progress_display); obj.localRotation = Quaternion.Slerp(transform.Find("point_start_load").localRotation, transform.Find("point_load").localRotation, 1.0f - mag_load_progress_display); for (int i = 1; i < num_rounds; ++i) { obj = transform.Find("round_" + (i + 1)); obj.localPosition = Vector3.Lerp(round_pos[i - 1], round_pos[i], mag_load_progress_display); obj.localRotation = Quaternion.Slerp(round_rot[i - 1], round_rot[i], mag_load_progress_display); } break; case MagLoadStage.REMOVING_ROUND: obj = transform.Find("round_1"); obj.localPosition = Vector3.Lerp(transform.Find("point_load").localPosition, round_pos[0], 1.0f - mag_load_progress_display); obj.localRotation = Quaternion.Slerp(transform.Find("point_load").localRotation, round_rot[0], 1.0f - mag_load_progress_display); for (int i = 1; i < num_rounds; ++i) { obj = transform.Find("round_" + (i + 1)); obj.localPosition = round_pos[i]; obj.localRotation = round_rot[i]; } break; } }
void Update (){ switch(mag_load_stage){ case MagLoadStage.PUSHING_DOWN: mag_load_progress += Time.deltaTime * 20.0f; if(mag_load_progress >= 1.0f){ mag_load_stage = MagLoadStage.ADDING_ROUND; mag_load_progress = 0.0f; } break; case MagLoadStage.ADDING_ROUND: mag_load_progress += Time.deltaTime * 20.0f; if(mag_load_progress >= 1.0f){ mag_load_stage = MagLoadStage.NONE; mag_load_progress = 0.0f; for(var i=0; i<num_rounds; ++i){ var obj= transform.FindChild("round_"+(i+1)); obj.localPosition = round_pos[i]; obj.localRotation = round_rot[i]; } } break; case MagLoadStage.PUSHING_UP: mag_load_progress += Time.deltaTime * 20.0f; if(mag_load_progress >= 1.0f){ mag_load_stage = MagLoadStage.NONE; mag_load_progress = 0.0f; RemoveRound(); for(var i=0; i<num_rounds; ++i){ var obj = transform.FindChild("round_"+(i+1)); obj.localPosition = round_pos[i]; obj.localRotation = round_rot[i]; } } break; case MagLoadStage.REMOVING_ROUND: mag_load_progress += Time.deltaTime * 20.0f; if(mag_load_progress >= 1.0f){ mag_load_stage = MagLoadStage.PUSHING_UP; mag_load_progress = 0.0f; } break; } var mag_load_progress_display= mag_load_progress; if(disable_interp){ mag_load_progress_display = Mathf.Floor(mag_load_progress + 0.5f); } switch(mag_load_stage){ case MagLoadStage.PUSHING_DOWN: var obj = transform.FindChild("round_1"); obj.localPosition = Vector3.Lerp(transform.FindChild("point_start_load").localPosition, transform.FindChild("point_load").localPosition, mag_load_progress_display); obj.localRotation = Quaternion.Slerp(transform.FindChild("point_start_load").localRotation, transform.FindChild("point_load").localRotation, mag_load_progress_display); for(var i=1; i<num_rounds; ++i){ obj = transform.FindChild("round_"+(i+1)); obj.localPosition = Vector3.Lerp(round_pos[i-1], round_pos[i], mag_load_progress_display); obj.localRotation = Quaternion.Slerp(round_rot[i-1], round_rot[i], mag_load_progress_display); } break; case MagLoadStage.ADDING_ROUND: obj = transform.FindChild("round_1"); obj.localPosition = Vector3.Lerp(transform.FindChild("point_load").localPosition, round_pos[0], mag_load_progress_display); obj.localRotation = Quaternion.Slerp(transform.FindChild("point_load").localRotation, round_rot[0], mag_load_progress_display); for(var i=1; i<num_rounds; ++i){ obj = transform.FindChild("round_"+(i+1)); obj.localPosition = round_pos[i]; } break; case MagLoadStage.PUSHING_UP: obj = transform.FindChild("round_1"); obj.localPosition = Vector3.Lerp(transform.FindChild("point_start_load").localPosition, transform.FindChild("point_load").localPosition, 1.0f-mag_load_progress_display); obj.localRotation = Quaternion.Slerp(transform.FindChild("point_start_load").localRotation, transform.FindChild("point_load").localRotation, 1.0f-mag_load_progress_display); for(var i=1; i<num_rounds; ++i){ obj = transform.FindChild("round_"+(i+1)); obj.localPosition = Vector3.Lerp(round_pos[i-1], round_pos[i], mag_load_progress_display); obj.localRotation = Quaternion.Slerp(round_rot[i-1], round_rot[i], mag_load_progress_display); } break; case MagLoadStage.REMOVING_ROUND: obj = transform.FindChild("round_1"); obj.localPosition = Vector3.Lerp(transform.FindChild("point_load").localPosition, round_pos[0], 1.0f-mag_load_progress_display); obj.localRotation = Quaternion.Slerp(transform.FindChild("point_load").localRotation, round_rot[0], 1.0f-mag_load_progress_display); for(var i=1; i<num_rounds; ++i){ obj = transform.FindChild("round_"+(i+1)); obj.localPosition = round_pos[i]; obj.localRotation = round_rot[i]; } break; } }