// Agent 클래스가 처음 실행될 때 실행 //생명주기 Awake() -> OnEnabled() -> Initialize() -> start() -> OnEpisodeBegin() public override void Initialize() { _droneController = GetComponent <DroneMovement>(); _sensor = GetComponent <DroneSensors>(); _initPosition = transform.position; _rigidbody = GetComponent <Rigidbody>(); }
public SDrone(DroneData data, Drone drone) { count = DroneData.Count; uid = data.UID; totalDeliveryCount = data.DeliveryCount; totalBatterySwaps = data.batterySwaps; totalHubHandovers = data.hubsAssigned; collisionOn = data.collisionOn; isWaiting = data.isWaiting; inHub = data.inHub; movement = data.movement; status = data.state; totalDelay = data.totalDelay; totalAudibleDuration = data.audibleDuration; totalPackageWeight = data.packageWeight; totalDistanceTravelled = data.distanceTravelled; totalEnergy = data.totalEnergy; targetAltitude = data.targetAltitude; waypointsQueue = new List <SVector3>(); completedJobs = new List <uint>(data.completedJobs.Keys); maxSpeed = data.MaxSpeed; position = drone.transform.position; previousWaypoint = data.previousWaypoint; waypoint = data.currentWaypoint; job = data.job; hub = data.hub; battery = data.battery; charge = drone.GetBattery().Charge; foreach (var point in data.waypoints) { waypointsQueue.Add(point); } }
void Start() { rb = GetComponent <Rigidbody>(); dm = GetComponent <DroneMovement>(); animator = GetComponent <Animator>(); meshCollider = GetComponent <MeshCollider>(); //laserGroup = transform.GetChild(3).GetChild(0).gameObject; }
// Start is called before the first frame update void Start() { // This returns the GameObject rotors = GameObject.FindGameObjectsWithTag("Rotor"); drone = GameObject.FindWithTag("Player"); droneMovement = drone.GetComponent <DroneMovement>(); }
private void Awake() { monitor_game = GameObject.FindWithTag("MonitorGame").GetComponent <MonitorGame>(); droneMovement = GetComponent <DroneMovement>(); currentHealth = startingHealth; GameObject gameovercontroller = GameObject.FindWithTag("GameOverController"); createMenu = gameovercontroller.GetComponent <CreateMenu>(); }
// Use this for initialization void Start() { rotor = transform.Find("rotor"); if (rotor != null) { cam = rotor.Find("cam"); } drone = GetComponent <DroneMovement>(); camera = cam.GetComponentInChildren <Camera>(); camera.enabled = false; }
public void createDrone(GameObject d) { Drone = d; Drone.transform.parent = gameObject.transform; Drone.transform.position = Miner.transform.position; droneMovement = Drone.GetComponent <DroneMovement>(); droneMovement.setColor(Miner.GetComponent <Renderer>().material.color); Drone.GetComponent <DroneHealth>().playerInstance = gameObject; if (!photonView.IsMine) { droneMovement.DroneCamera.SetActive(false); } }
/// <summary> /// Will traverse through the parents of this collider and try to find the drone script /// so we don't have to do it our selves /// </summary> void FindingMyDroneComponent() { Transform currentTransform = transform; for (int i = 0; i < 20; i++) { if (!currentTransform.parent.GetComponent <DroneMovement>()) { currentTransform = currentTransform.parent; } else { drone = currentTransform.parent.GetComponent <DroneMovement>(); FindMyProppeler(); } } }
public IEnumerator viewChangeEffCoroutine; // 시점 전환 효과 코루틴 #endregion private void Awake() { instance = this; status = PlayerStatus.Control; dm = drone.GetComponent <DroneMovement>(); rb = GetComponent <Rigidbody>(); animator = GetComponent <Animator>(); #region init Variable dm.joystick_turned_on = InputDeviceChecker.instance.GetCurDevice() == InputDeviceChecker.INPUT_DEVICE.Joystick ? true : false; curViewPoint = 1; #endregion }
public MissionExecution(CameraDefinition cameraDefinition, SurveyArea surveyArea, Georeferencing georeferencing, Mission mission, Transform droneTransform, float flightSpeed, string folderPath) { // Calculate the flight plan FlightPlan flightPlan = mission.CalculateFlightPlan(); Debug.Log(string.Format("Mission calculated. Will take {0} images.", flightPlan.waypoints.Count)); // Build helpers that will move the drone, take the images, and log everything to later geotag the images droneMovement = new DroneMovement(droneTransform, flightPlan, flightSpeed); waypointProcessor = new WaypointProcessor(cameraDefinition, surveyArea, georeferencing, flightPlan.waypoints.Count, folderPath); // Save all configuration as XML SaveXML(cameraDefinition, surveyArea, flightPlan, georeferencing, folderPath); // Add event listeners droneMovement.OnReachedWaypoint += ReachedWaypoint; waypointProcessor.OnProcessedAllWaypoints += () => OnMissionFinished?.Invoke(); }
public StrippedDrone(DroneData data, Drone drone) { uid = data.UID; isWaiting = data.isWaiting; inHub = data.inHub; movement = data.movement; status = data.state; targetAltitude = data.targetAltitude; waypointsQueue = new List <SVector3>(); maxSpeed = data.MaxSpeed; position = drone.transform.position; previousWaypoint = data.previousWaypoint; waypoint = data.currentWaypoint; job = data.job; hub = data.hub; battery = data.battery; charge = drone.GetBattery().Charge; foreach (var point in data.waypoints) { waypointsQueue.Add(point); } }
private void Start() { Cursor.lockState = CursorLockMode.Locked; droneMovement = drone.GetComponent <DroneMovement>(); }
// Use this for initialization void Start() { droneScript = drone.GetComponent <DroneMovement>(); }
// Start is called before the first frame update void Start() { drone = GetComponent <DroneMovement>(); numOfBatteries = drone.healthMax; }
public virtual void Awake() { droneMovementScript = GetComponent <DroneMovement>(); //LocateWintipParticles();//used to determine how many particles on propelers do we have?... }
public virtual void Awake() { droneMovement = GetComponent <DroneMovement>(); }
void Start() { camera = GetComponent <Transform>(); droneScript = drone.GetComponent <DroneMovement>(); }
IEnumerator RecallDrone() { // 잠시 대기하며 기울어진 드론 기체 회복 DroneMovement DM = PlayerController.instance.drone.GetComponent <DroneMovement>(); DM.DirectDroneRecoverMoment(); // 드론이 도착할 지점을 바라본다(y축 회전) Vector3 targetPos = dronePos.transform.position; lookTarget.transform.LookAt(targetPos); transform.eulerAngles = new Vector3(transform.eulerAngles.x, lookTarget.transform.eulerAngles.y, transform.eulerAngles.z); DM.SetStartingRotation(); // ??? 필요? Debug.DrawLine(transform.position, dronePos.transform.position, Color.blue); //// 상승 //DM.CallMovementUpDown(true, 0.5f); float speed = 10.0f; // 드론 -> 목표 방향으로 바닥과 수평이 되도록 ray 발사. Vector3 start = transform.position, end = dronePos.transform.position; start.y = 0; end.y = 0; while (Physics.Raycast( transform.position + new Vector3(0, -1, 0), //dronePos.transform.position - transform.position end - start , out hit, Vector3.Distance(transform.position, dronePos.transform.position)) || transform.position.y < dronePos.transform.position.y ) { if (!enabled) { StopCoroutine(coroutine); } gameObject.transform.Translate(Vector3.up * speed * Time.deltaTime); yield return(null); } lookTarget.transform.LookAt(targetPos); transform.eulerAngles = new Vector3(transform.eulerAngles.x, lookTarget.transform.eulerAngles.y, transform.eulerAngles.z); DM.SetStartingRotation(); float leftDistance = Vector3.Distance(transform.position, new Vector3(targetPos.x, transform.position.y, targetPos.z) ); // 드론이 도착 지점을 찾지 못해 지나쳐서 // 남은 거리가 다시 멀어지는 경우를 체크하기 위한 변수 float rightBeforeLeftDist = float.MaxValue; while (leftDistance > 2f && rightBeforeLeftDist >= leftDistance) { rightBeforeLeftDist = leftDistance; // 남은 거리 계산 leftDistance = Vector3.Distance(transform.position, new Vector3(targetPos.x, transform.position.y, targetPos.z) ); gameObject.transform.Translate(Vector3.forward * speed * Time.deltaTime); yield return(null); } // 정확한 타겟의 상단으로 위치 고정 //gameObject.transform.position = new Vector3(targetPos.x, transform.position.y, targetPos.z); DM.SetStartingRotation(); // // 하강 leftDistance = Vector3.Distance(transform.position, targetPos); while (transform.position.y > targetPos.y + 3) { gameObject.transform.Translate(Vector3.down * speed * Time.deltaTime); yield return(null); } DM.SetStartingRotation(); // ??? 필요? coroutineFlag = false; followFlag = true; }
// Start is called before the first frame update void Awake() { droneMovement = GetComponent <DroneMovement>(); attachObjects = GetComponentInChildren <AttachObjects>(); }
public void Stunned(float randomizer, float duration, float damage, GameObject effect) { if (!resistStun) { if (GetComponent <DroneAttack>() != null) { DroneMovement move = GetComponent <DroneMovement>(); move.hoverForce += Random.Range(-randomizer, randomizer); move.hoverHeight += Random.Range(-randomizer, randomizer); move.speed += Random.Range(-randomizer, randomizer); move.speed += Random.Range(-randomizer, randomizer); move.acceleration += Random.Range(-randomizer, randomizer); move.retreat_acceleration += Random.Range(-randomizer, randomizer); move.hover = false; GetComponent <DroneAttack>().enabled = false; GetComponent <DroneAttack>().aimSpeed += Random.Range(-randomizer, randomizer); } if (GetComponent <Drone2Attack>() != null) { DroneMovement move = GetComponent <DroneMovement>(); move.hoverForce += Random.Range(-randomizer, randomizer); move.hoverHeight += Random.Range(-randomizer, randomizer); move.speed += Random.Range(-randomizer, randomizer); move.speed += Random.Range(-randomizer, randomizer); move.acceleration += Random.Range(-randomizer, randomizer); move.retreat_acceleration += Random.Range(-randomizer, randomizer); move.hover = false; GetComponent <Drone2Attack>().enabled = false; } if (GetComponent <EnemyMovement>() != null) { EnemyMovement move = GetComponent <EnemyMovement>(); //Debug.Log("ZAAAP"); move.active = false; move.move = false; rb = GetComponent <Rigidbody2D>(); rb.velocity = new Vector2(0, rb.velocity.y); GetComponent <Enemy1_Attack>().enabled = false; GetComponent <Enemy1_Animation>().Move(false); } if (type == "LandMine") { GetComponent <LandMine>().explode = true; } if (type == "Turret") { GetComponent <Turret1>().enabled = false; } if (stunDuration <= 0) { stun_effect = Instantiate(effect, transform); stun_effect.transform.parent = transform; stun_effect.transform.localPosition = new Vector2(0, 0); } if (duration > stunDuration) { stunDuration = duration; } if (damage > stunDamage) { stunDamage = damage; } } }
// Update is called once per frame void Update() { if (health <= 0 && alive) { alive = false; Die(); health = 0; } //Burn effect if (burnDuration > 0) { TakeDamage(burnDamage * Time.deltaTime * (1 - burnResistance), true); burnDuration -= Time.deltaTime; } else { if (burn_effect != null) { Destroy(burn_effect); } burnDuration = 0; burnDamage = 0; } //Stun effect if (stunDuration > 0) { TakeDamage(stunDamage * Time.deltaTime * (1 - stunResistance), true); stunDuration -= Time.deltaTime; } else { if (GetComponent <DroneAttack>() != null) { DroneMovement move = GetComponent <DroneMovement>(); move.hover = true; GetComponent <DroneAttack>().enabled = true; } if (GetComponent <Drone2Attack>() != null) { DroneMovement move = GetComponent <DroneMovement>(); move.hover = true; GetComponent <Drone2Attack>().enabled = true; } if (GetComponent <EnemyMovement>() != null) { EnemyMovement move = GetComponent <EnemyMovement>(); move.active = true; move.move = true; GetComponent <Enemy1_Attack>().enabled = true; } if (type == "Turret") { GetComponent <Turret1>().enabled = true; } if (stun_effect != null) { Destroy(stun_effect); } stunDamage = 0; stunDuration = 0; } }
// Update is called once per frame void Update() { if (!photonView.IsMine) { return; } if (Input.GetKeyDown("q")) { pressed = true; } if (pressed && Input.GetKey("q")) { float castTime = 0f; if (firstDroneActivate) { //spawning drone castTime = 0.75f; } else if (PlayerCamera.activeInHierarchy) { //returning to spawned drone castTime = 0.5f; } else { //returning to player castTime = 0.25f; } droneCastTime += Time.deltaTime; if (droneCastTime > castTime) { pressed = false; droneCastTime = 0f; activateScripts = !activateScripts; if (firstDroneActivate) { firstDroneActivate = false; if (photonView.IsMine) { object[] data = new object[1]; data[0] = photonView.ViewID; Drone = PhotonNetwork.Instantiate("DroneCamera", gameObject.transform.position, gameObject.transform.rotation, 0, data); droneMovement = Drone.GetComponent <DroneMovement>(); droneMovement.setColor(Miner.GetComponent <Renderer>().material.color); } //photonView.RPC("createDrone", RpcTarget.All); //Drone.transform.position = new Vector3(Miner.transform.position.x, Miner.transform.position.y + 0.5f, Miner.transform.position.z); activateScripts = false; } checkScripts = true; } } else if (droneCastTime > 0) { droneCastTime = 0f; } if (checkScripts) { checkScripts = false; if (activateScripts) { PlayerCamera.SetActive(true); Miner.GetComponent <CustomMovementTest>().playerControl = true; onClickPlayer.enabled = true; shootReflector.enabled = true; droneMovement.drone_deactivate(); } else { PlayerCamera.SetActive(false); Miner.GetComponent <CustomMovementTest>().playerControl = false; onClickPlayer.enabled = false; shootReflector.enabled = false; droneMovement.drone_activate(); } } //bad code but it'll work if (Miner) { if (PlayerCamera.activeInHierarchy) { GameManager.instance.changeCrosshairUI(false); GameManager.instance.changePlayerHealthUI(Miner.GetComponent <PlayerHealth>()); } else { GameManager.instance.changeCrosshairUI(true); GameManager.instance.changeDroneHealthUI(Drone.GetComponent <DroneHealth>()); } } }
private void Start() { drone = GetComponent <DroneMovement>(); soundVolume = FindObjectOfType <MainMenu>().soundsValue; }