DropletController CreateDroplet(Vector2 pos, Vector2 dir) { var go = Instantiate(DropletPrefab, pos.AsVector3(), Quaternion.identity) as GameObject; var droplet = go.GetComponent<DropletController>(); droplet.Initialize(dir); return droplet; }
void Update() { var p0 = _oldPosition.AsVector3(transform.position.z); var p1 = _newPosition.AsVector3(transform.position.z); transform.position = Vector3.Lerp(p0, p1, (Time.time - Time.fixedTime) / Time.fixedDeltaTime); }
void spawnThing(Vector2 pos) { var thingObj = Instantiate(ThingPrefab, pos.AsVector3(), Quaternion.identity) as GameObject; thingObj.transform.localScale *= Random.value * (LargeSize - SmallSize) + SmallSize; thingObj.transform.parent = transform; thingObj.transform.rotation = Quaternion.EulerAngles(0, 0, Random.value * 2000); }
void Update() { var p0 = _oldPosition.AsVector3(transform.position.z); var p1 = _newPosition.AsVector3(transform.position.z); transform.position = Vector3.Lerp(p0, p1, (Time.time - Time.fixedTime) / Time.fixedDeltaTime); if (!_snap.enabled) { transform.localRotation = Quaternion.Slerp(transform.localRotation, Quaternion.Euler(0, 0, 0), 0.2f); } }
TreeController spawnTree(Vector2 pos) { var treeObj = Instantiate(TreePrefab, pos.AsVector3(), Quaternion.identity) as GameObject; treeObj.transform.localScale *= Random.value * (LargeSize - SmallSize) + SmallSize; treeObj.transform.parent = transform; // treeObj.transform.rotation = Quaternion.EulerAngles(0, 0, Random.value * 2000); var treeSpring = treeObj.GetComponent<SpringJoint2D>(); treeSpring.connectedAnchor = treeObj.transform.position.AsVector2(); return treeObj.GetComponent<TreeController>(); }
public override void StateEnter() { Vector2 direction = new Vector2(Fsm.transform.localScale.normalized.x, 0f); Vector3 shotOffsetAccountingDirection = (_shotOffset.AsVector3() * direction.x); shotOffsetAccountingDirection.y = -Mathf.Abs(shotOffsetAccountingDirection.y); InstantiableFireball projectile = Fsm.Instantiate(_projectilePrefab).GetComponent <InstantiableFireball>(); projectile.Launcher = Fsm.gameObject; projectile.transform.position = Fsm.transform.position + shotOffsetAccountingDirection; projectile.transform.rotation = Quaternion.identity; projectile.transform.right = Quaternion.Euler(0f, 0f, -direction.x * _shotAngle) * direction; }
public void FireAt(Vector2 worldPosition) { var worldPosInRefFrame = worldPosition.AsVector3() - transform.position; float z = Mathf.Atan2(worldPosInRefFrame.y, worldPosInRefFrame.x) * Mathf.Rad2Deg; transform.rotation = Quaternion.Euler(0f, 0f, z); canonFireEffect.Play(true); var cannonBall = Instantiate(cannonBallPrefab, transform.position, Quaternion.identity); if (_isFriendly) { cannonBall.SetAsFriendly(); } cannonBall.SetTarget(worldPosition); cannonBall.AddForce(transform.right, 30); }
void BuildBasePlane() { // find mins and maxes var points = m_boundary.AsVector2(); var minX = points.Select(pt => pt.x).Min() - m_elevationGradientDistance; var maxX = points.Select(pt => pt.x).Max() + m_elevationGradientDistance; var minY = points.Select(pt => pt.y).Min() - m_elevationGradientDistance; var maxY = points.Select(pt => pt.y).Max() + m_elevationGradientDistance; var sizeX = Mathf.Abs(maxX - minX); var sizeY = Mathf.Abs(maxY - minY); var ratioXY = sizeX / sizeY; // determine vertices per side // FIXME consts if (m_planeVerticesCount < 100) { throw new System.Exception("minimum plane vertices count = 100"); } var verticesPerSide = Mathf.RoundToInt(Mathf.Sqrt(m_planeVerticesCount)) * 2; var verticesX = Mathf.Max(5, Mathf.RoundToInt(verticesPerSide * (ratioXY / (ratioXY + 1)))); var verticesY = verticesPerSide - verticesX; // calculate distance between vertices var distanceX = sizeX / verticesX; var distanceY = sizeY / verticesY; // calculate triangle count var triangleCount = (verticesX - 1) * (verticesY - 1) * 2; // build vertices and triangles var verts = new Vector2[verticesX * verticesY]; var uvs = new Vector2[verts.Length]; var triangles = new List <int>(); for (var i = 0; i < verticesY; ++i) { for (var j = 0; j < verticesX; ++j) { verts[i * verticesX + j] = new Vector2(minX + j * distanceX, minY + i * distanceY); uvs[i * verticesX + j] = new Vector2((float)j / verticesX, (float)i / verticesY); if (i == verticesY - 1) { continue; } if (j != verticesX - 1) { triangles.Add((i + 1) * verticesX + j); triangles.Add(i * verticesX + j + 1); triangles.Add(i * verticesX + j); } if (j != 0) { triangles.Add((i + 1) * verticesX + (j - 1)); triangles.Add((i + 1) * verticesX + j); triangles.Add(i * verticesX + j); } } } m_baseMesh.vertices = verts .AsVector3(transform.position.y) .Select(pt => transform.InverseTransformPoint(pt)) .ToArray(); m_baseMesh.triangles = triangles.ToArray(); m_baseMesh.uv = uvs; // FIXME can be optimized - we can build the map while we build the mesh BuildMeshIndex(); }
// Update is called once per frame void Update() { if (mParent.tutorialMode) { return; } if (mIsQuestPanelAnimating) { return; } if (Game.instance.actionSet.ToggleMap.WasPressed) { if (moreInfoView.gameObject.activeSelf) { OnLessInfoPressed(); } else { OnMoreInfoPressed(); } } // We're in 'fixed' mode while in the dungeon - readonly if (Game.instance.InDungeon()) { return; } if (mIsMouseOver) { Vector2 mousePosition = Input.mousePosition.AsVector2(); Vector2 diff = mousePosition - mStartDragPosition; diff.y = 0; transform.localPosition += diff.AsVector3(); mStartDragPosition = mousePosition; if (Mathf.Abs(transform.localPosition.x) >= mThreshold) { StartCoroutine(FlyToPosition(Mathf.Sign(transform.localPosition.x) * 1500f * Vector3.right, true, transform.localPosition.x > 0f)); mIsMouseOver = false; } } if (Game.instance.actionSet.Like.WasPressed) { OnLikePressed(); } if (Game.instance.actionSet.Dislike.WasPressed) { OnPassPressed(); } if (Game.instance.actionSet.boundDevice != null) { UpdateJoystick(); } }
void fireBomb(Vector2 faceVec) { Instantiate(ExplosionPrefab, transform.position+faceVec.AsVector3(), Quaternion.identity); }