// Use this for initialization void Start() { instance = this; //SymbolHandler.graphModel = graphModel; Symbol square = SymbolHandler.fromName("Square"); Symbol circle = SymbolHandler.fromName("Circle"); Symbol star = SymbolHandler.fromName("Star"); Symbol diamond = SymbolHandler.fromName("Diamond"); Symbol squiggle = SymbolHandler.fromName("Squiggle"); Symbol triangle = SymbolHandler.fromName("Triangle"); SymbolHandler.fromName("Door").setHoverPrefab(furniturePrefab); SymbolHandler.fromName("Bed").setHoverPrefab(furniturePrefab); SymbolHandler.fromName("Dresser").setHoverPrefab(furniturePrefab); SymbolHandler.fromName("Sun").setHoverPrefab(sunPrefab); SymbolHandler.fromName("Floor Lamp").setHoverPrefab(lightPrefab); SymbolHandler.fromName("House").setHoverPrefab(wallBuilderPrefab); SymbolHandler.fromName("Chair").setHoverPrefab(chairPrefab); square.setHoverPrefab(squareHoverPrefab); circle.setHoverPrefab(circleHoverPrefab); star.setHoverPrefab(starHoverPrefab); diamond.setHoverPrefab(diamondHoverPrefab); squiggle.setHoverPrefab(squiggleHoverPrefab); triangle.setHoverPrefab(triangleHoverPrefab); foreach (GameObject go in props) { PropHandler.register(go); } startPython(); StartCoroutine(SetupServer()); }
public PlayerHandBehaviours(PlayerBehaviours abb, PropHandler ph, FBIKChain hc, IKEffector iKEffector) : base(abb, ph) { handChain = hc; hp = ac.humanoidParts; handEffector = iKEffector; //Muscle handMuscle = ph.attachedMuscleGroup.muscles[ph.attachedMuscleGroup.muscles.Length - 1];// 最后一个位置即为 最末尾的 hand 的 muscle }
// Picking up/dropping props is done by simply changing PropHandler.currentProp public void PickUp(PropHandler propHandler) { // 设置 rigidbody 为不动 r.isKinematic = true; transform.position = propHandler.muscles[0].target.position; transform.rotation = propHandler.muscles[0].target.rotation; handleCollider.transform.parent = propHandler.muscles[0].transform; mesh.transform.parent = propHandler.muscles[0].target; if (additionalPinTarget) { additionalPinTarget.localPosition = defaultAddLocalPos; additionalPinTarget.localEulerAngles = defaultAddLocalPos; propHandler.muscles[1].transform.position = additionalPinTarget.position; propHandler.muscles[1].transform.rotation = additionalPinTarget.rotation; propHandler.muscles[1].target.position = additionalPinTarget.position; propHandler.muscles[1].target.rotation = additionalPinTarget.rotation; edgeCollider.transform.parent = propHandler.muscles[1].transform; propHandler.muscles[1].rigidbody.mass = addPartMass; } propHandler.muscles[0].rigidbody.mass = mass; this.propHandler = propHandler; //TODO Layer的确认和修改 OnPickUp(propHandler); }
bool coled; // 是否正在就行插入操作? public void init(PropHandler proph) // 需要传入 edgeCol 其是 武器嵌入 操作 的入口 { this.bladeRigid = GetComponent <Rigidbody>(); propHandler = proph; // 事件监听 //MessageManager.AddListener("OnStabOver",OnStabOver); }
public HandBehaviours(ActorBehavioursBase <ACType, ABB> abb, PropHandler ph) { propHandler = ph; this.abb = (ABB)abb; this.ac = abb.ac; muscleGroup = ph.attachedMuscleGroup; handMuscle = muscleGroup.muscles[muscleGroup.muscles.Length - 1]; }
public override void handUpdate(GameObject handOb, bool pinch, bool startButton, Vector2 delta, bool touchedPad) { if (startButton) { if (propMenu != null) { GameObject.Destroy(propMenu); } else { openPropMenu(); } } if (propObject == null) { setPropObject(PropHandler.props[PropHandler.nameList[currentProp]]); } sel.select(handOb); Color color = Color.red; if (touchedPad) { if (usepresnapped) { propObject.transform.rotation = presnapped; } rotate(propObject.transform, delta); presnapped = propObject.transform.rotation; usepresnapped = true; } if (sel.hitObject()) { color = Color.green; if (snapCool == 0) { propObject.transform.position = sel.getEnd(); if (PropHandler.snap(propObject)) { snapCool = 4; } } else { snapCool--; } if (pinch) { SetAllCollision(propObject, true); PropHandler.track(propObject); Prop prop = propObject.GetComponent <Prop>(); RedoManager.addRedoObject(new UncreateObject(prop.propObjectId)); propObject = null; } } sel.drawLine(color); }
/// <summary> /// 解析设备 /// </summary> /// <param name="res"></param> /// <param name="error"></param> /// <returns></returns> public static List <Device> Parse(string res, Action <ErrorResult> error) { var list = new List <Device>(); if (string.IsNullOrEmpty(res)) { return(list); } var regex = new Regex(@"(?<no>.+)\t(?<state>\w+)\n"); foreach (Match match in regex.Matches(res)) { // 解析序列号 var nmatch = match.Groups["no"]; var smatch = match.Groups["state"]; if (!nmatch.Success || !smatch.Success) { continue; } // 解析状态 var state = DeviceState.Unknown; switch (match.Groups["state"].Value) { case "device": state = DeviceState.Device; break; case "offline": state = DeviceState.Offline; break; case "unauthorized": state = DeviceState.UnAuth; break; } var device = new Device { Serial = nmatch.Value, State = state }; // 设备为在线状态,获取设备其他属性 if (state == DeviceState.Device) { var prop = new PropHandler(device.Serial, error); device.Brand = prop.GetBrand().Trim(); device.Model = prop.GetModel().Trim(); device.Sdk = prop.GetSdkVersion().Trim(); device.Version = prop.GetRelease().Trim(); device.IsRoot = prop.IsRoot(); } list.Add(device); } return(list); }
protected HandBehaviours GetHandBehaviours(PropHandler ph) { foreach (var hb in handBehaviours) { if (hb.propHandler == ph) { return(hb); } } return(null); }
public static RedoObject handleRedoObject(RedoObject ro) { UncreateObject uco = ro as UncreateObject; if (uco != null) { GameObject go = PropHandler.objectFromId(uco.id); Prop prop = go.GetComponent <Prop>(); UnmoveObject unmoveObject = new UnmoveObject(uco.id, go.transform, prop.name, prop.paintHistory); PropHandler.untrack(go, true); return(unmoveObject); } UnmoveObject umo = ro as UnmoveObject; if (umo != null) { GameObject go = PropHandler.objectFromId(umo.id); RedoObject redoOb; if (go == null) { go = GameObject.Instantiate(PropHandler.props[umo.propName]); Prop prop = go.GetComponent <Prop>(); prop.paintHistory = umo.paintHistory; prop.propObjectId = umo.id; foreach (UnpaintObject unp in prop.paintHistory) { Prop.paintFromPath(go, unp.getNewColor(), unp.getColorPath(), false, false); } PropHandler.track(go); redoOb = new UncreateObject(umo.id); } else { redoOb = new UnmoveObject(umo.id, go.transform.position, go.transform.rotation, go.transform.localScale, umo.propName); } go.transform.position = umo.position; go.transform.rotation = umo.rotation; go.transform.localScale = umo.localScale; return(redoOb); } UnpaintObject upo = ro as UnpaintObject; if (upo != null) { GameObject go = PropHandler.objectFromId(upo.id); return(Prop.paintFromPath(go, upo.getNewColor(), upo.getColorPath(), true, false)); } return(null); }
private void OnTriggerEnter(Collider other) { ActorManager am = other.GetComponentInParent <ActorManager>(); if (!am) { return; } PropHandler ph = am.GetComponentInChildren <PropHandler>(); ph.currentProp = propBase; gameObject.active = false; }
public void pressed(int index) { int slot = getSlot(index); if (isSave(index)) { PropHandler.save(count: slot + 1); } else { PropHandler.load(count: slot + 1); } updateText(); }
private void OnTriggerEnter2D(Collider2D coll) { col = coll; if (col.GetComponent <PropHandler>() != null) //Проверяем объект на наличие компонента в противовес проверки по тегу { propHandlerDetected = col.gameObject.GetComponent <PropHandler>(); propDetected = propHandlerDetected.propAttached; StartCoroutine(propHandlerDetected.Indicate()); if (propsCountCollected < maxPropCount) { propsCollected.Add(propDetected); } Invoke("Collect", 0.4f); } }
public void select(GameObject handOb, float maxDist = 100F, GameObject ignored = null) { handObLoc = handOb.transform.position; dir = handOb.transform.forward; hitOb = false; RaycastHit hit = new RaycastHit(); RaycastHit[] hits = Physics.RaycastAll(getRayStart(), dir, maxDist); distance = maxDist; for (int i = 0; i < hits.Length; i++) { if (hits[i].distance < distance && (ignored == null || PropHandler.getOldestParent(hits[i].collider.gameObject) != ignored) ) { hitOb = true; hit = hits[i]; distance = hit.distance; //break; } } if (hitOb) { if (button != null) { Renderer renderer = button.GetComponent <Renderer>(); if (renderer != null) { renderer.material = GameInitializer.instance.clearMat; } } selected = PropHandler.getOldestParent(hit.collider.gameObject).GetComponent <Prop>(); button = hit.collider.gameObject.GetComponent <PointButton>(); if (button != null && !button.canSelect()) { button = null; } hitGameObject = hit.collider.gameObject; if (button != null) { Renderer renderer = button.GetComponent <Renderer>(); if (renderer != null) { renderer.material = GameInitializer.instance.outlineMat; } } } }
public override void handUpdate(GameObject handOb, bool pinch) { sel.select(handOb); Color color = Color.gray; if (sel.getSelected() != null) { color = Color.red; if (pinch) { UnmoveObject unmoveObject = new UnmoveObject(sel.getSelected().propObjectId, sel.getSelected().gameObject.transform, sel.getSelected().name, sel.getSelected().paintHistory); RedoManager.addRedoObject(unmoveObject); PropHandler.untrack(sel.getSelected().gameObject, true); } } sel.drawLine(color); }
private void Collect() { if (col != null) { propHandlerDetected = col.gameObject.GetComponent <PropHandler>(); if (propHandlerDetected != null) { propDetected = propHandlerDetected.propAttached; } else { } if (propsCountCollected < maxPropCount) { onCollectedObject(propDetected.valuation); propsCountCollected++; } else if (propHandlerDetected != null) { StartCoroutine(propHandlerDetected.DeIndicate()); } } }
//TODO 不同手部 不同ph public override void PickDrop(bool picking) { if (curBodyAction == Global.BodyAction.SKILL) { return; // 在skill 中途不允许进行其它操作 } //actorBehaviours.SetAllHandAction(Global.HandAction.FETCH); PropHandler ph = humanoidParts.propHandlers[0]; if (ph.holdingProp && picking) { ph.holdingProp = null; am.unLock(); //curHandAction = Global.HandAction.FREE; actorBehaviours.SetAllHandAction(Global.HandAction.FREE); return; } // 武器的丢弃(投掷) if (picking && humanoidParts.propHandlers[0].currentProp) { humanoidParts.propHandlers[0].currentProp = null; return; } if (!picking && !ph.holdingProp) { fullBodyBipedIK.solver.rightArmChain.reach = 0.0f; fullBodyBipedIK.solver.rightArmChain.pull = 0.0f; //curHandAction = Global.HandAction.FREE; actorBehaviours.SetAllHandAction(Global.HandAction.FREE); return; } //curHandAction = Global.HandAction.FETCH; actorBehaviours.SetAllHandAction(Global.HandAction.FETCH); //playerHandBehaviours[0].handAction = Global.HandAction.FETCH; }
protected override void OnPickUp(PropHandler propHandler) { //propHandler.muscles[1].transform.gameObject.GetComponent<EdgeCol>().OnPickUp(edgeCol); }
public override void handUpdate(GameObject handOb, bool pinch, bool startButton) { if (tool2 != null && tool1 != null) { tool2 = tool1; } if (tool1 == null) { tool1 = this; } else if (tool1 != this) { tool2 = this; } sel.select(handOb, ignored: propObject); Color color = Color.red; if (propObject == null) { if (sel.getSelected() != null) { color = Color.green; if (pinch) { propObject = sel.getSelected().gameObject; initPosition = propObject.transform.position; initRotation = propObject.transform.rotation; initLocalScale = propObject.transform.localScale; } } } else if (propObject != null) { color = Color.green; if (tool1 != null && tool2 != null && tool1.propObject == tool2.propObject) { Vector3 newScale = tool1.transform.position - tool2.transform.position; tool1.propObject.transform.localScale += newScale - lastScale; lastScale = newScale; } else { lastScale = new Vector3(0, 0, 0); if (snapCool != 0) { snapCool--; } else if (sel.hitObject()) { propObject.transform.position = sel.getEnd(); if (PropHandler.snap(propObject)) { snapCool = 2; } } } if (pinch) { ToolRemote.SetAllCollision(propObject, true); //PropHandler.track(propObject); addUndo(); propObject = null; } } sel.drawLine(color); }
public void StartPickedUp(PropHandler propHandler) { this.propHandler = propHandler; }
protected virtual void OnPickUp(PropHandler propHandler) { }
public EnemyHandBehaviours(ActorBehavioursBase <EnemyController, EnemyBehaviours> abb, PropHandler ph) : base(abb, ph) { }