private void Move() { _currentDirectionTimeVal += Time.fixedDeltaTime; if (_currentDirectionTimeVal >= _changeDirectionTime) { int direction = Random.Range(0, 4); if (direction == 0) { _direction = Const.Direction.TOP; transform.rotation = Quaternion.Euler(0, 0, 0); } else if (direction == 1) { _direction = Const.Direction.RIGHT; transform.rotation = Quaternion.Euler(0, 0, -90); } else if (direction == 2) { _direction = Const.Direction.DOWN; transform.rotation = Quaternion.Euler(0, 0, 180); } else if (direction == 3) { _direction = Const.Direction.LEFT; transform.rotation = Quaternion.Euler(0, 0, 90); } _currentDirectionTimeVal = 0.0f; } transform.Translate(transform.up * moveSpeed * Time.fixedDeltaTime, Space.World); }
private void Update() { foreach (KeyCode key in keyDirDictionary.Keys) { if (Input.GetKeyDown(key) && isMove) { Const.Direction direction = keyDirDictionary[key]; Position position = prevStageObjs.GetComponent <Position>(); GameObject pathObj = position.dirPathObjs[direction]; if (!pathObj) { return; } Path path = pathObj.GetComponent <Path>(); if (!path) { return; } isMove = false; transform.DOPath(path.GetPath(prevStageObjs.transform), 0.8f, PathType.CatmullRom) .SetEase(Ease.Linear).OnComplete(() => isMove = true); prevStageObjs = path.GetEndPosition(prevStageObjs.transform); } } }
public WisePin(string name, WiseBoard brd, DigitalPortType port, int bit, DigitalPortDirection dir, bool inverse = false, Const.Direction direction = Const.Direction.None, bool controlled = false) { this.WiseName = name + "@Board" + (brd.type == WiseBoard.BoardType.Hard ? brd.mccBoard.BoardNum : brd.boardNum) + port.ToString() + "[" + bit.ToString() + "]"; if ((daq = brd.daqs.Find(x => x.porttype == port)) == null) { throw new WiseException(this.WiseName + ": Invalid Daq spec, no " + port + " on this board"); } this.dir = dir; this.bit = bit; this.inverse = inverse; this._direction = direction; this._controlled = controlled; daq.setDir(dir); if (daq.owners != null && daq.owners[bit].owner == null) { daq.setOwner(name, bit); } }
public void startMoving(Const.Direction dir) { if (!Simulated) { return; } _simulatedDirection = dir; _simulationTimer.Change(10, 10); }
public void SetDirection(Const.Direction newDirection) { _direction = newDirection; if (_direction == Const.Direction.TOP) { this.spriteRender.sprite = this.bulletSprites[0]; } else if (_direction == Const.Direction.RIGHT) { this.spriteRender.sprite = this.bulletSprites[1]; } else if (_direction == Const.Direction.DOWN) { this.spriteRender.sprite = this.bulletSprites[2]; } else if (_direction == Const.Direction.LEFT) { this.spriteRender.sprite = this.bulletSprites[3]; } }
public void RotateScene(Const.Direction dir) { _resetingRotation = false; _rotationSpeed = (dir == Const.Direction.Right ? 1 : -1) * rotationSpeed; }
private void Move() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); //第一种方式 //transform.Translate(new Vector3(h * Time.deltaTime * moveSpeedX, v * Time.deltaTime * moveSpeedY, 0)); //第二种方式 //transform.Translate(h * Time.deltaTime * moveSpeedX, v * Time.deltaTime * moveSpeedY, 0); //第三种方式 //transform.Translate(h * Vector3.right * moveSpeedX * Time.deltaTime, Space.Self); //transform.Translate(v * Vector3.up * moveSpeedY * Time.deltaTime, Space.Self); //上面三种方式都是以自身为坐标系移动,当物体自身有旋转时,沿着自己局部坐标系下的xy轴运动// //第四种方式 当自己有旋转的时候,和上面三种方式就有很明显的区别. //transform.Translate(h * Vector3.right * moveSpeedX * Time.deltaTime, Space.World); //transform.Translate(v * Vector3.up * moveSpeedY * Time.deltaTime, Space.World); if (h != 0 || v != 0) { if (h >= 0.05f || v >= 0.05f) { audioSource.clip = moveAudioClip; } else { audioSource.clip = ildeAudioClip; } if (!audioSource.isPlaying) { audioSource.Play(); } } if (h != 0) { transform.Translate(h * Vector3.right * moveSpeed * Time.fixedDeltaTime, Space.World); if (h > 0) { spriteRender.sprite = this.tankSprites[1]; _direction = Const.Direction.RIGHT; } else { spriteRender.sprite = tankSprites[3]; _direction = Const.Direction.LEFT; } } else if (v != 0) { transform.Translate(v * Vector3.up * moveSpeed * Time.fixedDeltaTime, Space.World); if (v > 0) { spriteRender.sprite = tankSprites[0]; _direction = Const.Direction.TOP; } else { spriteRender.sprite = tankSprites[2]; _direction = Const.Direction.DOWN; } } }